1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Hệ thống giá kệ sử dụng bluetooth 5 0 và màn hình e ink (gate way)

89 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 89
Dung lượng 3,17 MB
File đính kèm Code C++ của đề tài tham khảo.rar (11 KB)

Nội dung

Nhãn giá kệ điện tử là công cụ hiển thị giá cả của sản phẩn nhóm đã lên ý tưởng hệ thống nhãn kệ điện tử sử dụng màn hình Eink qua Bluetooth 5.0 giúp giải quyết các vấn đề khó khăn cho các nhà bán lẻ trong và ngoài nước một cách tối ưu nhất trong thời kì kinh tế phát triển như hiện nay.

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG GIÁ KỆ SỬ DỤNG BLUETOOTH 5.0 VÀ MÀN HÌNH E-INK (GATE WAY) NGÀNH: KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG Tp Hồ Chí Minh, tháng 9/2021 (ghi ngày tháng bảo vệ) ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG GIÁ KỆ SỬ DỤNG BLUETOOTH 5.0 VÀ MÀN HÌNH E-INK (GATE WAY) NGÀNH: KỸ THUẬT ĐIỆN TỬ TRUYỀN THƠNG Tp Hồ Chí Minh, tháng 9/2021 (ghi ngày tháng bảo vệ) BM01/QT05/ĐT-KT LỜI CẢM ƠN Để hoàn thành chuyên đề báo cáo đồ án tốt nghiệp trước hết em xin gửi đến quý thầy, cô Viện Kỹ thuật Hutech lời cảm ơn chân thành Đặc biệt, em xin gởi đến thầy Võ Đình Tùng người tận tình hướng dẫn, giúp đỡ em hoàn thành chuyên đề báo cáo đồ án tốt nghiệp lời cảm ơn sâu sắc Với điều kiện thời gian kiến thức hiểu biết hạn chế sinh viên, báo cáo khơng thể tránh thiếu sót Em mong nhận bảo, đóng góp ý kiến q thầy để em có điều kiện bổ sung, nâng cao ý thức mình, phục vụ tốt cho đề tài đồ án phát triển sau Em xin chân thành cảm ơn! i MỤC LỤC PHIẾU ĐĂNG KÝ ĐỀ TÀI ĐỒ ÁN/KHÓA LUẬN TỐT NGHIỆP PHIẾU GIAO NHIỆM VỤ THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP LỜI CAM ĐOAN Error! Bookmark not defined LỜI CẢM ƠN i MỤC LỤC ii DANH SÁCH CÁC CHỮ VIẾT TẮT vi DANH SÁCH CÁC HÌNH vii DANH SÁCH CÁC BẢNG ix LỜI MỞ ĐẦU 1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI: TÌNH HÌNH NGHIÊN CỨU: MỤC ĐÍCH NGHIÊN CỨU: NHIỆM VỤ NGHIÊN CỨU: PHƯƠNG PHÁP NGHIÊN CỨU: CÁC KẾT QUẢ ĐẠT ĐƯỢC CỦA ĐỀ TÀI KẾT CẤU CỦA ĐỒ ÁN Chương GIỚI THIỆU 1.1 Một số phương pháp hiển thị giá 1.2 Các công nghệ kết nối không dây 1.3 Công nghệ Bluetooth 5.0: Chương TỔNG QUAN GIẢI PHÁP 12 2.1 Raspberry pi W (Wireless): 12 2.2 Raspberry Pi4 model B: 12 2.3 Công nghệ Bluetooth version 5.0 13 2.3.1 Nguyên lí hoạt động Bluetooth: 14 2.3.2 Các chuẩn kết nối Bluetooth: 14 2.4 Cơ sở lý thuyết ngôn ngữ lập trình WebServer Full-Stacked 16 ii 2.5 Các ngơn ngữ lập trình Web tốt nay: 17 2.5.1 Ngôn ngữ lập trình Web PHP: 17 2.5.2 Ngơn ngữ lập trình Web Java: 17 2.5.3 Ngôn ngữ JavaScript: 17 2.5.4 Ngơn ngữ lập trình Web C++: 17 2.5.5 Ngơn ngữ lập trình HTML: 17 2.6 Các cơng cụ cần có cơng việc: 18 2.7 Mơi trường lập trình : 19 2.7.1 Linux: 19 2.7.2 Chrome: 20 2.8 Ứng dụng xây dựng môi trường : Visual Studio , ChromeBase: 20 Chương PHƯƠNG PHÁP GIẢI QUYẾT 22 3.1 Hệ thống nhãn kệ điện tử: 22 3.2 Thiết lập máy tính nhúng để thay đổi liệu cửa hàng: 23 3.2.1 Thiết kế sơ đồ: 23 3.2.2 Giải thích chức khối: 23 3.2.2.1 Khối nguồn: 23 3.2.2.2 Khối nhập liệu: 23 3.2.2.3 Khối xử lý 23 3.2.2.4 Website: 24 3.2.2.5 Khối hiển thị: 24 3.3 Sơ đồ khối nhãn kệ điện tử 24 3.3.1 Thiết kế sơ đồ khối 24 3.3.2 Chức khối: 24 3.3.2.1 Khối nguồn: 24 3.3.2.2 Khối thu phát Bluetooth: 24 3.3.2.3 Khối xử lý: 25 3.3.2.4 Khối chuyển đổi mức điện áp: 25 3.3.2.5 Khối hình hiển thị: 25 iii 3.3.2.6 Khối giao tiếp với máy tính: 25 Chương QUY TRÌNH THIẾT KẾ 26 4.1 Sơ đồ hệ thống: 26 4.2 Nguyên lý hoạt động hệ thống: 26 4.3 Phần trung tâm điều khiển: 27 4.4 Setup thẻ nhớ: 28 4.5 Set up Raspberry Pi W Pi 4: 30 4.6 Cài đặt chương trình cho raspberry: 30 4.7 Vị trí thực cho khối nhiệm vụ LẬP TRÌNH: 31 4.8 Khâu thiết kế Front End: 31 4.9 Khâu lập trình Back End: 32 4.10 Các thành phần Web Nhiệm vụ chúng: 32 4.10.1 Trang Login (tham khảo code templates/auth/login.html) 33 4.10.2 Trang Chào (tham khảo code templates/dashboard) 34 4.10.3 Trang làm việc với kết nối cũ 34 4.10.4 Trang tìm kết nối (tham khảo code templates/slave) 35 4.10.5 Trang Làm việc kết nối (tham khảo code templates/slave) 35 4.10.6 Trang đổi Password (tham khảo code templates/system) 36 4.11 Khởi tạo Thực chương trình (Tham khảo Readme.md) 36 4.12 Khởi động Gate Way Raspberry pi: 36 Chương THI CÔNG 37 5.1 Sử dụng Gate Way Bluetag: 37 5.1.1 Trang Login: 37 5.1.2 Trang chào: 38 5.1.3 Trang Làm việc kết nối cũ: 38 5.1.4 Trang làm việc với kết nối 39 5.1.5 Trang làm việc với nhiều thiết bị lúc: 42 5.1.6 Trang Đổi pass 43 5.2 Thao tác trang Web với hình E-inks: 43 iv Chương ĐÁNH GIÁ KẾT QUẢ, KẾT LUẬN 45 6.1 Kết đạt hệ thống: 45 6.2 Lỗi mà hệ thống gặp phải: 45 6.3 Phương pháp giải khắc phục: 46 6.4 Hướng phát triển đề tài: 46 TÀI LIỆU THAM KHẢO 48 PHỤ LỤC 50 Phụ lục linh kiện: 50 Phụ lục code: Error! Bookmark not defined v DANH SÁCH CÁC CHỮ VIẾT TẮT HTML – HyperText Markup Language PHP – Hypertext Preprocessor LCD – Liqid Crystal Display API – Application Programming Interface EDR – Enhanced Data Rate BLE – Bluetooth Low Energy vi DANH SÁCH CÁC HÌNH Hình 1.1: Phương pháp thay đổi giá thủ công Hình 1.2: Phương pháp hiển thị giá dùng LCD Hình 1.3: So sánh kệ nhãn giấy kệ nhãn điện tử Hình 1.4 Kệ nhãn giá sử dụng hình E-Ink 11 Hình 2.1: Raspberry Pi W (Wireless) 12 Hình 2.2: Raspberry Pi Model B 13 Hình 2.3: Cơng nghệ Bluetooth 5.0 14 Hình 2.4: Chuẩn kết nối bluetooth nâng cấp cải thiện nhiều lần 15 Hình 2.5: Ngơn ngữ sử dụng cho Front-End Back-End 18 Hình 3.1: Mơ hình chi tiết hệ thống thay đổi bảng giá kệ 22 Hình 3.2: Sơ đồ máy tính nhúng 23 Hình 3.3: Sơ đồ khối nhãn kệ điện tử 24 Hình 4.1: Mơ hình tổng quát hệ thống thay đổi bảng giá kệ 26 Hình 4.2: Sơ đồ xử lý lệnh (thao tác) hệ thống Bluetag 27 Hình 4.3: Giao diện Raspberry Pi Imager 28 Hình 4.4: Giao diện chọn OS cho thẻ nhớ 29 Hình 4.5: Giao diện chọn thẻ nhớ 29 Hình 4.6: Sơ đồ chân kết nối Pi W Pi 30 Hình 4.7: Kết nối mạng quản lý kết nối thiết bị Bluetooth 31 Hình 4.8: Sơ đồ thiết kế trang web 32 Hình 4.9: File liệu Web 33 Hình 5.1: Trang Login Gate Way 37 Hình 5.2: Giao diện trang chào 38 Hình 5.3: Giao diện quản lý thiết bị 38 Hình 5.4: Giao diện chi tiết thiết bị kết nối 39 Hình 5.5: Giao diện hiển thị kết nối 40 Hình 5.6: Thơng tin chi tiết kết nối 41 Hình 5.7: Giao diện quản lý bị sau thêm thiết bị 41 vii Actions Scan for new slaves Refresh slave list Edit Display Refetch Display Cancel Connected slaves 63 Index Mac Device Name Product Name Product Price Status Actions {% endblock %} {% block script %} $(() => { hideBtn(); fetchConnectedSlaves(); }); {% endblock %} scan.html {% extends "base.html" %} {% block pagetitle %}Slave scan{% endblock %} {% block slavenav %}active{% endblock %} {% block leftnav %} {% endblock%} {% block main %} Slave scan 64 Actions Re-scan Available devices Mac Network Name Actions {% endblock %} {% block script %} 65 $(() => { slaveScan(); }); {% endblock %} test.html {% extends "base.html" %} {% block pagetitle %}{{mac}} Test{% endblock %} {% block slavenav %}active{% endblock %} {% block leftnav %} {% endblock%} {% block main %} Slave test {{mac}} Function test Product name Product price Display product Name Display product price 66 Refresh display Add device Device name Add this device {% endblock %} System index.html {% extends "base.html" %} {% block pagetitle %}System{% endblock %} {% block systemnav %}active{% endblock %} {% block main %} System Change Password Edit 67 Login name Old password New password Re-type new password Update password {% endblock %} base.html Bluetag - {% block pagetitle %}{% endblock %} 69 Bluetag {% block main %}{% endblock %} {% block script %}{% endblock %} App.py import os from flask import Flask 71 from core import logging as log threads = [] def create_app(test_config=None): app = Flask( name , instance_relative_config=True) app.config.from_mapping( SECRET_KEY='thisisseriouspysecured', DATABASE=os.path.join(app.instance_path, 'bluetag.db'), ) if test_config is None: app.config.from_pyfile('config.py', silent=True) else: app.config.update(test_config) # ensure the instance folder exists try: os.makedirs(app.instance_path) except OSError: pass # register the database commands from core.data import database as db db.appinit(app) # apply the blueprints to the app from api import auth as auth_api from api import slave as slave_api from api import system as sys_api from page import dashboard, slave, system, auth app.register_blueprint(auth_api.bp) 72 app.register_blueprint(slave_api.bp) app.register_blueprint(sys_api.bp) app.register_blueprint(dashboard.bp) app.register_blueprint(slave.bp) app.register_blueprint(system.bp) app.register_blueprint(auth.bp) app.add_url_rule("/", endpoint="dashboard.index") log.event('API started') log.event('Site started') return app def add_threads(item): threads.append(item) return threads def remove_threads(item): threads.remove(item) return threads def get_threads(mac = None): if mac != None: for x in threads: if x['mac'] == mac: thread = x return thread return threads 73 def init_threads(): threads.clear() return threads main.py from app import create_app if name == " main ": app = create_app() app.run(host='0.0.0.0') # from functools import wraps # import traceback # def log_decorator(retries= 3): # def actual_decorator(f): # @wraps(f) # def wrapper(*args, **kwargs): # tries= # while True: # if tries >= retries: break # try: return f(*args, **kwargs) # except: # tries+=1 # print(traceback.format_exc()) # # return wrapper return actual_decorator 74 Hướng dẫn sử dụng khơng có Raspberry readme.md # Bluetag ## Khởi tạo project ### 1.1 Tạo sử dụng thư mục chứa project *Đầu tiên khởi tạo thư mục chứa thứ* **Windows, Linux** > `mkdir` > `cd` mkdir bluetag cd bluetag ### 1.2 Khởi tạo kích hoạt mơi trường ảo *Để tiện việc di chuyển, sử dụng code, ta cần cài đặt môi trường ảo* **Windows**` > `py -m venv ` > **`\Scripts\activate.bat` py -m venv env env\Scripts\activate.bat 75 **Linux** > `python3 -m venv `** > `source `**`/bin/activate` python3 -m venv env source env/bin/activate ### 1.3 Cài đặt packages *Danh sách package ghi file, cài đặt từ đấy, khỏi công nhớ* **Windows** > `py -m pip install -r ` ** py -m pip install -r packagewin.cfg **Linux** > `pip3 install -r ` ** pip3 install -r package.conf 76 ## 2.Chạy project **Windows** > `set FLASK_APP=` ** > `set FLASK_ENV=development` > `flask run host `** set FLASK_APP=app.py set FLASK_ENV=development flask run host 0.0.0.0 **Linux** > `export FLASK_APP=` ** > `export FLASK_ENV=development` > `flask run host ` ** 77

Ngày đăng: 01/04/2023, 20:29

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN