TÓM TẮT KHÓA LUẬNĐề tài mô hình tủ lạnh thông minh ứng dụng kỹ thuật máy học là một nghiên cứu dựa theo xu hướng mạng lưới van vật kết nối Internet of Things - IOT hiện nay, khi mọi thứ
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
Nguyễn Hoàng Hiệp Vũ
Văn Dũng
KHÓA LUẬN TOT NGHIỆP
THIẾT KE MO HÌNH TỦ LẠNH THONG MINH UNG
DUNG KY THUAT MAY HOC
DESIGNING A SMART REFRIGERATOR USING MACHINE
LEARNING TECHNIQUE
TP Hồ Chí Minh, Năm 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
Nguyễn Hoàng Hiệp - 17520465
Vũ Văn Dũng - 17520380
KHÓA LUẬN TOT NGHIỆP
THIET KE MO HÌNH TỦ LẠNH THONG MINH UNG
DUNG KY THUAT MAY HOC
DESIGNING A SMART REFRIGERATOR USING MACHINE
LEARNING TECHNIQUE
GIẢNG VIÊN HƯỚNG DAN
TS Đoàn Duy
TP Hồ Chí Minh, Năm 2022
Trang 3THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 62/QD-DHCNTT
Ngày 14 tháng 02 năm 2022 của Hiệu trưởng Trường Dai học Công nghệ Thông tin.
Trang 4LOI CAM ON
Lựa chon trở thành sinh viên khoa Kỹ thuật may tính, trường Dai hoc Công nghệ thông tin
— Đại học quốc gia Thành phố Hồ Chi Minh là một trong những lựa chọn đúng đắn nhấtcủa chúng em Nhớ những ngày đầu, khi còn là những cậu tân sinh viên vừa rời xa gia đìnhlên thành phố học tập, chúng em phải thích nghi với môi trường mới, một môi trường đầykhó khăn và khắc nghiệt cũng như rất nhiều thử thách đang chờ đợi chúng em May mắnthay, trên hành trình vượt qua những điều đó chúng em không một mình, chúng em luôn
có những người bạn kề bên, những lời động viên của gia đình, đặc biệt là sự giúp đỡ của
các thầy, cô Những người trực tiếp truyền tải kiến thức cho chúng em, không chỉ là về kiến
thức chuyên môn mà còn về kiến thức cuộc sống, từ những điều đơn giản nhất đến nhữngthứ phức tạp Mặc du có đôi lúc, thực ra là thường xuyên chúng em còn làm thay, cô thấtvọng nhưng các thay, các cô vẫn luôn kiên trì bảo ban, diu dat, mài đũa chúng em đề chúng
em ngày càng trưởng thành hơn Chúng em không biết nói gì hơn ngoài lời cám ơn cùng
với sự biết ơn sâu sắc đến thầy, cô Nếu không có những sự nghiêm khắc, ân cần, tận tình
của thay, cô thì sẽ không có chúng em của hôm nay Đặc biệt chúng em xin gửi lời cảm ơn
đến thầy Đoàn Duy, người đã trực tiếp hướng dẫn, chỉ bảo đồng hành cùng chúng em trong
quá trình thực hiện khóa luận Đồng thời chúng em cũng xin gửi lời cảm ơn đến nhà trường,
các khoa đã luôn tạo điều kiện tốt nhất cho chúng em trong quá trình học tập và rèn luyện
Một lân nữa, chúng em xin chân thành cảm ơn.
Tp.Hồ Chí Minh, năm 2022
Nhóm sinh viên
Nguyễn Hoàng Hiệp
Vũ Văn Dũng Khoa Kỹ Thuật Máy Tính, MTCT2017.2
Trang 513.1 7 Mobileapp ẶẶ Q Q Q0 Q eee ee eee 12
1.3.2 Giai pháp tương tác voitulanh 12
1.7 Kétquamongmuén 00 0000000 eee eee 13
2 GIỚI THIEU CÁC KY THUẬT ĐƯỢC SU DUNG
2.1 Phantichphanctng 2.0.0.0 00000 eee eee 14
2.1.1 Module ESP32 0.000000 cee eee eee 14
2.1.2 Cảm biến số nhiệt độ và độ âm DHT22 152.2 Các chế độ nguctaESP32 000.0000 eee ee 15
22.1 Khdiniém 000.000 ee ee 15
2.4 Giao thức HTTP và giao thtc HTTPS 20
Trang 62.6
2.7
2.8
2.4.1 GiaothúeHTIP 20
2.4.2 Giaothtc HTTPS 0 0.0002 eee 21 2.4.3 Sự khác nhau gitaHTTPvaHTTPS 22
Web API ee 23 DJango/Nginx/GuncornMySQL 25
2.6.1 DJango ee 25 2.6.2 Nginx 2 ee 26 2.6.3 GunICOTn HQ va 27 2.64 MySQL Qua 27 Thư viện Pandas Ặ.ẶẶẶ 20 IDEs và các phần mềm 30
2.8.1 Visual Studio Code 2 00.0002 ee 30 2.8.2 Androidstudio 2 2 ee 30 HIỆN THỰC THIET KE DE TÀI 3.1 3.2 3.3 3.4 3.5 3.6 3.7 Mô tả tông quát hệ thống 31
3.1.1 Hệ thống thu thập dữ liệu 32
3.12 Ung dụng điều khiển trên smartphone 33
Thiết kế Node cảm biến nhiệt độ, độâm 33
Thiết kế mô hình Gateway giao tiếp với Node cảm biến nhiệt độ, độ 4m va server <a @ Vamp eV 7 ˆ 35
Cơ sở dữ li@u 2 en 35 Server lưu trữ và xử lýdữ liệu 40
Nguyên lý, cách thức hoạt động của hệ thống 41
3.6.1 Cách thức truy xuất và cập nhật thông tin thực phẩm Al 3.6.2 Cách thức quanlythucpham - 41
3.6.3 Cách thức hiển thị nhiệt độ, độâm 42
3.6.4 Cách lấy đềxuấtmónăn 43
Mô hình gợi ý mónăn Ặ 43 3.71 Trọng số về hạn sử dụng co c 43 3.7.2 Trọng số về nguyên liệu - 45
KET QUA CUA NGHIEN CUU 4.1 4.2 Năng lượng tiêu thụ của cảm biến 46
Kết quả thu được trên app ee 48 4.2.1 Đăngnhập 0 ee es 48 4.2.2 Hiến thị danh sách thực phẩm 48
Trang 75.2 Hướng phát triỂn ¿52 £ + SESEEEEEEEEEE1211211212111111111 1.1.1 xe 52
Trang 8Danh sách hình vẽ
21
2.2 2.3
2.4 2.5
2.6 2.7
2.8 2.9
3.1 3.2
3.3 3.4
3.5
3.6
3.7 3.8
3.9
3.10 3.11 3.12
3.13
3.14 3.15 3.16
3.17
4.1
ESP32 Active Mode Gà ệt 16
ESP32 Modem SÏeep 6 6 1v HH nh nh nh ng nh 17 IS) 6⁄8 ĐT+4i0 110118 - 4 17 ESP32 Deep Sleep - - Là HH HH HH HH HH HH 18
ESP32 Hibernation Mode - - «cà 1191191111111 HH ng ngư 19
Sơ đồ hoạt động của HTTP - - G1111 S91 S1 HH HH ng 21
Sơ đồ hoạt động của HTTPS - 2-2 £+SSE9EE#EE2EEEEE2EEEEEEEEEEEkerkrrkrree 22
Sơ đồ hoạt động của Web APÏ - - t1 c1 1211121111111 1111111111111 11 tre 24
Sơ đồ hoạt Ong cla /119002217277 aaaa 28
Mô hình hệ thống tủ lạnh thông minh - 2-2 2 2+ +x+£x2£+£++£+2£2£2 31
Mô hình thu nhập cảm biến 2-22 2£ ©522S22EE2EEEEEEEEESEEtSrxrrrrerkesred 32
Mô tả thu thập thông tin thực phẩm 2-2 2 £+£2+£E+£xerEezxezrserxeee 33Lưu đồ node ESP32 hoạt động - 2-22 ++22x2E++EE++EEt+zxerrxerxesred 34
Kiểu dữ liệu dùng trong bảng User 2- ¿2+2 ©++£x++£x+2zxvzxeerxesred 36
Mô tả kiểu dif liệu trong table box -¿£222Vv+z++ttvvvvversrrrrrrseed 36
Mô tả kiểu dit liệu dùng trong bang Ingredient -. ¿-5+55s5cs+5c+2 37
Mô tả kiểu dữ liệu dùng trong bảng Dish_Ingredient 5- 5-55: 37
Mô tả kiểu dữ liệu trong bảng Dish 2-5252 S22S£2E‡ESEEeEEeEEerxrrerreee 37
Mô tả kiểu dữ liệu trong bảng Fridges 2- 2-52 2 S2+Ee£Ee£EeEEeEerszseee 38
Mô tả cách các bảng liên kết với nhau - 2-5: ©5++2+222xt2z+vzxeerxesred 39
Mô hình triển khai Web API c2¿252t222xvt2EExvttrkrtrtrtrrrrrtrrrrrrreg 40
Mô tả cách người dùng truy xuất va cập nhập thông tinthực phâm 41
Mô tả cách người dùng quản lý thực phaM.o c.ccccccecsescsessseessesseesseesseestesseens 42
Mô tả cách hiền thị nhiệt độ và độ âm -ccccccvcsrrvrrrrrrrrerrrkee 42
Mô tả cách dé xuất món ăn - ¿5c 2vttE tt 43Hình ảnh minh họa về đề xuất món ăn - ¿2 + t+E+E+EeEEzE+Eerezxsxers 44Năng lượng tiêu thụ ở chế độ bình thường 2-2-5 5s s+czEzez 46
Trang 94.2 _ Năng lượng tiêu thu ở chế độ LOW POW€r s-+ee+vExtevtEEvetrrrrersrrveee 474.3 _ Điền thông số vào trang tính - ¿- 2 £+x++k+EE+EE+EE2E£EEEEEEeEEerkrrxrrkrree 474.4 Kết quả tính toán thời gian tiêu thụ pin -2- 2 2+s++x+zxerxsrxsrszrszsee 47
45 Kết quả mạch tiêu thụ trong một tUẪN, St T SE EE E1 E11 txrkrrrrke 484.6 Giao diện đăng nhập vào ứng dụng -. - - s3 vn re 484.7 _ Giao diện hiển thị thông tin thực phẩm -2- 22 ©2+s+£x+zxezx++zxsrxeree 49
Trang 10Danh sách bảng
3.1 Gói tin Node gửi qua Gateway thông qua BLE
Trang 11Danh sách từ viết tắt
IOT Internet of Things
BLE Bluetooth Low Engerny
MCU Multpoint Control Unit
HTTP Hypertext Transfer Protocol
HTTPS Hypertext Transfer Protocol Secure
SSL Secure Sockets Layer
TLS Transport Layer Security
CPU Central Processing Unite
ULP Ultra Low Power
Trang 12TÓM TẮT KHÓA LUẬN
Đề tài mô hình tủ lạnh thông minh ứng dụng kỹ thuật máy học là một nghiên cứu dựa theo
xu hướng mạng lưới van vật kết nối (Internet of Things - IOT) hiện nay, khi mọi thứ đã vàđang dần được kết nối với nhau Trong đề tài này, nhóm có ứng dụng thuật toán máy học,
công nghệ Bluetooth cũng như các kiến thức về lập trình ứng dụng và xử lý dit liệu dé tạo
ra một mô hình tủ lạnh thông minh hỗ trợ tư vẫn thực đơn hằng ngày, giúp người dùng dễ
dàng hơn trong việc lựa chọn thực đơn cho mỗi bữa ăn.
Hiện nay nhiều hàng công nghệ (LG, Samsung) đang giới thiệu ra thị trường nhiều sảnphẩm tủ lạnh thông minh, nhưng những sản phâm này chủ yếu tập trung về các tính năngnhư đo nhiệt độ, khử mùi, tăng dung lượng lưu trữ Các chức năng về quản lý thực phẩm
cũng như gợi ý món ăn còn hạn chế Nhóm nhận thay tính năng quản lý thực pham và gợi
ý món ăn là vô cùng cần thiết vì những tính năng này có thể hỗ trợ người dùng có nhữngbữa ăn ngon miệng, đảm bảo dinh dưỡng Nên nhóm quyết định nghiên cứu tập trung pháttriển những tính năng này dé tạo nên một mô hình tủ lạnh thông minh
Nhóm mong muốn mô hình này có thể được phát triển và ứng dụng trong tương lai Trongquá trình nghiên cứu và phát triển nhóm cũng đã đạt được một số kết quả và từ các kết qua
đó tiến hành phân tích dé chỉ ra những thiếu sót cũng như cách khắc phục, dé mô hình có
thê được phát triển và hoàn thiện hơn
Kết quả khóa luận xây dựng tủ lạnh thông minh các tính năng:
s Quản lý thực pham
s Theo dõi nhiệt độ, độ âm
e Đề xuất món ăn dựa vào nguyên liệu, thời gian, sở thích
Hệ thống hỗ trợ xây dựng công thức món ăn khoảng 100 món ăn
Trang 13Chương 1
GIỚI THIỆU TÔNG QUAN
1.1 Đặt van đề
Trong thời kỳ công nghệ phát triển, các thiết bị, đồ dùng ngày càng được cải thiện cũng như
đổi mới đề có thê đáp ứng được nhu cầu cũng như nâng cao trải nghiệm của người dùng
Các thiết bị, đồ dùng được cải tiễn theo hướng thông minh hơn, xử lý được những van déphức tap hơn Chúng dần thay thế cho các thiết bị đời cũ Việc thay thế đó tạo ra hai vấn đềcần giải quyết, thứ nhất đó là chi phí cho một thiết bi thông minh cao hơn nhiều so với mộtthiết bị bình thường và thứ hai là khi thay thế, thiết bị đời cũ sẽ bị loại bỏ, gây ra lãng phítài nguyên cũng như ô nhiễm môi trường Nhằm giải quyết hai vấn đề đó, nhóm đã lên ýtưởng dé biến một thiết bị đời cũ thành thiết bị thông minh, như vậy sẽ giảm được chi phi,không gây lãng phí và 6 nhiễm môi trường Cụ thé thiết bị được nhóm chon dé cải tiến là
tủ lạnh, một thiết bị gần gũi với tất cả các hộ gia đình, đặc biệt là trong tình hình dịch bệnhhiện nay, nhu cầu dự trữ đồ ăn dé hạn chế ra ngoài của các gia đình là rất lớn, nên việc sởhữu một chiếc tủ lạnh tốt là vô cùng cần thiết
1.2 Thực trạng
Qua khảo sát, nhóm nhận thấy tủ lạnh thông minh đã và đang được đầu tư, phát triển trongthời gian qua bởi nhiều công ty lớn như GE, LG, Samsung, Nhiều tính năng thông minhđược tích hợp vào trong tủ lạnh như: màn hình cảm ứng, cho phép chơi nhạc, hiển thị công
thức món ăn, quản lý từ xa thông qua điện thoại, có trợ lý ảo hỗ tro, Tuy nhiên những
thiết bị thông minh như trên có giá thành rất cao, có thê gấp chục lần so với thiết bị thông
thường.
11
Trang 141.3 Nội dung nghiên cứu
Mô hình giải pháp cho tủ lạnh thông minh, nhóm nghiên cứu tạo ra một mô hình tích hợp
hỗ trợ giúp tủ lạnh bình thường trở nên thông minh.
Xây dựng ứng dụng trên thiết bị di động giúp người dùng tương tác với tủ lạnh
1.3.1 Mobile app
se Nhập thông tin thực phâm (Tên, giá, han sử dung) bang QR code
s Tra cứu thông tin thực phẩm bang QR code
« Hiển thị đề xuất món ăn
se Hién thị nhiệt độ, độ âm
1.3.2 Giải pháp tương tac với tủ lạnh
s Thu thập thông tin về điều kiện môi trường
s Xây dựng giải pháp quản lý thực phẩm thông qua dùng mã QR
e Cơ chế lưu trữ thực pham cho tu lanh
1.3.3 Server
s Lưu trữ, cập nhật cơ sở dữ liệu.
s Xử lý các thông tin bằng thuật toán máy học dé đưa ra đề xuất món ăn phù hợp
13.4 Cơ sở dữ liệu
e Xây dựng cơ sở dữ liệu lưu trữ thông tin về nhiệt độ, độ âm, thực phẩm và món ăn
1.4 Mục tiêu
e Biến một chiếc tủ lạnh bình thường thành tủ lạnh thông minh, cho phép người sử dụng
có thé sử dụng điện thoại thông minh để kiểm tra các loại thực phẩm có trong tủ lạnh,
từ những thông tin đó sẽ gợi ý cho người sử dụng các món ăn có thé nấu, cung cấpthông tin vê nguyên liệu có săn cũng như các nguyên liệu còn thiêu đê chê biên Đông
12
Trang 15thời cũng cho phép người sử dụng theo dõi tình trạng của tủ (nhiệt độ, độ ẩm) dé cóthể tùy chỉnh sao cho phủ hợp.
¢ Thực hiện được các tính năng đã đề ra, tạo ra một sản phẩm có chất lượng, nâng cao
trải nghiệm người dùng.
đoạn trong quá trình thực hiện:
Hoàn chỉnh giải pháp tích hợp cho tủ lạnh thông minh Mở rộng tính năng lựa chọn món
ăn theo nhiều yếu tố khác nhau (sở thích, sức khỏe, chế độ dinh dưỡng )
1.7 Két quả mong muôn
s Có tiềm năng dé cải tiến, phát triển trong tương lai
¢ Các tính năng hoạt động ôn định, thé hiện được tính khoa học của khóa luận tốt nghiệp
13
Trang 16cả hai biến thé lõi kép và lõi đơn, và bao gồm các công tắc, antenna tích hợp, RF balun, bộ
khuếch đại công suất, bộ khuếch đại thu nhiễu thấp, bộ lọc và module quản lý năng lượng.
ESP32 được chế tạo và phát triển bởi Espressif Systems, một công ty Trung Quốc cótrụ sở tại Thượng Hải, và được sản xuất bởi TSMC bằng cách sử dụng công nghệ 40 nm.ESP32 là sản phẩm kế thừa từ vi điều khiên ESP8266
Các thông số kỹ thuật chính:
se CPU: Xtensa Dual-Core LX6 microprocessor
¢ Chạy hệ 32 bit
© Tốc độ xử lý 160 MHZ up to 240 MHz
s Tốc độ xung nhịp đọc flash chip 40 MHz —> 80 MHz (tùy chỉnh khi lập trình)
® RAM: 520 KByte SRAM
¢ 520 KB SRAM liền chip (trong đó 8 KB RAM RTC tốc độ cao - 8KB RAM RTC tốc
độ thấp (dùng ở chế độ DeepSleep)
14
Trang 17s WiFi: 802.11 b/g/n/e/i
s Bluetooth: v4.2 BR/EDR va BLE
e 18 kênh bộ chuyền đôi Analog-to-Digital (ADC), 3xSPI, 3xUART, 2xI2C, 16 kênh
đầu ra PWM, 2 bộ chuyền đổi Digital-to-Analog (DAC), 2xI2S, 10 GPIO cảm biến
dién dung
se Điện ap hoạt động: 2.2-3.6V
2.1.2 Cảm biến số nhiệt độ và độ âm DHT22
Cảm biến độ âm và nhiệt độ DHT22 là cảm biến rất thông dụng hiện nay vì chỉ phí rẻ và rất
dé lay dir liệu thông qua giao tiếp 1 wire (giao tiếp digital 1 dây truyền dé liệu duy nhất)
Các thông sô kỹ thuật chính:
s Điện áp đầu vào: 3.3-5V DC
s Chuẩn giao tiếp: TTL, 1 wire
s Tầm đo nhiệt độ: -40 80°C
s Độ phân giải: 0.1°C/ Sai số nhiệt độ <+0.5°C
s Tam đo độ âm: 0-100% RH
s Tầm đo độ âm: 0.1%RH / sai số +2%RH
15
Trang 182.2.2 Các chế độ
1.ESP32 Active Mode
Chế độ hoạt động bình thường là Active Mode Trong chế độ nay, tat cả các chức năngcủa chip đều được bật Vì Active Mode bật mọi chức năng (đặc biệt là module WIFI,Bluetooth và nhân xử lý), nên chip yêu cầu dòng điện hơn 240mA dé hoạt động Ngoài
ra, nếu sử dụng cả hai chức năng WiFi và Bluetooth cùng lúc, các xung công suất cao
có thể xuất hiện (lớn nhất là 790mA) Đây là chế độ tiêu tốn năng lượng nhiều nhất
Vì vậy, muốn đảm bảo năng lượng, chúng ta phải tận dụng một trong các chế độ ngủ
của ESP32 khi không sử dụng.
& ULP Coprocessor
Peripherals ` IÑ Peripherals
& Memory @ Ric
Power Consumption:
ATC Peripherals 1 60~260 mA
Hinh 2.1: ESP32 Active Mode
2.ESP32 Modem Sleep
Trong Modem Sleep, moi thir déu hoat déng, chi cd WiFi, Bluetooth va Radio bi tat.CPU vẫn hoạt động va RTC có thé được sử dung Tại chế độ này, chip tiêu thụ khoảng
3mA ở tốc độ chậm và 20mA ở tốc độ cao
Đề duy trì kết nối WiFi / Bluetooth, CPU, WiFi, Bluetooth và Radio được đánh thứctheo các khoảng thời gian được xác định trước đó.
Trong kiểu ngủ này, ESP32 sẽ chuyên đổi giữa chế độ Active Mode va Modem Sleep.ESP32 chỉ có thé chuyển sang Modem Sleep khi kết nối với Access Point ở chế độStation (trạm) ESP32 vẫn kết nói với bộ định tuyến thông qua cơ chế DTIM Beacon
Dé tiết kiệm năng lượng, ESP32 vô hiệu hóa module WiFi giữa hai khoảng thời gianDTIM Beacon và tự động thức dậy trước khi đến Beacon tiếp theo Thời gian ngủ đượcquyết định bởi khoảng thời gian DTIM Beacon của Access Point thường là 100ms đến
1000ms.
16
Trang 19Hinh 2.2: ESP32 Modem Sleep
3 ESP32 Light Sleep
Hinh 2.3: ESP32 Light Sleep
Chế độ làm việc của Light Sleep tương tự như Modem Sleep Sự khác biệt là RAM,
CPU và ngoại vi đều bị tắt clock (clock-gated) Trong Light Sleep, CPU bị tạm dừng
bằng cách tắt nguồn xung clock, nhưng RTC và ULP vẫn được duy trì hoạt động Điều
nay dẫn đến mức tiêu thụ điện năng ít hơn so với Modem Sleep, chỉ khoảng 0,8mA
Khi chuyền sang Light Sleep, ESP32 duy trì trạng thái bên trong của nó và tiếp tục hoạt
động khi thoát khỏi chế độ ngủ Toàn bộ RAM vẫn được giữ nguyên esp_light_sleep_start()
hàm này được sử dụng dé chuyền sang Light Sleep sau khi nguồn đánh thức được cau
hình.
17
Trang 204.ESP32 Deep Sleep
Ở Deep Sleep, CPU, RAM và tất cả các ngoại vi đều bị tắt Các bộ phận duy nhấtcủa chip vẫn được cấp nguồn là: bộ RTC, ngoại vi RTC (bao gồm bộ ULP) và bộ nhớRTC Chip tiêu thụ từ 10uA đến 0.15mA
Hinh 2.4: ESP32 Deep Sleep
Trong Deep Sleep, CPU chính bị tắt nguồn còn bộ ULP thực hiện các phép do cảmbiến và đánh thức hệ thong chính dựa trên dữ liệu do được Cùng với CPU, bộ nhớ
chính của chip cũng bị tắt Vì vậy, mọi thứ được lưu trữ trong bộ nhớ đó bị xóa sạch và
không thé truy cập được Tuy nhiên, bộ nhớ RTC vẫn được bat Vì vậy, nội dung của
nó được bảo quản trong Deep Sleep và có thé được lấy ra sau khi chip được đánh thức
Đó là lý do mà chip lưu trữ dữ liệu kết nối WiFi và Bluetooth trong bộ nhớ RTC trướcđó.
Vậy nếu muốn sử dụng đữ liệu khi khởi động lại, hãy lưu trữ nó vào bộ nhớ RTC
bang cách xác định một biến toàn cục với thuộc tính RTC _DATA_ ATTR Ví dụ:
RTC_DATA_ ATTR int bootCount = 0;
Ở Deep Sleep, toàn bộ chip được tắt nguồn ngoại trừ module RTC Vi vay, bat ky dit
liệu nào không có trong bộ nhớ phục hồi RTC đều bị mat và chip sẽ khởi động lại với
thiết lập mặc định Tương tự như thực hiện chương trình lại từ đầu
5.ESP32 Hibernation mode
Không giống như Deep Sleep, ở Hibernation Mode, chip vô hiệu hóa bộ tao dao động8MHz bên trong và bộ ULP Bộ nhớ phục hồi RTC cũng bị tắt nguồn, có nghĩa làkhông có cách nào dé lưu trữ dữ liệu trong chế độ ngủ đông Mọi thứ khác đều bị tắtngoại trừ bộ đếm thời gian RTC slow clock và một số GPIO RTC đang hoạt động
18
Trang 21Chúng có trách nhiệm đánh thức chip ra khỏi Hibernation Mode Trong chế độ
Hiber-nation Mode, chip chỉ tiêu thụ khoảng 2.5ÙA.
Hinh 2.5: ESP32 Hibernation mode
2.3 Giới thiệu về BLE
Bluetooth Low Energy (BLE/Bluetooth LE/Bluetooth Smart) là một công nghệ mạng khôngdây tiêu thụ rất ít năng lượng dùng dé kết nói các thiết bị với nhau Ban đầu công nghệ nàyđược phát minh bởi Nokia vào năm 2006 với tên gọi Wibree, trước khi được Bluetooth Special Interest Group (Bluetooth SIG) tích hợp vào Bluetooth 4.0 có tên BLE vào năm
2010.
Ưu điểm:
s Khả năng truyền dit liệu cũng như thiết lập kết nối rất nhanh chỉ vào khoảng 3ms
s Bluetooth Low Energy không bị nhiễu sóng như khi sử dụng Bluetooth thông thường
hay thiết bi WiFi do hoạt động ở tần số 2.4 Ghz ISM band
* Bluetooth Low Energy có ưu diém đáng chú ý là kha năng tiêu thụ năng lượng rat thấp.Khi sử dụng Bluetooth Low Energy, thiết bị có thê hoạt động nhiều năm liền
se Bluetooth Low Energy mang đến nhiều lợi ích khi được tích hợp trong hau hết các loại
điện thoại di động thông minh hiện nay.
s Bluetooth Low Energy có tính năng tắt khi không có dữ liệu đến và bật tự động khi có
dữ liệu Nhờ đó, giúp tiết kiệm đáng ké năng lượng trong quá trình sử dụng
19
Trang 22e Giá thành dé sản xuất Bluetooth Low Energy không cao nên mức giá dé sở hữu công
nghệ này tương đôi thâp.
Nhược điểm:
se Khoảng cách truyền dữ liệu bị giới hạn trong khoảng 100m Thậm chí, có những trườnghợp chỉ truyền được trong bán kính 30m với chiều cao từ 2 — 5m sẽ cho hiệu quả cao
e Có nhiều yếu tô ảnh hưởng đến chất lượng đường truyền như: Hướng thiết bị, vat can,
thiệt kê anten, môi trường hoạt động
e Bluetooth Low Energy có tần số điều chế là IMbps Thông lượng dit liệu rất nhỏ nênkhông thé truyền tải đối với nội dung có dung lượng lớn
2.4 Giao thức HTTP và giao thức HTTPS
2.41 Giao thức HTTP
HTTP (Hypertext Transfer Protocol) là giao thức truyền tải siêu văn bản Đây là giao thứctiêu chuẩn cho World Wide Web (www) đề truyền tải dit liệu đưới dang văn bản, âm thanh,
hình ảnh, video từ Web Server tới trình duyệt web của người dùng và ngược lại.
HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho
Internet) Bộ giao thức TCP/IP là một bộ các giao thức truyền thông cài đặt chồng giao
thức mà Internet và hầu hết các mạng máy tính thương mại đang chạy trên đó Bộ giao thứcnày được đặt theo tên hai giao thức chính là TCP (Transmission Control Protocol — Giao
thức điều khiển truyền vận) và IP (Internet Protocol — Giao thức Internet).
Đặc trưng co bản của HTTP:
e Kết nối không liên tục: Kết nối của HTTP không liên tục Quy trình xử lý, phản hồiyêu cầu thông thường của HTTP là Client tạo yêu cầu -> dừng kết nối với Server đểđợi phản hồi -> Server tiến hành xử lý yêu cầu -> thiết lập kết nối tới Client và gửiphản hồi
¢ Độc lập: Đặc trưng co ban thứ hai của HTTP là tính độc lập Có thê gửi mọi loại dữ
liệu qua HTTP miễn sao Server va Client có biện pháp kiểm soát các nội dung của dit
liệu Client và Server cần xác định nội dung gửi đi thuộc kiểu gì để lựa chọn MIME
phù hợp.
¢ HTTP là giao thức phi trang thái (stateless protocol): Server va Client không có mốiliên hệ nào giữa hai yêu câu được gửi di, dù nó là thực hiện trên cùng một kê nôi - dén
20
Trang 23cùng một server Ngoài ra, Client và Server đều có thể lưu lại thông tin về những yêucâu g1ữ các website.
Sơ đồ hoạt động của HTTP:
Thông điệp trả về
(HTTP response)
Trình duyệt web Máy chủ web
Hình 2.6: Sơ đồ hoạt động của HTTP
HTTP hoạt động theo mô hình Client (máy khách) — Server (máy chủ) Tại mô hình này,
mọi thiết bị tìm kiếm hay trình duyệt web sẽ đóng vai trò như máy khách, còn máy chủ web
có vai trò như Server.
* Client: Client gửi yêu cầu cụ thé đến Server theo mẫu phương thức yêu cầu -> Cácphiên bản giao thức cùng với URI gửi thông báo MIME (gồm thông tin máy khách,nội dung của đối tượng, bộ chỉnh sửa) đến server qua kết nối TCP/IP
e Server: Server nhận được yêu cầu -> Phản hồi lai bang một dòng trang thái qua thông
báo MIME có chứa thông tin máy chủ, thông tin về nội dung của đối tượng và thực thểcủa đa phương tiện.
Sơ đồ hoạt động của HTTPS:
HTTPS hoạt động tương tự như HTTP, tuy nhiên được bồ sung thêm chứng chỉ SSL(Secure Sockets Layer — tang 6 bảo mật) hoặc TLS (Transport Layer Security — bảo mật
21
Trang 24A password: 123 | e
User Website Web Server
$
Hình 2.7: Sơ đồ hoạt động của HTTPS
tang truyền tải) Cả SSL và TLS đều sử dụng hệ thống PKI (Public Key Infrastructure -hạ
tầng khóa công khai) không đối xứng Hệ thống này sử dụng hai “khóa” để mã hóa thôngtin liên lạc, “khóa công khai” (public key) và “khóa riêng” (private key) Bat cứ thứ gì được
mã hóa băng khóa công khai chỉ có thê được giải mã bởi khóa riêng và ngược lại Các tiêuchuân này đảm bảo các nội dung sẽ được mã hóa trước khi truyền di, và giải mã khi nhận.
2.4.3 Sự khác nhau giữa HTTP va HTTPS
e Mã hóa trên HTTP va HTTPS
— HTTPS được mã hóa thông tin, sử dụng SSL/TLS tiêu chuẩn công nghệ bảo mật,
truyền thông mã hóa giữa máy chủ Web server và trình duyệt Với HTTP thìhoàn
toàn không.
¢ Port trên HTTP va HTTPS
— Port là công xác định thông tin trên máy khách, sau đó phân loại để gửi đến máy
chủ Mỗi Port mang một số hiệu riêng với chức năng riêng biệt Giao thức HTTP
sử dung Port 80, trong khi đó HTTPS sử dụng Port 443 — đây chính là công hỗ trợ
mã hóa kết nối từ máy tính client đến server, nhằm bảo vệ gói dữ liệu đang được
truyền đi
¢ Mức độ bao mật của HTTP và HTTPS
- HTTPS hỗ trợ việc xác thực tính đích danh của website mà máy khách truy cập
thông qua việc kiểm tra xác thực bảo mật (Security Certificate) Các xác thực bao
22
Trang 25mật này được cung cấp và xác minh bởi các CA (Certificate Authority) uy tín.Khi được xác thực từ CA người dùng sẽ biết được mình đang truy cập vào đúngwebsite cần tìm thay vì một web mạo danh nào đó Việc bảo mật HTTPS khôngphải là 100% an toàn nhưng tốt hơn HTTP rất nhiều Tất nhiên với HTTP khôngđược mã hóa thông tin nên rất dé bi Hacker tan công.
2.5 Web API
API là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác Nó là viết tắtcủa Application Programming Interface — giao diện lập trình ứng dụng API cung cấp khảnăng cung cap khả năng truy xuất đến một tập các hàm hay dùng Và từ đó có thé trao đổi
dữ liệu giữa các ứng dụng.
Web API là một phương thức dùng dé cho phép các ứng dụng khác nhau có thé giao tiếp,trao đôi di liệu qua lại Dữ liệu được Web API tra lại thường ở dạng JSON hoặc XMLthông qua giao thức HTTP hoặc HTTPS.
Mô hình Web API có một số tính năng nôi bật như:
e Cung cấp dịch vụ trên nhiều thiết bị internet khác nhau như trình duyệt web, ứng dụng
di động
e Có thé làm việc trên các dịch vụ web RESTful
¢ Giúp phát triển các dịch vụ web có trọng lượng nhẹ và có thể bảo trì
e Trả lại dữ liệu ở định dạng cu thể như JSON, XML hoặc bắt kỳ định dạng nào khác
¢ Hỗ trợ các tính năng của HTTP như: versioning, caching, HttpResponseMessage,
HttpRequestMessage
Cách thức hoạt động cua Web API:
1 Đầu tiên là xây dựng URL API dé bên thứ ba có thé gửi request dir liệu đến máy chủ
cung cấp nội dung, dich vụ thông qua giao thức HTTP hoặc HTTPS
2 Tại web server cung cap nội dung, các ứng dụng nguồn sẽ thực hiện kiêm tra xác thực
nếu có và tìm đến tài nguyên thích hop dé tạo nội dung trả về kết quả
3 Server trả về kết quả theo định dạng JSON hoặc XML thông qua giao thức HTTP/HTTPS
4 Tại nơi yêu cầu ban đầu là ứng dụng web hoặc ứng dụng di động, sau khi lay được kết
quả theo định dạng JSON/XML sẽ được phân tích dé lay dir liệu mong muốn Sau khi
có được đữ liệu thì thực hiện tiếp các hoạt động như lưu dữ liệu xuống cơ sở dữ liệu,
hiển thị dữ liệu
23
Trang 26Ưu và nhược điểm của Web API:
se Nhanh chóng xây dựng dịch vụ HTTP: URL, request/response headers, caching,
versioning, content formats và có thê tô chức trong ứng dụng hoặc trén IIS.
se Mã nguồn mở, hỗ trợ chức năng RESTful đầy đủ, sử dụng bởi bat ki client nào hỗ
trợ XML, Json.
s Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter,
model binder, IoC container, dependency injection, unit test.
e Giao tiêp hai chiêu được xác nhận trong các giao dịch, đảm bảo độ tin cậy cao.
2.Nhược diém
s Dé sử dụng hiệu quả cân có kiên thức chuyên sâu, có kinh nghiệm backend tot
s Tôn thời gian và chi phí cho việc phát triên, nâng cap và vận hành
e Có thé gặp van đề về bảo mật khi hệ thống bị tan công nếu không giới hạn điều
kiện kỹ.
Application Functionality
Trang 272.6 Django/Nginx/Gunicorn/MySQL
2.6.1 Django
Django là một trong số những web framework bậc cao miễn phí, là mã nguồn mở được tao
ra bởi ngôn ngữ Python dựa trên mô hình mô hình MTV (gồm Model-Template-Views).Hiện framework này được phát triển, quản lý bởi Django Software Foundation
Django ra đời với mục tiêu hỗ trợ thiết kế các website phức tạp dựa trên những CSDL cósin Nó hoạt động dựa theo nguyên ly ‘cam’ các thành phan và và tái sử dụng dé tạo nêncác website với ít code, ít khớp nối, có khả năng phát triển và không bị trùng lặp
Ưu điểm của Django: Lợi thế hàng đầu của Django là khả năng thiết kế, tao lập website
và các ứng dụng nhanh chóng Ngoài ra còn có:
se Bao mật: Django giúp các lập trình viên tránh các lỗi bảo mat thông thường bang cáchcung cấp framework rằng có những kĩ thuật "phải làm như vậy" để bảo vệ website Vídụ: Django cung cấp bao mật quan lý tên tài khoản và mật khâu, tránh các lỗi cơ bảnnhư đề thông tin session lên cookie, mã hóa mật khâu thay vì lưu thăng
¢ Hoan thiện: Django phát triển theo tư tưởng "Batteries included" (có thé hiểu ý nghĩa
là tích hợp toàn bộ, chỉ cần gọi ra mà dùng) Nó cung cấp mọi thứ cho lập trình viênkhông cần phải nghĩ phải ding cái ngoài Chỉ cần tập trung vào sản phẩm, tat cả đềuhoạt động liền mạch với nhau
e Da năng: Django có thê được dùng dé xây dựng hau hết các loại website, từ hệ thốngquan lý nội dung, cho đến các trang mạng xã hội hay web tin tức Django có thé làmviệc với framework client-side, và chuyên nội dung hau hết các loại định dạng (HTML,
RESS, JSON, XML, )
e Dễ học: Có nhiều tài liệu hỗ trợ việc hoc Django, bao gồm cả tài liệu miễn phi trênmạng và sách in Cộng đồng sử dung Django hiện nay đang phát triển mạnh mẽ, người
mới có thé tìm kiếm sự giúp đỡ trên các trang facebook, diễn đàn, blog
Nhược điểm của Django:
s Có thể xảy ra một vài van đề khi phát triển các ứng dụng/website quy mô nhỏ
s Định tuyến tương đối khó
¢ Không đưa ra các cảnh báo khi xuât hiện lỗi trong mâu.
25
Trang 282.6.2 Nginx
NGINX là một web server mạnh mẽ mã nguồn mở Nginx sử dụng kiến trúc đơn luồng,hướng sự kiện Nó cũng có thé làm những thứ quan trọng khác, chang hạn như load balanc-
ing, HTTP caching, hay sử dụng như một reverse proxy.
Nginx được Igor Sysoev phát triển năm 2002, và công bố lần đầu vào năm 2004 Tháng
7 năm 2011, công ty Nginx Inc được thành lập với trụ sở đầu tiên tại San Francisco,
Cali-fornia, USA.
Những tính năng của máy chủ HTTP Nginx:
se Có khả năng xử lý hơn 10.000 kết nối cùng lúc với bộ nhớ thấp
¢ Phục vụ tập tin tinh (static files) và lập chỉ mục tập tin.
e Tăng tốc reverse proxy bằng bộ nhớ đệm (cache), cân bằng tải đơn giản và kha năngchịu lỗi.
s Hỗ trợ tăng tốc với bộ nhớ đệm của FastCGI, uwsgi, SCGI, và các máy chủ
mem-cached.
s Kiến trúc modular, tăng tốc độ nạp trang bằng nén gzip tự động
e Hỗ trợ mã hoá SSL và TLS.
s Cấu hình linh hoạt; lưu lại nhật ký truy van
« Chuyên hướng lỗi 3XX-5XX
e Rewrite URL (URL rewriting) dùng regular expressions
s Han chế ty lệ đáp ứng truy van
« Giới hạn số kết nối đồng thời hoặc truy van từ 1 địa chỉ
e Khả năng nhúng mã PERL
s Hỗ trợ và tương thích với IPv6
¢ Hỗ trợ WebSockets
s Hỗ trợ truyền tải file FLV và MP4
Những tính năng máy chủ mail proxy của Nginx:
* Hỗ trợ TLS/SSL
* Hỗ trợ STARTTLS
26
Trang 29® SMTP, POP3, va IMAP proxy
e Yêu cầu xác thực bang máy chu HTTP bên ngoài hoặc bằng các tập lệnh xác thực
2.6.3 Gunicorn
Gunicorn là một trong những python web server theo chuẩn WSGI (Web Server GatewayInterface) Gunicorn rat dé sử dụng và hỗ trợ tốt cho nhiều web framework khác nhau như
Django, Flask
Các đặc điểm của Gunicorn:
s Có thể chạy bat kỳ ứng dung và framework Python web nào theo chuẩn WSGI
e Dễ dàng thay thé các web server trong môi trường phát triển sản phẩm (môi trường
dành cho lập trình viên để kiểm tra hoạt động của các ứng dụng) mà không cần thayđối mã nguồn ứng dụng
se Hỗ trợ rất nhiều loại worker và các cau hình cho từng loại worker
cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL
Lich sử hình thành và phát triển của MySQL:
s Công ty Thụy Điền MySQL AB phát trién MySQL vào năm 1994.
s Phiên bản đầu tiên của MySQL phát hành năm 1995
¢ Công ty Sun Microsystems mua lai MySQL AB trong năm 2008
s® Năm 2010 tập doan Oracle thâu tom Sun Microsystems Ngay lúc đó, đội ngũ phattriển của MySQL tách MySQL ra thành 1 nhánh riêng gọi là MariaDB Oracle tiếp tụcphát triển MySQL lên phiên bản 5.5
se 2013 MySQL phát hành phiên bản 5.6
27