Trang 1
PHÂN LOẠI SẢN PHẨM BẰNG MÃ QR
DÙNG APPSHEET , CÓ CODE
Trang 2
MỤC LỤC
DANH MỤC HÌNH VẼ
6
DANH MỤC BẢNG BIỂU
7
CÁC TỪ VIẾT TẮT
8
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI
9
1.1
GIỚI THIỆU ĐỀ TÀI
9
1.2
MỤC ĐÍCH NGHIÊN CỨU
9
1.3
ĐỐI TƯỢNG NGHIÊN CỨU
9
1.4
PHẠM VI NGHIÊN CỨU
10
1.5
DỰ KIẾN KẾT QUẢ
10
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
11
2.1
GIỚI THIỆU NODE-RED
11
2.2
GIỚI THIỆU ESP32-CAM
12
2.2.1
Giới thiệu
12
2.2.2
Thơng số kĩ thuật
12
2.2.3
Đặc điểm tính năng
14
2.2.4
Cấu tạo và sơ đồ chân
15
2.2.5
Thiết bị ngoại vi:
16
2.2.6
Năng lượng
16
2.2.7
Môi trường lập trình
17
2.3
GIỚI THIỆU VỀ GOOGLE SHEETS
17
2.4
GIỚI THIỆU VỀ APPSHEET
18
CHƯƠNG 3. THIẾT KẾ VÀ THI CÔNG
19
3.1
SƠ ĐỒ KHỐI CỦA HỆ THỐNG
19
3.2
THIẾT KẾ MƠ HÌNH
19
3.3
THIẾT KẾ GIAO DIỆN
25
3.3.1
Giao diện trên Node-RED Dashboard
25
Trang 3
3.3.2
Giao diện trên Google sheets
28
3.3.3
Giao diện trên Appsheet
29
CHƯƠNG 4. GIẢI THUẬT VÀ ĐIỀU KHIỂN
31
4.1
HOẠT ĐỘNG CỦA HỆ THỐNG
31
4.2
LƯU ĐỒ GIẢI THUẬT
31
CHƯƠNG 5. THỰC NGHIỆM
33
5.1
TIẾN TRÌNH THỰC NGHIỆM
33
5.2
KẾT QUẢ THỰC NGHIỆM
33
5.3
KẾT LUẬN THỰC NGHIỆM
33
CHƯƠNG 6. KẾT LUẬN
34
6.1
ƯU ĐIỂM
34
6.2
NHƯỢC ĐIỂM
34
6.3
HƯỚNG PHÁT TRIỂN
34
TÀI LIỆU THAM KHẢO
PHỤ LỤC A CODE KẾT NỐI ESP32 VỚI CAMERA
35
1
Trang 4
DANH MỤC HÌNH VẼ
2-1. LOGO NODE-RED
10
2-2. ESP32-CAM
11
2-3. CẤU TẠO CỦA ESP32
14
2-4. SƠ ĐỒ CHÂN ESP32
14
2-6. LOGO APPSHEET
17
3-1. KHỐI LỆNH CHÍNH
19
3-2. KHỐI LỆNH CAMERA
19
3-3. KHỐI LÀM VIỆC
20
3-4. KHỐI XỬ LÝ THÔNG TIN LÊN GSHEET
20
3-5. THIẾT LẬP CHỌN Ô SẢN PHẨM TRÊN GSHEET
21
3-6. THIẾT LẬP CẬP NHẬT DỮ LIỆU TRÊN GSHEET
22
3-7. KHỐI XUẤT HÓA ĐƠN
23
3-8. KHỐI LỆNH XÓA DỮ LIỆU
24
3-9. GIAO DIỆN CỦA DASHBOARD
24
3-10. KHUNG CAMERA
25
3-11. KHUNG HIỂN THỊ TÊN VÀ HÌNH ẢNH ĐÃ QT
26
3-12. GIAO DIỆN GSHEET
27
3-13. GIAO DIỆN CHÍNH TRÊN APPSHEET
28
3-14. GIAO DIỆN SẢN PHẨM
29
GIAO DIỆN HIỂN THỊ SẢN PHẨM.
29
Trang 5
DANH MỤC BẢNG BIỂU
2.1. THÔNG SỐ CỦA ESP32
13
Trang 6
CÁC TỪ VIẾT TẮT
IOT: Internet of Things
Gsheet: Google sheets
Trang 7
CHƯƠNG 1.
1.1
TỔNG QUAN VỀ ĐỀ TÀI
Giới thiệu đề tài
Phân loại sản phẩm sử dụng mã QR trong Appsheet là để tài thực hiện quét các mã
QR trên sản phẩm để hiện lên thông tin sản phẩm. Mỗi sản phẩm từ thức ăn đến đồ
dùng hiện nay đều có một mã QR code riêng. Đề tài nãy sẽ sử dụng các mã QR đó
để có thể tính tiền các sản phẩm trong qua một bước đơn giản là quét sản phẩm qua
camera. Khi qt sản phẩm qua camera thì thơng tin và giá của sản phẩm sẽ hiển thị
và đưa lên Appsheet. Appsheets là một ứng dụng trên điện thoại giúp ta kiểm soát
dữ liệu từ Googsheets. Đề tài này có thể sử dụng trong các cửa hàng hay siêu thị
thậm chí là các hộ kinh doanh nhỏ. Tất cả đều có thể sử dụng quét Qrcode để có thể
tối ưu hóa thời gian và cũng giúp mọi người khơng cần phải nhớ giá từng sản phẩm.
Tất cả đều được lưu trữ và xuất ra khi cần thiết. Không những vậy đề tài này có thể
ứng dụng trong cơ quan trường học để điểm danh.
1.2
Mục đích nghiên cứu
Ứng dụng Node-red để xây dựng chương trình qt mã code. Sau đó sử dụng
Googsheets để lưu các dữ liệu để chương trình quét. Kết nối Googsheets với
Appsheet để có thể sử dụng trên cả điện thoại và có thể xem trên mọi thiết bị.
1.3
Đối tượng nghiên cứu
-
Node-red
-
Googsheet
-
Appsheet
-
QRcode
Trang 8
1.4
Phạm vi nghiên cứu
Đề tài này chỉ nghiên cứu xây dựng Node-red để quét mã Qrcode và hiển thị trên
Appsheet. Giới hạn của đề tài chỉ sử dụng các mã Qrcode có sẵn.
1.5
Dự kiến kết quả
Sau khi hồn thành thì các mã Qrcode sau khi đưa qua camera sẽ được node-red xử
lý hình ảnh và sắp xếp vào các bảng googsheet sau đó hiển thị giá tiền của sản phẩm
cũng như hiển thị tổng giá của các sản phẩm đã mua trong hóa đơn.
1.6
Tổng quan về hệ thống
Đây là một hệ thống cơ bản của quét mã QR code. Hệ thống được lập trình mơ
phỏng trên Node-red kết hợp với Appsheet. Các dữ liệu quét sẽ là các mã QR code
được tạo nên từ các ứng dụng tạo QR thơng dụng trên các Web. Hệ thống có tính
thực tế cao nhưng cần phải phát triển thêm.
Hệ thống quét mã QR tạo sẵn và đã lưu thông tin trên Gsheet. Mã QR có thể đưa
vào từ 2 kênh. Kênh thứ nhất là ESP32-CAM kết nối với hệ thống thông qua Wifi.
Kênh thứ 2 là thông qua nút Inject của Node-RED. Khi mã QR code được quét hoặc
đưa vào thì các khối xử lý sẽ phân loại và đưa lên Gsheet. Tại Gsheet chúng ta cài
đặt các phép tính và khi dữ liệu được đưa lên Gsheet sẽ tự động tính tốn theo cơng
thức đã cài đặt. Sau đó sẽ xuất thơng tin về lại Node-red. Khi bấm xuất hóa đơn thì
Node-RED sẽ sử dụng dữ liệu của Gsheet để đưa ra hóa đơn. Khi xong 1 hóa đơn
thì buộc phải làm mới lại dữ liệu của trang Gsheet hoặc nhấn nút Clear trên NodeRED. Nếu không làm mới lại dữ liệu thì các hóa đơn sau sẽ bị tính chồng lên các
hóa đơn cũ khiến cho hóa đơn bị sai ( đây là điểm yếu của hệ thống).
Trang 9
CHƯƠNG 2.
2.1
CƠ SỞ LÝ THUYẾT
Giới thiệu NODE-RED
Node RED là một cơng cụ lập trình dùng để kết nối các thiết bị phần cứng, các dịch
vụ trực tuyến và API . Đây là một công cụ trực quan được thiết kế cho IOT nhưng
cũng có thể được sử dụng cho các ứng dụng khác nhằm liên kết nhanh các luồng
dịch vụ khác nhau.
Node-RED là mã nguồn mở và được phát triển bởi Emerging Technology Services
của IBM và được tích hợp trong gói ứng dụng khởi động IoT Bluemix của IBM.
Hiện tại, Node-RED là một dự án của JS Foundation.
Node-RED cho phép người dùng kết hợp các dịch vụ Web và phần cứng bằng cách
thay thế các tác vụ mã hóa cấp thấp phổ biến và điều này có thể được thực hiện với
giao diện kéo thả trực quan. Các thành phần khác nhau trong Node-RED được kết
nối với nhau để tạo ra một luồng . Hầu hết mã lệnh cần thiết được tạo tự động.
2-1. Logo Node-RED
Trang 10
2.2
Giới thiệu ESP32-CAM
2.2.1 Giới thiệu
2-2. ESP32-CAM
ESP32 là một hệ thống vi điều khiển trên chip (SoC) giá rẻ của Espressif
Systems, nhà phát triển của ESP8266 SoC. Nó là sự kế thừa của SoC
ESP8266 và có cả hai biến thể lõi đơn và lõi kép của bộ vi xử lý 32-bit
Xtensa LX6 của Tensilica với Wi-Fi và Bluetooth tích hợp. Module ESP32
Camera là mạch tích hợp với bộ xử lý chính là module ESP32 + Camera
OV2640 được sử dụng trong các ứng dụng truyền hình ảnh, xử lý ảnh qua
Wifi, Bluetooth hoặc các ứng dụng IoT
ESP32-CAM có thể được sử dụng rộng rãi trong các ứng dụng IoT thông
minh như : Wireless video monitoring, WiFi image upload, QR
identification, v.v.
ESP32-CAM có thể ứng dụng trong các mạng Sensor tiết kiệm điện năng
đến những ứng dụng yêu cầu độ phức tạp hơn rất nhiều, như giải mã đoạn
MP3 đến mã hóa các loại âm thanh,…
2.2.2 Thông số kĩ thuật
Tên
Điện áp cung cấp
SPI Flash
Mô tả
5V
Mặc định 32MB
Trang 11
RAM
Bộ nhớ ngoài
Bluetooth
WiFi
Interface
IO Port
Tốc độ truyền UART
Camera
520KB SRAM + 4MB PSRAM
Khe cắm thẻ micro SD lên đến 4GB
Chuẩn Bluetooth 4.2 BR/EDR và BLE
802.11 b/g/n
UART, SPI, I2C, PWM
9
115200bps(Mặc định)
+ Đầu nối FPC
+ Hỗ trợ camera OV2640(bán kèm theo board)
hoặc camera OV7670
+ JPEG(chỉ hỗ trợ OV2640), BMP, GRAYSCALE
Dải quang phổ
Antenna
Transmit Power
+ Đèn led
2412 ~2484MHz
Onboard PCB antenna, gain 2dBi
802.11b: 17±2 dBm (@11Mbps)
802.11g: 14±2 dBm (@54Mbps)
Receiving Sensitivity
802.11n: 13±2 dBm (@MCS7)
CCK, 1 Mbps : -90dBm
CCK, 11 Mbps: -85dBm
6 Mbps (1/2 BPSK): -88dBm
54 Mbps (3/4 64-QAM): -70dBm
Tiêu thụ điện năng
MCS7 (65 Mbps, 72.2 Mbps): -67dBm
+ Tắt đèn flash: 180mA@5V
+ Bật đèn flash và bật độ sáng tối đa: 310mA@5V
+ Deep-sleep: 6mA@5V
+ Moderm-sleep: 20mA@5V
Bảo mật
Nhiệt độ hoạt động
Môi trường bảo quản
+ Light-sleep: 6.7mA@5V
WPA/WPA2/WPA2-Enterprise/WPS
-20 ℃ ~ 85 ℃
-40 ℃ ~ 90 ℃ , < 90%RH
2.1. Thông số của ESP32
2.2.3 Đặc điểm tính năng
● Tích hợp module ESP32-S trên board mạch, hỗ trợ WiFi + Bluetooth.
Trang 12
● Camera OV2640 có đèn flash.
● Khe cắm thẻ TF trên board mạch, hỗ trợ thẻ nhớ TF lên đến 4G để lưu
trữ dữ liệu.
● Hỗ trợ WiFi video monitoring and WiFi image upload
● Hỗ trợ multi sleep modes, dòng sleep sâu thấp tới 6mA
● Giao diện điều khiển có thể truy cập thơng qua pinheader, dễ dàng
tích hợp và nhúng vào các sản phẩm của người dùng.
2.2.4 Cấu tạo và sơ đồ chân
2-3. Cấu tạo của ESP32
Trang 13
2-4. Sơ đồ chân ESP32
2.2.5 Thiết bị ngoại vi:
● 18 kênh chuyển đổi tương tự sang số (ADC)
● 3 giao diện SPI
● 3 giao diện UART
● 2 giao diện I2C
● 16 kênh đầu ra PWM
● 2 bộ chuyển đổi kỹ thuật số sang tương tự (DAC)
● 2 giao diện I2S
Trang 14
● 10 GPIO cảm biến điện dun
2.2.6 Năng lượng
● Sleep mode : Đây là trạng thái tiết kiệm năng lượng của ESP32. Lúc
này ESP chỉ cung cấp đủ năng lượng cho RAM để lưu trữ dữ liệu
● Modem Sleep : Đây là chế độ hoạt động của tất cả các tính năng. Lúc
này chip yêu cầu điện 240mA. Khi có nhu cầu sử dụng cả Bluetooth
và wifi dịng điện cần thiết lên đến tối đa 790mA.
● Light Sleep : Đây là chế độ hoạt động khi tắt hết CPU, Wifi, BLE và
RAM chúng được định mức clock. Dòng tiêu thụ khoảng 0.8mA.
● Deep Sleep : Đây là chế độ ngủ sâu. Tất cả CPU, RAM và các cảm
biến ngoại ngoại vi đều tắt. Một số thành phần của chip vẫn được bật:
ngoại vi RTC, bộ điều khiển RTC và RTC memories. Dịng tiêu thụ
15µA 0.15mA.
● Hibernate: Tất cả mọi thứ khác đều bị tắt. Ngoại trừ một GPIO RTC
đang hoạt động và bộ đếm thời gian RTC. Chúng có trách nhiệm phục
hồi đánh thức chip ra khỏi chế độ Hibernate
2.2.7 Mơi trường lập trình
● Arduino IDE
● PlatformIO IDE
● LUA
● MicroPython
● Espressif IDF
● JavaScript
● Node JS
Trang 15
2.3
Giới thiệu về Google sheets
Google sheets là một chương trình bảng trính giống với Microsoft Exel nhưng là
một bộ phần mềm online được Google cung cấp trên Google Drive của mình.
Google sheets có sắn dưới dạng ứng dụng cho cả máy tính và di động. Ứng dụng có
thể giúp người dùng cùng các cộng sự xử lý dữ liệu online.
2-5.
Google Sheets
Trang 16
2.4
Giới thiệu về AppSheet
Appsheet là một công cụ tạoứng dụng của Google mà khơng cần mã code. Bạn
có thể tạo một App với appsheet mà chỉ cần vài bước đơn giản liên kết với
Googlesheets.
2-6. Logo Appsheet
Trang 17
CHƯƠNG 3.
3.1
THIẾT KẾ VÀ THI CÔNG
Sơ đồ khối của hệ thống
Mã QR
ESP32-CAM
INJECT
Node-RED
Google shetts
App Sheet
3.2
Thiết kế mơ hình
Khối lệnh chính
Trang 18
3-1. Khối lệnh chính
Khối lệnh chính này có khối kết nối với ESP32- CAM, khối xử lý thông tin
mã QR và khối cập nhật dữ liệu lên bảng.
3-2. Khối lệnh Camera
Khối lệnh Camera này là khối kết nối với ESP32-CAM. Khối này bao gồm 4
nút bật tắt camera bao gồm 2 nút cho Dashboard và 2 nút của lệnh node-red.
Sau khi bấm nút thì nút thì nút “Switch” sẽ chuyển kênh. “change” 1 là bật và
“change” 2 là tắt. Nút “camera” sẽ được liên kết với ESP32- Cam qua wifi.
Nút “iframe” là khối hiển thị camera ở Dashboard
Trang 19
3-3. Khối làm việc
Hình ảnh sẽ được đưa vào bằng camera hoặc hình ảnh trên máy tinh bằng cách bấm
“file inject” để thêm anh đã lưu trong máy tính. Hình ảnh mã QR code sẽ được xử
lý và cập nhật dữ liệu lên bảng Google sheets.
3-4. Khối xử lý thông tin lên Gsheet
Đây sẽ là khối đưa dữ liệu lên Gsheet.
Trang 20
3-5. Thiết lập chọn ô sản phẩm trên Gsheet
Trang 21
Tại khối switch sẽ cài tên các loại hàng. Khi qt nếu “ Thịt heo” thì sẽ đưa vơ cột
số đầu tiên. Tương tự các mặt hàng khác khi quét sẽ tự đưa vào. Tại các nút Gsheet
ta sẽ cài đặt các thứ tự để dữ liệu đưa vào.
3-6. Thiết lập cập nhật dữ liệu trên Gsheet
Trang 22
Như ở Gsheet đầu tiên sẽ cài đặt đưa dữ liệu vào sheet1!F9. Các vị trí này sẽ
do chúng ta cài đặt tương tự trên Gsheet. Dữ liệu khi quét sẽ được tăng 1 bằng
cách cài đặt code ở nút Function. Tại nút fuction ta thiết lập Code
1.X=msg.payload
2.X++
3.msg.payload=X
4.return msg;
Khi có dữ liệu đưa vào cột nào thì x tại cột đó sẽ cộng 1. Sau khi cộng xong
thêm một nút Gsheet sau cùng và thiết lập chế độ điền bảng. Khi dữ liệu qua
nút Switch sẽ được chuyển qua các nhánh. Tại các nhánh thì dữ liệu sẽ được
đưa vào bảng và tăng lên sau đó điền vào bảng Gsheet.
3-7. Khối xuất hóa đơn
Khối này gồm 2 nút xuất hóa đơn. Một nút của lệnh node-red và nút cịn lại của
Dashboard. Sau khi bấm xuất hóa đơn thì chương trình sẽ cập nhập dữ liệu trên
Gsheet để hiển thị thành dạng bảng trên Dashboard. Nút “table” là nút hiển thị dữ
liệu dạng bảng.
Trang 23
3-8. Khối lệnh xóa dữ liệu
Khối này khi bấm nút thì sẽ xóa tồn bộ dữ liệu đã thêm trong quá trình quét.
3.3
Thiết kế giao diện
3.3.1 Giao diện trên Node-RED Dashboard
3-9. Giao diện của Dashboard
Đây là màn hình làm việc chính của chương trình. Gồm có các khung như camera,
Hình ảnh qt và tên sản phẩm và ơ hóa đơn
Trang 24
Trang 25
3-10. Khung Camera
Khung này là khung của camera ESP. Khung này có khối lệnh tắt và mở camera.
Khi camera mở bất cứ gì camera quay sẽ được hiển thị.
3-11. Khung hiển thị tên và hình ảnh đã quét
Hình ảnh sau khi được quét sẽ hiển thị tại khung này và hiển thị tên của sản phẩm
vừa được quét.