1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu giải pháp đề xuất món ăn phù hợp theo cá nhân ứng dụng cho tủ lạnh thông minh

107 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Nghiên cứu giải pháp đề xuất món ăn phù hợp theo cá nhân ứng dụng cho tủ lạnh thông minh
Tác giả Trương Bảo Nguyên, Trịnh Trần Trung
Người hướng dẫn TS. Doan Duy
Trường học Trường Đại học Công Nghệ Thông Tin
Chuyên ngành Kỹ Thuật Máy Tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 107
Dung lượng 65,42 MB

Nội dung

Tuy nhiên, các hệ thống này dù sử dụng một loạt các kỹthuật dé đưa ra gợi ý về thực phẩm, nhưng chỉ tập trung vào một khía cạnh duy nhất — có thé là dinh dưỡng, tính sẵn có của nguyên li

Trang 1

ĐẠI HOC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

TRUONG BẢO NGUYEN - 19521924

TRINH TRAN TRUNG - 19522437

KHOA LUAN TOT NGHIEP

NGHIEN CUU GIAI PHAP DE XUAT MON AN PHU

HOP THEO CA NHAN UNG DUNG CHO TU LANH

THONG MINH

Study on meal recommendation for user applying for smart

refrigerator

KY SU KY THUAT MAY TINH

GIANG VIEN HUONG DAN

TS DOAN DUY

TP HO CHI MINH, 2023

Trang 2

LỜI CẢM ƠN

Trước hết, chúng em xin gửi lời cảm ơn chân thành đến quý thầy cô trường Đạihọc Công Nghệ Thông Tin Sự dạy dỗ, hướng dẫn và kiến thức căn bản mà quý thầy

cô đã truyền đạt cho chúng em là nền tảng vững chắc, giúp chúng em phát triển và

tiép cận với những kiên thức chuyên môn sâu hơn.

Chúng em cũng xin gửi lời cảm ơn đến quý thầy cô trong khoa Kỹ Thuật Máy

Tính, những người đã chia sẻ những kiến thức chuyên môn, hỗ trợ và định hướngchúng em trong quá trình thực hiện khóa luận tốt nghiệp Sự tận tâm và nhiệt tình củaquý thầy cô đã giúp chúng em vượt qua những thách thức và phát triển tư duy phântích, kỹ năng giải quyết vấn đề

Đặc biệt, dé hoàn thành đề tài này, chúng em xin gửi lời cảm ơn sâu sắc đến thầyĐoàn Duy đã tận tình hướng dẫn và đồng hành cùng chúng em trong suốt quá trìnhthực hiện khóa luận tốt nghiệp Những lời chỉ bảo, sự cô vũ và những gợi ý quý giá

từ thầy đã giúp chúng em xác định hướng đi đúng đắn, nắm vững kiến thức và nângcao kỹ năng trong lĩnh vực của mình.

Chúng em cũng xin bày tỏ lòng biết ơn đến gia đình, bạn bè và những người đã

thực hiện những đánh giá, góp ý và đồng hành cùng chúng em trong quá trình thựchiện khóa luận tốt nghiệp Sự động viên, hỗ trợ và chia sẻ của mọi người đã giúpchúng em vượt qua những khó khăn, tạo động lực và đồng thời là nguồn cảm hứng

dé chúng em hoàn thành khóa luận một cách tốt nhất

Thành phố Hồ Chí Minh, thang 07 năm 2023

Sinh viên | Sinh viên 2

Trịnh Tran Trung Trương Bảo Nguyên

Trang 3

MỤC LỤC

Chương 1 TONG QUAN ĐÈ TÀI 2-5 SE SE‡EE2EEEEE2EE2EEEEEEEEEEEEEErkrrrrei 3

1.1 Lý đo chọn đề tài :- 5s Se2SE‡E EEEEEEEEEEE1E11011211 2111111111111 cye 3

1.2 Tinh hình nghiên CỨU - - - << 2 E1 1899118311191 1 93199 1x ng kg 4

1.3 Mục tiêu của đề tài ccxxchtth nh ng re 6

1.3.1 Mục tiêu tổng quát -c-©5+2c+c2ExtEEEEEESEkrrkrrkrerkesree 6

1.3.2 Mục tiêu cụ thỂ cccccctthtrrtttrrrrtrrerirrerirrrirree 6

1.4 Pham vi nghién Ctru na 7

1.5 Phuong phap thurc hién 8

Chuong 2 CO SỞ LÝ THUYET woeececcececcsscsscssessestscssessessessessessessesesessesseesesseseees 9

2.1 Các module phan cứng -:- 2¿©2+2E++EE++EE++EEtEEEtEEESrkrrrxerkeerkesree 9

2.1.2 Cảm biến nhiệt độ và độ âm DHT22 -¿:-ccscccvecsrcxei 12

PC vii.2)/(08MUCaadđaiai 13

2.2.2 Kiến trúc MQTT Publish / Subscribe - 2s s ezx+szxex+zxerx 13

2.3 Hệ quan tri cơ sở dữ liệu MongolB - 5s s + ssskrseereereeerrsrrree 14

2.3.1 Cơ sở dir liệu và hệ quản tri cơ sở dữ liệu là gì? -‹ -+ 14

2.3.2 Hệ quan tri cơ sở dữ liệu MongolDB - s5 5-<++sc<+essersxx 14

2.4.1 Giao thức HTTTIP -Ặ ch k SH TT HH HH cư 15

2.4.2 Giao thức HTTPS Ăn HH ng ng nh như 16

2.4.3 HITP Request là gì? - Gv g 17

2.4.4 Một vài phương thức HTTP Request cơ bản - - -‹ +: 18

Trang 4

2.5 FlaSK 19

2.7 Mơ hình hồi quy tuyến tính 2 ¿ +E+©E+EE+EE+EE£EE+E£Eerkerkerxrrxrreee 20

2.7.1 Hồi quy tuyến tính -¿- ¿52+ +keEE‡EESEEEEEEEE2EEEEEEEEEEErkrrkrree 202.7.2 Hỏi quy tuyến tính đa biến - 2 E+S£+E+E2E£EerEerxerxersrree 212.8 Các khái niệm về dinh duGnng ccececceccccessesseesecsessessessessesessesesseesessesseeseaees 21

2.8.1 _ Dinh dưỡng là gi? eceeccecccssscsssesssessssssesesesssessssssscssecsuecssscsesssecsseeseeeses 21

2.8.2 Năng lượng (CaÏOFi€) - -c SS+*S SH ng gen 22

2.8.3 Các chất dinh dưỡng cần thiết cho cơ thê .: -s:-s++ 232.8.4 Hệ thong chỉ định các giá trị tham khảo về dinh dưỡng (DRI) 25Chương3 GIẢI PHÁP DE XUẤT 2 E+EE+EE+E+E£EerEerkerxersrree 26

3.1 Thiết kế kiến trúc hệ thơng -¿22¿++++++E+++Ex++Extzxxerxesrxerreeee 263.2 Thiết kế phần mềm cho ESP8266 Node MCU 2- 2 s25: 27

3.2.1 _ Cấu hình Wi-Fi thiết bị bằng ESP-TOUCH -: :- 283.2.2 Lưu SSID và mật khâu Wi-Fi vào EEPROM - 293.2.3 _ Lấy dữ liệu nhiệt độ và độ âm từ DHT22 ¿2 5 s+s +2 293.2.4 Kết nối với Flespi MQTT Broker 2-2 s2sz+z+zx+zxezse+ 30

3.2.5 _ Hiện thực chế độ Deep-sleep - -©2+z+£x+rxerEzrsrxerxerree 31

3.3 Thiết kế cơ sở dữ liệU 2¿- 2-52 St2E2EEEEEEEEEEEEEEEEEEEErkrrkrerrrrkerrees 32

3.3.1 Mơ hình cơ sở dit liệu -. -©2¿©-++22++2E+tEkerxrzrkerreerkeerxee 32

3.3.2 _ Trích xuất dữ liệu từ trang web sử dụng BeautifulSoup 34

3.3.3 Chuan hĩa và xác minh dit liệu - 2z+++ze+zrszrxe+rxe+ 35

3.4 Thiét ké : ':.: 36

3.5 Thiết kế ứng dung eececcescsscsscsscssessessessessessssscsessessessssscssessesssesseesessesseseeaees 37

Trang 5

3.5.1 Đặt ra yêu cầu cho ứng dụng ¿¿©2++cx+2cxtzrxrrresrxesrxee 383.5.2 Phân tích và thiết kế ứng dụng -¿-++c+++ce+cx+zrxesrxee 39

3.6 Mô hình gợi ý bữa ăn -¿-©2<+2+2EEC2EEEEE2212117112711211211 11.11 xe 49

3.6.1 Phân tích yêu cầu và đề xuất mô hình -¿-¿s=s+zxzzs+2 493.6.2 _ Công thức tổng quất - + ++S++EE+E+EzErEerkerkerxererree 50

3.6.4 Mô hình gợi ý bữa A oes cccccsessssssesssesssessssssscssecssecssecsesasecsseeseeeses 54

Chuong 4 THỰC NGHIỆM VÀ ĐÁNH GIA 2 52+cz+cz+cxsrxcrez 63

4.1 Kết quả hiện thực thiết bị biên 22-55: ©2+22+2EE2EEEExerkrerkrsrkrrrrees 63

4.1.1 Kết nối thiết bị với Wi-Ei 55cSccSccrcrkerkerkrrrrrerkerreee 634.1.2 _ Lấy dữ liệu từ cảm biến - 2-5 ©E+EE+EESEESEEEEEerEerkerkerkee 644.1.3 _ Truyền dữ liệu bằng giao thức MQTT -¿-sz5-s+e- 654.1.4 _ Chế độ Deep-sleep - c5 ScSt 2E 2121212111 654.2 Kết quả xây dựng cơ sở dit liệu ¿ 2¿©-c+©2++cx++Extrxerkeerkesrkesrxes 66

4.2.1 Cơ sở dữ liệu các thực phẩm -2-©¿+-+++zx+x++rxezrxezrxeee 67

4.2.2 Cơ sở dit liệu CAC món ăn - 2< 5 23322111112 Evkeesrseeee 67

4.2.3 Co sở dtr liệu được lưu trữ trên MongoDB -« - «+ 69

4.3 Kết quả hiện thực mô hình gợi ý món ăn và bữa ăn -2 +: 69

4.3.1 Kết quả xác định các hệ số hồi quy - 2 2z+s+cx+zxerssreee 704.3.2 Chiến lược đánh giá mô hình 2- 2 2+++x£+E++E++xxerxerseee 71

4.3.3 Kết quả kiểm thử mô hình -¿- ¿+ ++£+x++zx+zxzerxz+rxezrxeee 72

4.3.4 Kết quả khảo sát người đùng -¿-2-©5+2cxc2zxccrrerkrsrkrrxees 73

4.4 Kết quả hiện thựC server c.cceccsccessesssessessesssessessesssssessessessesssessessesseessesseesess 74

4.4.1 — Kết nối cơ sở dữ liệu -.-c- Set StS SE SEEEEEEEEEEEkrEerrkrkerrrx 74

Trang 6

4.4.2 Giao tiếp với ứng dụng ¿ 2+ s+2xc£E2EEEEEEEtrErrrkrrkerkerreee 77

4.4.3 TTuy CẬP Server ty Xa HH HH HH HH 78

4.5 Ứng dụng quản lý tủ lạnh Fridge IT 2-2 5c +s2+++£xe£E+E++Exerxerseee 80

Chuong 5 KẾT LUẬN VA HƯỚNG PHÁT TRIEN - 5-52 s2 86

5.1 Kết quả dat duoc cccccccccccscssessessessessessessessessssessessessessesesssesssessesseesesseesesessees 865.2 Ưu điểm va nhược điểm của đề tai ecccccccecccsessesssessesseestessesseeseestesseesessess 86

5.2.1 Ưuđiểm c22c22E 22k 2 E222 865.2.2 Nhược điểm :©-2¿+22++2c+SEEreEErrtrrrerkrerrrrrrrree 87

5.3 Khó khăn gap phải - cành HH TH HH HH HH ng già 87

5.4 Hướng phát triển dé tai eececcceccccccsccssesssesseessecssssssssseessecssscsesssecssecsseseessees 87

Trang 7

DANH MỤC HÌNH

Hình 2.1: Mô hình ESP-TOUCH cơ bản 5 55 S1 SE sskseksrkrrkereerke 11

Hình 2.2: Cau trúc gói dit liệu ESP-TOUCH ccccsccscsecsessesssessessesssssseesessessseeseeseees 12 Hình 2.3: Kiến trúc MQTT Publish và Subscribe 2-2 2 +xzxe£xe£zrxzxe2 13

Hình 2.4: Các dữ liệu phi cấu trúc được lưu trong tài liệu JSON 15

Hình 2.5: Mô hình Client — S€TV©T - 5 +1 31 91H HH HH ng gưàp 16 Hình 2.6: Giao thức HTIPS -G s1 TH gọn TH nh HH ng 17 Hình 2.7: Cách flask xử lý yêu cầu từ clienit 2-55 s+sz+££+x£zEerxerxerxersrree 19 Hình 3.1: Kiến trúc hệ thống ¿2 ¿© 2 E£SE£EE£2EE2EE£EEEEEEEEEEEEEEEEEEEEEkrrkrrkrree 26 Hình 3.2: Hoạt động của ESP8266 - c1 1911 1H HH ng HH 27 Hình 3.3: Cách kết nối ESP8266 và cảm biến DHT22 -c-¿-ccccccrccveev 30 Hình 3.4: Kết nối chân của ESP8266 đề thực hiện chế độ Deep-sleep 31

Hình 3.5: Thiết kế cơ sở di liệu của hệ thống -2- 2222 E+£E+zEzzEzrxerxerez 32 Hình 3.6: Hoạt động trích xuất dữ liệu sử dụng BeautifulSoup - 35

Hình 3.7: Thiết kế các route Của S©TVT -2-©2¿52+2E+SE£EE+2EE+EEtEEtEEereerkerkeree 36 Hình 3.8: Quy trình phát triển ứng dụng :-2¿©++++++2x++zx++rxezrxrrxeeree 37 Hình 3.9: Hoạt động thêm và lay thực phẩm sử dụng mã QR 40

Hình 3.10: Hoạt động truy van hiên thị danh sách nguyên liệu hiện có 42

Hình 3.11: Hoạt động xem gợi ý món ăn và xử lý đánh gia từ người dùng 43

Hình 3.12: Hoạt động xem gợi ý bữa ăn và xử lý lưu lịch sử nau ăn 44

Hình 3.13: Các màu sắc chủ đạo của ứng dụng - 2-2 2 ++s+cxerxerxsrszrszxez 46 Hình 3.14: Logo của ứng dụng Fridge Ï T” «xxx nriet 47 Hình 3.15: Phác thảo giao diện được thực hiện trên Figma 55 <++<+ 48 Hình 4.1: Trạng thái chờ thiết đặt kết nối trên ESP8266 . 2: 2552552 63 Hình 4.2: ESP8266 vào luồng chương trình chính sau khi thiết đặt kết nồi 64

Hình 4.3: Kết quả lay dữ liệu nhiệt độ và độ âm từ cảm biến DHT22 65

Hình 4.4: Publish nhiệt độ và độ âm từ thiết bị biên sử dụng giao thức MỌTTT 65

Hình 4.5: Kết quả hiện thực chế độ Deep-sleep cho ESP8266 với chu kỳ 5 phút 66

Hình 4.6: Trích xuất dữ liệu món ăn từ Cooky.vn bằng BeautifulSoup 68

Trang 8

Hình 4.7: Sử dụng MongoDB đề lưu trữ cơ sở dit liệu ¿ ¿©-sz55+5c++ 69

Hình 4.8: Kết quả của biểu mẫu khảo sát các yếu tổ thu được từ người dùng 70

Hình 4.9: Kết quả kiểm thử mô hình - 2-22 5¿©5+2S++EE+2EE+2EEtEE++rxezrxerxecree 72 Hình 4.10: Trang web dành cho người dùng thử nghiệm mô hình gợi ý 73

Hình 4.11: Kết quả khảo sát đánh giá về cách hoạt động của mô hình gợi ý 74

Hình 4.12: Các hàm chức năng thực hiện truy vấn cơ sở dữ liệu s-sse: 74 Hình 4.13: Tạo các client dé truy van cơ sở dữ liệu từ các collection 75

Hình 4.14: Dữ liệu trong collection “IngredIernf” - «sex csecseeesersessessee 76 Hình 4.15: Sử dụng route dé gửi yêu cầu truy xuất cơ sở dit liệu đến server 76

Hình 4.16: Tương tác với server thông qua giao thức HTTP POST 77

Hình 4.17: Truy cập trang chủ server sử dụng trình duyệt web - 78

Hình 4.18: Truy xuất route xem co sở dit liệu nhiệt độ độ âm của thiết bị 79

Hình 4.19: Log ghi lại nhật ký truy xuất của serVer - : -:-¿ sz©c«z+s+ec++ 79 Hình 4.20: Thiết đặt các thong tin cơ bản về người dùng trên ứng dụng 80

Hình 4.21: Thiết đặt kết nối thiết bị trên ứng dụng di động - 81

Hình 4.22: Trang tóm tắt các thông tin trong tủ lạnh va chi tiết nhiệt độ, độ âm 82

Hình 4.23: Quét mã QR dé thêm và lấy thực phẩm 2 252 + s2 =s+£s2 5+2 82 Hình 4.24: Giao diện quan lý thực pham và xem chi tiết thực phẩm 83

Hình 4.25: Đề xuất bữa ăn và món ăn với độ phù hợp giảm dần 84

Hình 4.26: Hién thị gợi ý bữa ăn phù hợp và chi tiết về bữa ăn - 84 Hình 4.27: Lịch sử nau ăn của người dùng 2-2 5252+£+++£xezE+zEszrxerxezez 85

Trang 9

DANH MỤC BANG

Bang 2.1: So sánh các thông số trong ba chế độ ngủ của ESP8266 - 10Bảng 3.1: Mô tả chỉ tiết các chức năng va user story của ứng dụng 38Bảng 3.2: Phạm vi giá trị của trọng số đánh giá ¿ -¿©+©+++cxzzxsrxesrxs 54Bang 3.3: Trọng số nguyên liệu của từng món ăn trong bữa ăn . - 55Bảng 3.4: Danh sách các thực phẩm cần cho bữa ăn -2- 22 5¿©5+z25+cc+2 56Bang 3.5: Trọng số nguyên liệu cho toàn bữa ăn -22- 2 ++cxccEzEerxerxrrer 56

Bảng 4.1: Biểu diễn cơ sở dữ liệu về nguyên liệu sau khi thu thập - 67

Bảng 4.2: Biểu diễn cơ sở dữ liệu về món ăn sau khi thu thập - - 68Bảng 4.3: Kết quả khảo sát về các yếu tố ảnh hưởng đến lựa chọn bữa ăn 71

Trang 10

DANH MỤC TỪ VIET TAT

API Application Programming Interface

BMR Basal Metabolic Rate

DBMS Database Management System

DNS Domain Name System

DRI Dietary Reference Intakes

HTTP Hypertext Transfer Protocol

HTTPS Hypertext Transfer Protocol Secure

loT Internet of Things

SSID Service Set Identifier

SSL Secure Sockets Layer

TCP Transmission Control Protocol

TDEE Total daily energy expenditure

TLS Transport Layer Security

UDP User Datagram Protocol

URL Uniform Resource Locator

Trang 11

TÓM TẮT KHÓA LUẬN

Dé tài “NGHIÊN CỨU GIẢI PHÁP DE XUẤT MON AN PHÙ HỢP THEO CANHÂN ỨNG DỤNG CHO TỦ LẠNH THÔNG MINH” tập trung vào việc nghiêncứu mô hình gợi ý món ăn, bữa ăn và phát triển một ứng dung quản lý tủ lạnh thôngminh nhằm quản lý thực phẩm và đề xuất bữa ăn phù hợp với từng người dùng Qua

việc tông hợp thông tin về dinh dưỡng và sở thích ăn uống của người dùng, hệ thống

sẽ đưa ra các gợi ý món ăn phù hợp, giúp người dùng có một chế độ ăn uống lành

mạnh và đa dạng.

Các công nghệ và giải pháp được sử dụng trong đề tài bao gồm việc tích hợp cácmodule phần cứng như ESP8266 và cảm biến DHT22 vào tủ lạnh dé thu thập thôngtin về nhiệt độ và độ âm Dữ liệu này sẽ được truyền đến Server được xây dựng bằng

framework Flask thông qua giao thức MQTT và lưu trữ vào hệ quản tri cơ sở dir liệu

MongoDB Đồng thời đữ liệu về các thực phẩm và món ăn cũng được thu thập bằng

các phương pháp trích xuất dữ liệu từ web và thống kê, lưu trữ trong cơ sở dữ liệu

Về phía người dùng, ứng dụng di động sẽ được triển khai bằng cách sử dụng

framework Flutter, công cụ này cho phép xây dung ứng dụng nhanh chóng, giao diện

người dùng thân thiện và dễ sử dụng Người dùng có thể cung cấp các thông tin cánhân, sở thích ăn uống và những nguyên liệu có sẵn trong tủ lạnh Dựa trên nhữngthông tin này, hệ thống sẽ tính toán nhu cầu dinh dưỡng và áp dụng mô hình hồi quytuyến tính đa biến để đề xuất món ăn và bữa ăn phù hợp với từng người dùng theo

bốn yếu tố: tính sẵn có của nguyên liệu, sự ảnh hưởng các món đến bệnh lý, mức độđáp ứng dinh dưỡng và sở thích của người dùng.

Cuối cùng, sau một loạt các kiểm tra, thử nghiệm và thu thập ý kiến người dùng,

hệ thống đã chứng minh được kha năng đáng kể trong việc đề xuất món ăn phù hợpvới từng cá nhân và quản lý tủ lạnh thông minh Kết quả này rất khả quan, chứng tỏ

tính hiệu quả và sự hữu ích của hệ thông.

Trang 12

Việc áp dụng công nghệ thông tin vào tủ lạnh giúp tủ lạnh bình thường trở nên

thông minh, giúp người dùng theo dõi môi trường bên trong tủ lạnh, quản lý các thựcphẩm, hạn chế dé thực phẩm quá hạn sử dụng, hơn nữa là nhận được những gợi ý

món ăn, bữa ăn phù hợp Hệ thống không chỉ giúp tiết kiệm thời gian và công sứctrong việc lên kế hoạch ăn uống mà còn đảm bảo sự đa dạng và cân đối dinh dưỡngtrong khâu phần ăn hàng ngày

Trang 13

Chương 1 TONG QUAN ĐÈ TÀI

1.1 Lý do chọn đề tài

Hiện nay, các hệ thống gợi ý món ăn và tủ lạnh thông minh đang dần trở thành một

xu hướng trong lĩnh vực công nghệ và am thực Các hệ thống này mang lại nhiều lợi

ích như tiết kiệm thời gian, đa dạng hóa ầm thực, tối ưu hóa việc sử dụng nguyênliệu, cung cấp thông tin dinh dưỡng, tạo trải nghiệm cá nhân hóa và tương tác thông

minh cho người dùng.

Tuy nhiên, một số hạn chế đáng lưu ý hiện nay là giá thành cao của các tủ lạnhthông minh, khiến chúng trở nên khó tiếp cận đối với nhiều người Điều này gây ramột rào cản trong việc sử dụng công nghệ tiên tiến dé quản lý chế độ ăn uống Ngoài

ra, tình trạng ăn uống không lành mạnh đang ngày càng phổ biến trong xã hội hiện

đại Với cuộc sống bận rộn và áp lực công việc ngày càng gia tăng, nhiều người dễ

dàng rơi vào thói quen ăn uống không cân đối, gây ảnh hưởng xấu đến sức khỏe.Thêm vào đó là các tủ lạnh giá rẻ không cung cấp các giải pháp giúp người dùng quản

lý được thực phẩm va theo đõi môi trường bên trong tủ lạnh, điều này có thé gây ralãng phí thực phẩm

Nhận thấy những thách thức và hạn chế trên, đề tài “NGHIÊN CỨU GIẢI PHÁP

ĐÈ XUẤT MÓN ĂN PHÙ HỢP THEO CÁ NHÂN ỨNG DỤNG CHO TỦ LẠNH

THONG MINH” tập trung phát triển một hệ thống có kha năng quản lý thực phẩm,

gợi ý món ăn và bữa ăn phù hợp theo cá nhân Mục tiêu là cung cấp cho người dùngnhững lựa chọn ăn uống tốt hơn, đáp ứng nhu cầu dinh dưỡng cá nhân và tránh lãngphí thực phẩm Nghiên cứu còn hướng đến việc biến một tủ lạnh truyền thống thànhmột tủ lạnh thông minh tiết kiệm tài nguyên và giảm lãng phí

Một khía cạnh khác đáng được chú ý của đề tài là việc phát triển hệ thống gợi ýmón ăn phù hợp với âm thực từng quốc gia mà người dùng đang sinh sóng Bắt đầuvới Việt Nam, việc nghiên cứu và xây dựng một hệ thống gợi ý như vậy trước mắt sẽmang lai lợi ích thiết thực cho người dùng yêu thích 4m thực Việt, sau là tiền đề dé

có thê mở rộng hệ thống với cơ sở dit liệu món ăn đa dạng trên khắp thé giới dé cho

Trang 14

phép người dùng trải nghiệm da dang hơn các văn hóa 4m thực trong chính bữa ănthường ngày của mình.

Tóm lại, đề tài nghiên cứu này sẽ là một bước tiễn trong việc tận dụng công nghệ

để quản lý chế độ ăn uống và ứng dụng vào lĩnh vực âm thực Việc biến đổi tủ lạnh

đời cũ thành tủ lạnh thông minh, phát triển hệ thống gợi ý món ăn phù hợp theo cánhân và tích hợp 4m thực Việt Nam là những điểm đặc biệt và hứa hẹn mang lại nhiềulợi ích cho người dùng và cộng đồng

1.2 Tình hình nghiên cứu

Trong thời gian gần đây, đã có một số nghiên cứu đáng chú ý đóng góp quan trọng

trong việc giải quyết các vấn đề liên quan đến việc tạo ra một thiết bị thông minhđược đặt trong tủ lạnh dé theo dõi các chỉ số trong môi trường tủ lạnh và giúp ngườidùng quan lý thực phâm một cách hiệu quả hơn Một nghiên cứu đáng kể là thiết kế

cua Wu Hsin-Han và Chuang Yung-Ting [1], đã thành công trong việc xây dựng một

hệ thong tủ lạnh thông minh tiết kiệm chi phí Họ đã sử dụng máy anh và máy tínhnhúng Raspberry Pi để phát triển một hệ thống quan lý thực phẩm thông minh, nhờkhả năng xử lý hình ảnh nhanh chóng, hiển thị danh sách thực phẩm hiện có chongười dùng Phương pháp tiếp cận này cũng được áp dụng tương tự và hoạt động

cũng như thương mại hóa thành công trong các dòng tủ lạnh thông minh hiện đại như

Samsung Family Hub [2] Tuy nhiên, việc sử dụng máy ảnh trong môi trường tủ lạnh

có thé gặp một số khó khăn như chi phí lắp đặt và bảo trì cao, máy ảnh bị ban hay

thuật toán xử lý ảnh không đạt hiệu suất tối đa trong việc nhận diện các trường hợpđặc biệt khi các thực pham được đặt khuất khỏi góc nhìn của máy ảnh, gây khó khăn

trong việc quản lý các loại thực phẩm có sẵn Do đó, cần có một giải pháp tối ưu choviệc quản lý thực phẩm trong tủ lạnh

Song song với đó, việc phát triển các giải pháp gợi ý món ăn cho người dùng đãtrở thành một xu hướng không thể thiếu ngày nay, do đó hàng loạt các nghiên cứu đã

được thực hiện trong lĩnh vực gợi ý món ăn Các nghiên cứu này cùng đặt ra mục tiêu

chung, đó là cung cấp cho người dùng những gợi ý, mang đến cho họ trải nghiệm âm

Trang 15

thực đa dạng và hợp lý với tình trạng của họ mà không phải đắn đo suy nghĩ nhiều.

Các hệ thống này nghiên cứu phương pháp đưa ra các gợi ý về món ăn, bữa ăn dựa

trên các yếu tố khác nhau, xem xét lịch sử lựa chọn món ăn của người dùng rồi tính

toán dinh đưỡng đưa ra gợi ý món ăn cho người dùng như hệ thống được hiện thực

bởi G Geleijnse và các cộng sự [3], hay các giải pháp xem xét tính khả dụng cua

nguyên liệu dé đưa ra gợi ý phù hợp cho người dùng như hệ thống của M S J Rokon

và các cộng sự [4], cân nhắc về dinh dưỡng như dự án được hiện thực bởi J S Kalra

và các các cộng sự [5] Những hệ thống trên đã sẵn sang dé triển khai và hoạt động

với đúng chức năng của nó Tuy nhiên, các hệ thống này dù sử dụng một loạt các kỹthuật dé đưa ra gợi ý về thực phẩm, nhưng chỉ tập trung vào một khía cạnh duy nhất

— có thé là dinh dưỡng, tính sẵn có của nguyên liệu hoặc đánh giá của người dùng.Mặc dù mỗi nghiên cứu đã hoàn thành nhiệm vụ của mình, nhưng việc kết hợp một

hệ thống với nhiều yếu tố bằng cách sử dụng các phương pháp đó là khó khăn Do

đó, cần có một phương pháp tiếp cận khác có thê xử lý nhiều yếu tố quyết định khác

nhau dé mang lại trải nghiệm tốt hơn trong việc gợi ý món ăn

Với phương pháp sử dụng hồi quy tuyến tính đa biến, một thử nghiệm xem xét cácyếu t6 ảnh hưởng đến lựa chọn thực phẩm của người lớn tuổi từ các nhóm kinh tế xãhội cao và thấp [6] đã hiện thực thành công Đề tài này nghiên cứu sự lựa chọn thựcphẩm của người lớn tuổi dựa trên các yếu tố riêng biệt như sức khỏe, hương vị, giá

cả và thời gian đi đến cửa hàng tạp hóa Tuy nhiên, mục tiêu của đề tài này chỉ dừng

ở việc xác định độ quan trọng của các yếu tố khác nhau trong việc lựa chọn bữa ăn

của người lớn tuôi Song, việc ứng dụng mô hình hồi quy tuyến tính đa biến giúp ta

có thê cân nhắc nhiều yếu tố phụ thuộc hơn dé xem xét một sự lựa chọn trong chuỗicác lựa chọn Phương pháp này là sự lựa chọn lý tưởng cho việc kết hợp nhiều yếu tốquyết định khác nhau ảnh hưởng đến việc gợi ý một món ăn đến với người dùng

Đề tài “Thiết kế mô hình tủ lạnh thông minh ứng dụng kỹ thuật máy học” củaNguyễn Hoàng Hiệp Vũ và Văn Dũng [7] đã mang đến một hướng tiếp cận hay, sử

dung mã QR dé quản lý thực phẩm, sử dung mô hình hồi quy tuyến tinh đa biến dé

gợi ý món ăn cho người dùng Tuy nhiên, đề tài này vẫn còn hạn chế ở phần gợi ý

Trang 16

món ăn khi chi dựa vào hạn sử dụng, nguyên liệu va sở thích của người dùng Dé tài

chưa xem xét đên mức độ dinh dưỡng, ảnh hưởng của món ăn đên bệnh lý của người

dùng và đặc biệt là chỉ gợi ý những món ăn riêng lẻ, chưa xây dựng được một bữa ăn

biến động bất thường và quản lý nguyên liệu trong tủ lạnh một cách hiệu quả thông

qua một ứng dụng di động Đáp ứng nhu cầu ngày càng cao về ăn uống lành mạnh,tiết kiệm thời gian và tạo ra trải nghiệm cá nhân hóa trong việc quản lý thực phẩmtrong tủ lạnh, lựa chọn và chuẩn bị bữa ăn

1.3.2 Mục tiêu cụ thé

Hiện thực thành công chức năng của các thành phần trong hệ thống:

e Node thu thập dữ liệu: có khả năng đọc dữ liệu từ cảm biến nhiệt độ, độ am.Kết nối với Wi-Fi và ứng dụng di động của người dùng và gửi dữ liệu nhiệt độ, độ

am đến Server

e Server: có khả năng kết nối với database, thực hiện truy van va ghi dữ liệu

Đọc dữ liệu được gửi lên từ node và giao tiếp với ứng dụng di động

e M6 hình gợi ý món ăn và bữa ăn: gợi ý được các món ăn riêng lẻ dựa vào các

nguyên liệu có sẵn trong tủ lạnh, tình trạng sức khỏe và đánh giá người dùng Gợi ý được các bữa ăn phù hợp với nguyên liệu có sẵn, tình trạng sức khỏe của người dùng,

mức độ đáp ứng dinh dưỡng của bữa ăn và sở thích của người dùng đối với các món

Trang 17

người dùng về những thực phẩm sắp hết hạn, những nguyên liệu có thể cần được

chuân bị cho món ăn sắp tới.

1.4 Phạm vi nghiên cứu

Đề tài nghiên cứu mô hình gợi ý bữa ăn theo phương pháp hồi quy tuyến tính đa

biến, có thể mở rộng với rất nhiều yếu tố quyết định đến việc lựa chọn một bữa ăn

nhưng nhóm tập trung nghiên cứu vào bốn yếu tố chính: nguyên liệu có san, tình

trạng sức khỏe của người dùng, mức độ đáp ứng dinh dưỡng của bữa ăn và sở thíchcủa người dùng Các yếu tố khác có thê được nghiên cứu và cập nhật vào mô hình

Sau này.

Với ý tưởng biến một tủ lạnh bình thường trở nên thông minh, các thiết bị phục vụcho việc thu thập dữ liệu từ cảm biến có giá thành thấp, các chức năng cơ bản đủ đápứng nhu cầu thu thập dữ liệu nhiệt độ, độ ầm và giao tiếp với ứng dụng Đề tài khôngtập trung nghiên cứu sâu vào các yêu cầu về độ bên, tuổi thọ, mức tiêu thụ năng lượng

của các thiệt bị này.

Vì nghiên cứu xây dựng hệ thống chỉ nằm ở mức học thuật, chưa mang tính thươngmại nên những dịch vụ được sử dụng để triển khai các thành phần trong hệ thống nhưserver, hệ quản trị cơ sở dữ liệu và ứng dụng di động đều thuộc gói miễn phí nên hiệu

suât và mức độ bảo mật không cao.

Việc sử dụng camera để nhận dạng thực phẩm là một giải pháp tốn chi phí và

không đảm bảo hiệu qua và độ chính xác trong việc quản lý thực phâm Ngoài ra, các

hệ thống siêu thi đang số hóa tat cả mặt hàng bao gồm cả các loại thực pham dé dễdàng trong việc quản lý và nhận dạng Vì thế, nhóm giả định các thực phẩm trong tủlạnh đều được số hóa và gán mã QR chứa các thông tin cần thiết về thực phâm nhưtên, số lượng, nhà sản xuất, ngày sản xuất, hạn sử dụng, Từ đó, hiện thực chứcnăng quét mã QR trên thực phẩm để nhận được các thông tin được tích hợp trên đóphục vu cho việc quản lý thực phẩm

Trang 18

Ở dé tài này, nhóm chỉ thu thập số lượng dữ liệu về thực phẩm và món ăn 6 mức

cơ bản, đáp ứng được việc hiện thực và mô phỏng hệ thống Âm thực là một lĩnh vực

không ngừng phát triển với số lượng món ăn ngày một da dạng Việc mở rộng cơ sở

dữ liệu cho hệ thống là công việc không khó nhưng cần rất nhiều thời gian và côngsức để có thé thu thập đầy đủ dữ liệu của các thực phâm va món ăn

tác với người dùng qua ứng dụng di động.

Đặc biệt, nhóm sẽ xây dựng một mô hình gợi ý bữa ăn bằng công thức hồi quytuyến tính đa biến, dựa trên các yếu tô như tính sẵn có của nguyên liệu, ảnh hưởngcủa bữa ăn đến bệnh lý, mức đáp ứng dinh dưỡng và đánh giá của người dùng

Trang 19

Chương2 CƠ SỞ LÝ THUYET

2.1 Các module phần cứng

2.1.1 Module ESP8266

2.1.1.1 Giới thiệu module ESP8266

ESP8266 là một module Wi-Fi được phát triển bởi Espressif Systems Đây là mộttrong những module phô biến nhất được sử dụng trong các ứng dụng IoT (Internet ofThings) và hệ thống nhúng Với khả năng kết nối Wi-Fi tích hợp và hiệu suất cao,ESP8266 cho phép việc truyền và nhận dữ liệu thông qua mang Wi-Fi một cách don

giản và linh hoạt.

Các thông số kỹ thuật chính của ESP8266:

e Vi xử lý: ESP8266 sử dụng vi xử lý có kiến trúc RISC 32-bit Với tốc độ xungnhịp từ 80 MHz đến 160 MHz, nó cung cấp khả năng xử lý mạnh mẽ cho việc thực

hiện các tác vụ phức tạp trên module.

e Bo nhớ: ESP8266 có bộ nhớ flash tích hợp để lưu trữ chương trình và dữ liệu

Các phiên bản khác nhau của module có dung lượng bộ nhớ khác nhau, từ 512 KB

đến 16 MB

e Két néi Wi-Fi: ESP8266 hỗ trợ chuân Wi-Fi 802.11 b/g/n, cho phép kết nối vàtruyền đữ liệu thông qua giao thức TCP/IP Điều này cho phép module kết nối vớimạng Wi-Fi và giao tiếp với các thiết bị khác trong mạng

e - Giao diện ngoại vi: ESP8266 cung cấp các giao diện ngoại vi như UART, SPI,I2C và GPIO Điều này cho phép module kết nối và giao tiếp với các cảm biến, manhình và các thiết bị ngoại vi khác

e _ Tiêu thụ năng lượng: ESP8266 được thiết kế để tiết kiệm năng lượng, cho phép

hoạt động hiệu quả trong các ứng dụng yêu cầu tiêu thụ điện năng thấp

e Hỗtượ phần mềm: ESP8266 có sẵn một bộ thư viện phần mềm phong phú déphát trién ứng dụng, bao gồm việc quan lý kết nối Wi-Fi, truyền dữ liệu và điều khiển

các g1ao diện ngoại vI.

Trang 20

ESP8266 là một module mạnh mẽ và linh hoạt, thích hợp cho việc phát triển cácứng dụng IoT và nhúng Với khả năng kết nối Wi-Fi tích hợp, hiệu suất cao và khảnăng tiết kiệm năng lượng, nó được sử dụng rộng rãi trong các lĩnh vực như điềukhiến thiết bị, theo dõi, cảm biến và giao tiếp không dây.

2.1.1.2 Chế độ ngủ Deep-sleep của ESP8266

ESP8266 cung cấp các chế độ ngủ khác nhau dé tiết kiệm năng lượng [8] Các chế

độ ngủ này giúp giảm tiêu thụ điện năng khi không cần thiết và phù hợp với các ứngdụng yêu cầu tiết kiệm năng lượng ESP8266 cung cấp 3 chế độ ngủ có thê cấu hình

đó là: Modem-sleep, Light-sleep và Deep-sleep.

Bang 2.1: So sánh các thông số trong ba chế độ ngủ của ESP8266

Thành phan Chế độ Chế độ Chế độ

P Modem-sleep | Light-sleep Deep-sleep

Chế độ Wi-Fi Tắt Tắt Tắt

Mạch xung nhịp hệ thông Bật Tắt TắtĐồng hồ thời gian thực Bật Bật Bật

Bộ xử ly trung tâm (CPU) Bật Pending Tắt

Chế độ Deep-sleep cho phép người dùng đặt thời gian ngủ cu thé, sau đó ESP8266

sẽ tự động ngủ trong thời gian đó trước khi tỉnh dậy và tiếp tục hoạt động Trong khi

ở chế độ Deep-sleep, ESP8266 tiêu thụ rất ít năng lượng, thường chỉ trong khoảngvài microampe hoặc nanoampe, tuỳ thuộc vào phiên bản cụ thể của chip và các điều

kiện môi trường.

10

Trang 21

Chế độ Deep-sleep thường được sử dụng trong các ứng dụng yêu cầu hoạt động

tiết kiệm năng lượng, ví dụ như thiết bị IoT hoặc hệ thống đo lường từ xa Khi khôngcần thiết phải hoạt động trong một khoảng thời gian dài, ESP8266 có thé được đặttrong chế độ Deep-sleep để giảm tiêu thụ năng lượng và tiết kiệm pin

2.1.1.3 Giao thức ESP-TOUCH

ESP-TOUCH là một giao thức kết nối không dây được phát triển bởi Espressif

Systems [9] ESP-TOUCH cho phép người dùng kết nối các thiết bi ESP8266 hoặcESP32 với mang Wi-Fi bang cach su dung mat khẩu mã hóa đã duoc chia sẻ trước

đó Quá trình kết nối diễn ra thông qua việc nhập mật khâu mã hóa trên ứng dụng

điện thoại thông qua giao diện người dùng đơn giản Một mô hình ESP-TOUCH cơ bản được mô tả như Hình 2.1.

ESP32

JESP8266

Hình 2.1: Mô hình ESP-TOUCH cơ bản

Vì thiết bị không kết nối với mạng ban đầu, ứng dụng ESP-TOUCH không thê gửi

thông tin trực tiếp đến thiết bị Với giao thức truyền thông ESP-TOUCH, một thiết bị

có khả năng truy cập Wi-Fi như điện thoại thông minh có thê gửi một chuỗi gói UDP

(User Datagram Protocol) đến Điểm truy cập Wi-Fi (Access Point), mã hóa SSID(Service Set Identifier) và mật khẩu vào trường Length của mỗi gói UDP này Thiết

11

Trang 22

bị sau đó có thê nhận được và phân tích thông tin cần thiết từ các gói UDP này Cấu

trúc gói dữ liệu được hiển thị trong Hình 2.2

DA SA Length LLC SNAP DATA FCS

Contains SSID and key information which ESP8266 device can reach

Hình 2.2: Cấu trúc gói dữ liệu ESP-TOUCH

2.1.2 Cảm biến nhiệt độ và độ 4m DHT22

DHT22 là một cảm biến đo nhiệt độ và độ 4m trong môi trường Nó là một cảmbiến kỹ thuật số có khả năng đo nhiệt độ và độ ầm với độ chính xác cao Cảm biếnDHT22 được sử dụng phổ biến trong các ứng dụng liên quan đến giám sát môi trường,điều khiến tự động, quản lý năng lượng, hệ thống điều hòa không khí và các ứng dụngkhác yêu cầu đo đạc nhiệt độ và độ âm Nó cung cấp dữ liệu đầu ra đưới dạng tín hiệu

số và có thé được kết nói với nhiều loại vi điều khiến và bo mạch nhúng khác nhau

dé thu thập và xử lý dir liệu môi trường

Các thông số kỹ thuật chính của DHT22:

e - Điện áp hoạt động: 3,5V đến 5,5V

e Dong hoạt động: 0,3mA (measuring), 60uA (standby)

e Pau ra: Serial data

Trang 23

2.2 Giao thức MQTT

2.2.1 MQTT là gì?

MQTT (Message Queuing Telemetry Transport) là một giao thức chuẩn của

OASIS (Organization for the Advancement of Structured Information Standards)

dùng trong truyền thông cho IoT Nó được thiết kế như một giao thức truyền thông

nhẹ nhàng, sử dụng mô hình dang ký/gửi thông điệp (publish/subscribe) lý trong cho

việc kết nối các thiết bị từ xa với kích thước mã nguồn nhỏ và băng thông mạng tốithiểu Hiện nay, MQTT được sử dụng rộng rãi trong nhiều ngành công nghiệp như ô

tô, sản xuất, viễn thông, dầu khí, [10]

2.2.2 Kiến trúc MQTT Publish / Subscribe

m" Subscribe to topic: temperatur

= Publish to topic: temperature Z 4

E ——

2 Publsh:24°C ta Publish: 2° C reese

> á 4Í MOTT Clien

bsotibe to topi€: temperatur — ME 1 Subscriber

Hình 2.3: Kiến trúc MQTT Publish và Subscribe

Giao thức MQTT có ba thành phần chính như Hình 2.3:

e Broker: Là một máy chủ (server) trung gian giữa các publisher va subscriber.

Broker nhận các thông điệp từ publisher và chuyền tiếp đến các subscriber tương ứng

Nó quản lý các topic và xử lý việc đăng ky (subscribe) và hủy đăng ký (unsubscribe)

Trang 24

e Subscriber: Là các thiết bị hoặc ứng dụng đăng ký nhận thông điệp từ mộthoặc nhiều topic cụ thé Subscriber nhận các thông điệp từ broker và có thé xử lý dit

liệu hoặc thực hiện các hành động tương ứng với thông điệp nhận được.

Kiến trúc này cho phép các thiết bị và ứng dụng gửi và nhận thông điệp theo môhình publish/subscribe mà không cần kết nối trực tiếp với nhau Thông qua broker,

các publisher va subscriber có thé giao tiếp với nhau một cách linh hoạt và hiệu quả,

tạo nên một hệ thống truyền thông đáng tin cậy trong môi trường IoT

2.3 Hệ quan trị cơ sở dữ liệu MongoDB

2.3.1 Cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu là gi?

Cơ sở dữ liệu là một tập hợp các dữ liệu có tô chức liên quan đến nhau được lưutrữ trong một hệ thống máy tính Nó bao gồm các bảng, các mục đữ liệu và các quan

hệ giữa chúng Mục tiêu chính của cơ sở dữ liệu là lưu trữ dữ liệu một cách có tôchức và cung cấp phương tiện dé truy xuất và quản lý dữ liệu một cách hiệu quả

Hệ quản trị cơ sở dữ liệu - DBMS (Database Management System) là một phần

mềm được sử dụng dé quản lý, t6 chức và xử lý cơ sở dữ liệu Nó cung cấp các công

cụ và chức năng đỀ tạo, truy xuất, cập nhật và xóa dữ liệu trong cơ sở dữ liệu DBMS

đảm bảo tính nhất quán, bảo mật và hiệu suất của cơ sở dữ liệu thông qua các quytắc, ràng buộc và phương pháp xử lý dữ liệu

DBMS cho phép người dùng thực hiện các tác vụ như tao, sửa đôi và xóa câu trúc

cơ sở dit liệu, truy vân dữ liệu theo yêu câu, bảo mật dữ liệu, sao lưu và khôi phục dữ

liệu cùng nhiêu chức năng khác Một sô hệ quản tri cơ sở dữ liệu phô biên có thê kê

đến như MongoDB, MySQL, PostgreSQL, Oracle và SQL Server

2.3.2 Hệ quản trị cơ sở dữ liệu MongoDB

Được biết đến như một hệ quản tri cơ sở dữ liệu phi quan hệ (NoSQL) mã nguồn

mở, MongoDB cung cấp giải pháp dé lưu trữ và xử lý dữ liệu phi cau trúc và có khảnăng mở rộng dễ dàng MongoDB sử dụng mô hình tài liệu dé lưu trữ dữ liệu, trong

14

Trang 25

đó các dữ liệu này được biéu dién với kiểu JSON [11] có thể nhúng các dit liệu phi

Hình 2.4: Các dữ liệu phi cấu trúc được lưu trong tải liệu JSON

MongoDB cung cấp khả năng truy cập từ xa thông qua các kết nối mạng TCP/IP.Điều này cho phép ứng dụng hoặc máy chủ từ xa kết nối và tương tác với cơ sở ditliệu MongoDB, mang lại sự tiện lợi và linh hoạt trong việc quản lý và truy xuất dit

liệu từ bat kỳ địa điểm nào, miễn là có kết nói mạng

2.4 Giao thức HTTP và HTTPS

2.4.1 Giao thúc HTTP

HTTP (Hypertext Transfer Protocol) là giao thức sử dụng trên World Wide Web

dé truyền tai dữ liệu giữa máy chủ và trình duyệt web của người dùng Giao thức nàycho phép máy chủ cung cấp nội dung như văn bản, hình ảnh, âm thanh và video thông

qua các yêu cau từ trình duyệt web

HTTP là một giao thức ứng dụng tích hợp trong bộ giao thức TCP/IP, sử dụng détruyền tải thông tin giữa máy chủ và trình duyệt web TCP/IP là bộ giao thức quantrọng cho Internet và hầu hết các mạng máy tính thương mại Nó bao gồm hai thành

15

Trang 26

phần chính là TCP (Transmission Control Protocol) và IP (Internet Protocol), đảm

bảo việc truyền dữ liệu tin cậy và định địa chỉ mạng cho các thiết bị.

Thông điệp gửi đi

(HTTP request)

Trình duyệt web Máy chủ web

Hình 2.5: Mô hình Client — Server

Giao thức HTTP hoạt động dựa trên mô hình Client — Server [12] như được mô tả

ở Hình 2.5 Khi truy cập vào một trang web bất kỳ sử dụng HTTP, trình duyệt sẽ

dùng địa chỉ IP để thiết lập phiên kết nối với máy chủ của trang web đó, địa chỉ IPnày được cung cấp bởi hệ thống phân giải tên miền DNS (Domain Name System).Sau khi nhận được yêu cầu, máy chủ sẽ gửi lại các lệnh tương ứng dé hién thị trangweb, bao gồm các nội dung như văn bản, hình ảnh, âm thanh, video cũng như nhiều

loại dữ liệu khác.

2.4.2 Giao thức HTTPS

HTTPS (Hypertext Transfer Protocol Secure) là phiên bản an toàn của giao thức

truyền tải siêu văn bản HTTP Nó tích hợp Chứng chỉ bảo mật SSL (Secure SocketsLayer) dé mã hóa các thông điệp khi thực hiện giao tiếp, việc này nhằm nâng cao tính

bảo mật hơn so với HTTP.

Dù HTTPS va HTTP có cách thức hoạt động giống nhau, nhưng HTTPS được bố

sung thêm chứng chi SSL hoặc TLS (Transport Layer Security) [12], minh hoa ở

Hình 2.6 Hiện nay, HTTPS được đánh giá là tiêu chuẩn bao mật hang đầu cho hang

triệu trang web trên mạng Internet.

16

Trang 27

Giao thức HTTPS

@ https://

=| @#%

username: abc username: !|@#

password: 123 a _— t password: )(*&AA

User Website Web Server

Hình 2.6: Giao thức HTTPS

2.4.3 HTTP Request là gì?

HTTP Request là một phan quan trọng của giao thức HTTP, được sử dung dé gửiyêu cầu từ client đến server dé yêu cầu các tài liệu hoặc thực hiện các hành động cụthể trên server Mỗi HTTP Request chứa thông tin cần thiết dé server hiểu yêu cầucủa client và phản hồi một cách chính xác

Một HTTP Request bao gồm các thành phan sau:

e Method: Xác định loại yêu cầu mà máy khách muốn máy chủ thực hiện Cácphương thức thông thường bao gồm:

o GET: Yêu cau lay thông tin từ server

o POST: Gửi dữ liệu mới lên server từ client.

o PUT: Yêu cầu server cập nhật dữ liệu có sẵn

o DELETE: Xóa dữ liệu khỏi server.

e URL (Uniform Resource Locator): Đường dẫn đến một tài nguyên mà client

cần truy cập đến trên server

e Headers: Bao gồm các thông tin bổ sung như User-Agent, Content-Type,

Authorization,

17

Trang 28

e Body: Chita dữ liệu gửi kèm theo yêu cầu (thường được sử dụng trong phương

thức POST va PUT).

e Version: Xác định phiên bản cua giao thức HTTP được sử dụng.

Khi client gửi một HTTP Request, server nhận và xử lý yêu cầu đó dựa trên các

thông tin có trong yêu cầu Sau đó, server sẽ phản hồi bằng một HTTP Response chứa

các thông tin và dữ liệu được yêu cầu hoặc các mã lỗi nếu có

2.4.4 Một vài phương thức HTTP Request cơ bản

2.4.4.1 Phương thức GET

Phương thức GET được sử dụng đề yêu cau lay thông tin từ server Nói cách khác,

client sử dụng phương thức GET đề truy xuất tài nguyên từ server mà không làm thay

đi trạng thái của server hoặc dữ liệu trên server Ví dụ: yêu cau lấy thông tin về mộtbài viết từ một trang web

2.4.4.2, Phương thức POST

Phương thức POST được sử dụng dé gửi dữ liệu từ client lên server dé xử lý Day

là phương thức thường được sử dụng để gửi dữ liệu, tạo mới dữ liệu trên server, hoặcthực hiện các hành động có tác động đến server hoặc dữ liệu trên server Ví dụ: gửi

một biéu mau đăng ký thông tin người dùng lên server

Phương thức DELETE được sử dụng dé xóa dữ liệu khỏi server client sử dụng

phương thức DELETE dé yêu cầu xóa dữ liệu được xác định từ server Ví dụ: xóa

một bài viết từ một trang web

18

Trang 29

2.5 Flask

Flask là một framework phát triển ứng dụng web bằng ngôn ngữ lập trình Python

Nó được xây dựng nhằm đơn giản hóa việc phát triển ứng dụng web và cung cấp một

cách linh hoạt để xây dựng các ứng dụng web nhỏ đến trung bình

Flask tuân thủ mô hình thiết kế MVC (Model-View-Controller), cung cấp một tập

hợp các công cụ, thư viện giúp quản lý luồng làm việc và xử lý các yêu cầu từ người

dùng Với kiến trúc đơn giản, nhẹ nhàng, công cụ này cho phép người phát triển tậptrung vào logic ứng dụng, không cần phải lo lắng về các chỉ tiết kỹ thuật phức tạp

return “Fridge IT says hello!”;

Fridge IT says hello!

HTMT/CSS Response

Flask Application

Hình 2.7: Cách flask xử ly yêu cầu từ client

Flask hỗ trợ việc xử lý các yêu cầu HTTP từ phía client và phản hồi lại với các kếtquả tương ứng [13], theo đó, Hình 2.7 biểu diễn chỉ tiết quy trình thực hiện xử lý yêucầu này Khi được sử dụng làm server, Flask cho phép lập trình viên xác định các

đường dẫn URL và các hàm xử lý tương ứng với mỗi đường dẫn Khi một yêu cầu

được gửi đến server với một đường dẫn cụ thể, Flask sẽ gọi và thực thi ham tươngứng để xử lý yêu cầu và trả về kết quả Đặc biệt, Flask cho phép lập trình viên xử lýnhiều loại yêu cầu khác nhau như GET, POST, PUT, DELETE

19

Trang 30

Ngôn ngữ lập trình mà Flutter sử dụng là Dart, một ngôn ngữ linh hoạt và dễ học

dé phát triển ứng dụng Các thành phan giao diện đa dang và có thé được tùy chỉnhlàm cho ứng dụng trở nên linh hoạt và đẹp mắt Flutter cũng cung cấp các công cụ vàthư viện hỗ trợ, giúp tăng tốc quá trình phát triển và kiểm thử ứng dụng

Một điểm mạnh của Flutter là tính năng làm mới tức thì, cho phép nhà phát triểnnhanh chóng thấy được các thay đôi trong mã nguồn áp dụng vào giao diện ngườidùng, giúp nâng cao hiệu suất phát triển ứng dụng Flutter cũng hỗ trợ tích hợp nhiềucông cụ khác như khả năng quản lý trạng thái ứng dụng, xử lý sự kiện và giao tiếp

mạng, giúp xây dựng các ứng dụng di động phong phú và đa chức năng.

2.7 Mô hình hồi quy tuyến tính

2.7.1 Hồi quy tuyến tính

Hồi quy tuyến tính là một phương pháp trong thông kê và khai phá dữ liệu dé tìmmối quan hệ giữa một biến phụ thuộc với một hoặc nhiều biến độc lập Nó dựa trêngiả định rang mối quan hệ này có thé được mô ta bằng một hàm tuyến tính Mô hìnhhồi quy tuyến tinh đơn giản nhất là mô hình hồi quy tuyến tính đơn biến, trong đó chỉ

có một biến độc lập [14] Mô hình hồi quy tuyến tinh đơn giản có thé được biểu diễnbang công thức (2.1)

Y = Bo + BiX (2.1)

Trong đó:

e Y là biến phụ thuộc mà chúng ta muốn dự đoán hoặc giải thích

20

Trang 31

e X là biến độc lập, được xem là yếu tố có thé ảnh hưởng đến biến phụ thuộc.

e By và Ø¿ là hệ số hồi quy tương ứng Bo là hệ số góc và biểu thị tăng giảm củađường hồi quy, 8, là hệ số điều chỉnh và cho biết mức độ tác động của biến độc lập

X lên biến phụ thuộc Y

Công thức trên biểu thị một mô hình tuyến tính đơn giản, trong đó biến phụ thuộc

Y được giải thích bằng một hàm tuyến tính của biến độc lập X

2.7.2 Hồi quy tuyến tính đa biến

Hồi quy tuyến tính đa biến là một phương pháp mở rộng của hồi quy tuyến tính,

cho phép xem xét sự tương quan giữa một biến phụ thuộc và nhiều biến độc lập cùngmột lúc Công thức chung của mô hình hồi quy tuyến tính đa biến được biểu diễn

bang công thức (2.2)

Y = Bo + ByX1 + BoX2 ++ + PuẨn (2.2)

Trong đó:

e Y là biến phụ thuộc mà chúng ta muốn dự đoán hoặc giải thích

e X,, Xz, , X„ là các biến độc lập, được xem là các yếu tố có thé ảnh hưởng

21

Trang 32

2.8.2 Năng lượng (Calorie)

2.8.2.1 Calorie

Calorie, duoc viét 1a calo trong tiéng Việt, là một đơn vi do lường năng lượng.Trong ngữ cảnh dinh dưỡng, calorie được sử dụng đề đo lượng năng lượng mà thức

ăn và đồ uống cung cấp cho cơ thể Đơn vị chính cho calorie là kilocalorie (kcal)

Calorie đo lượng năng lượng mà cơ thể hấp thụ từ các chất dinh đưỡng trong thức

ăn và đồ uống Mỗi loại thức ăn và đồ uống có một lượng calorie riêng, tương ứng

với lượng năng lượng mà chúng cung cấp Việc tiêu thụ calorie từ thức ăn là quantrọng dé cung cấp năng lượng cho hoạt động hàng ngày, duy trì chức năng cơ bản của

cơ thê và duy trì cân nặng.

Việc cân băng calorie là một khía cạnh quan trọng trong chê độ ăn uông và sức khỏe tông thê của con người Tâm quan trọng của việc cân băng calorie không chỉ

giới hạn trong việc duy trì cân nặng lành mạnh mà còn ảnh hưởng đên sức khỏe và

chất lượng cuộc sông của mỗi người.

2.8.2.2 Các yếu tố ảnh hưởng đến nhu cầu sử dụng năng lượng

ya

Việc xác định các yêu tố ảnh hưởng đến nhu cau sử dung năng lượng của mỗi cánhân là một giai đoạn quan trong và không thé bỏ qua trong quá trình đánh giá vàquản lý dinh dưỡng Điều này đặc biệt quan trọng vì nhu cầu sử dụng năng lượng củamỗi cá nhân có thê khác nhau dựa trên nhiều yếu tố khác nhau [15], cụ thể là:

e = Tuổi: Tuổi của mỗi cá nhân có ảnh hưởng đáng kê đến nhu cầu sử dụng năng

lượng Trẻ em và thanh niên dang phát triển có nhu cầu cao hơn do cơ thé dang tăng

trưởng và phát triển Ngược lại, người lớn trung niên và người già thường có nhu cầuthấp hơn do giảm hoạt động và tốc độ trao đôi chat

e - Giới tính: Giới tính cũng có vai trò trong xác định nhu cầu sử dung năng lượng

Nam giới thường có nhu cầu cao hơn do có tỷ lệ cơ bắp cao hơn và mức độ hoạt động

vận động tích cực Phụ nữ thường có nhu cầu thấp hơn do tỷ lệ mỡ cơ thể cao hơn và

cơ bắp ít hơn

22

Trang 33

e Cân nặng và chiều cao: Cân nặng và chiều cao của mỗi cá nhân cũng ảnhhưởng đáng kể đến nhu cầu sử dụng năng lượng Cơ thé lớn hon và nặng hơn cầnnhiều năng lượng hơn để duy trì hoạt động hàng ngày và chức năng cơ bản.

e Mic độ vận động: Mức độ vận động là một yếu tố quan trọng ảnh hưởng đếnnhu cầu sử dụng năng lượng Các hoạt động vận động tích cực như tập thé dục, chạy

bộ, làm việc vật lý đòi hỏi nhiều năng lượng hơn so với hoạt động ít vận động

e Tinh trạng sức khỏe: Các van dé sức khỏe như bệnh lý, thé trạng yếu, bệnhmãn tính, thai kỳ hoặc cho con bú cũng có thé ảnh hưởng đến nhu cầu sử dụng năng

lượng của mỗi cá nhân Những tình trạng này có thé làm thay đổi nhu cầu năng lượng

hoặc khó khăn trong việc hấp thu và sử dụng dinh dưỡng

e - Mục tiêu sức khỏe và cân nặng mong muốn: Mục tiêu sức khỏe và cân nặng

mong muốn cũng sẽ ảnh hưởng đến nhu cầu sử dụng năng lượng Người muốn giảmcân sẽ cần tiêu thụ ít năng lượng hơn so với nhu cầu cơ bản dé tạo ra phần năng lượng

thiếu hụt từ cơ thể, trong khi người muốn tăng cân sẽ cần tiêu thụ nhiều năng lượng

hon dé tạo ra dư thừa năng lượng

e - Tốc độ trao đôi chất: Tốc độ trao đôi chất tự nhiên của mỗi cá nhân cũng ảnhhưởng đến nhu cầu sử dụng năng lượng Một người có tốc độ trao đôi chất nhanh sẽtiêu hao nhiều năng lượng hơn so với người có tốc độ trao đôi chất chậm

Hiểu và xác định các yếu tố này là quan trọng trong việc định rõ nhu cầu sử dụng

năng lượng của mỗi cá nhân, từ đó thiết kế một chế độ ăn uống cân bằng và phù hợp

dé đáp ứng các nhu cầu dinh dưỡng và duy trì sức khỏe tong thé

2.8.3 Các chất dinh dưỡng cần thiết cho cơ thé

Cơ thé của chúng ta cần được cung cấp các chất dinh dưỡng cần thiết dé duy trì

sức khỏe và hoạt động một cách tối ưu Các chất dinh dưỡng này có thể được chia

thành hai nhóm chính: chất dinh dưỡng vi lượng và chất dinh dưỡng đa lượng

2.8.3.1 Các chất dinh dưỡng vi lượng

Các chất dinh dưỡng vi lượng, còn được gọi là micro—nutrient, là các chất dinh

dưỡng cần thiết cho cơ thể nhưng chỉ cần lượng nhỏ Chúng bao gồm vitamin và

23

Trang 34

khoáng chất Mặc dù lượng vi lượng cần thiết ít, nhưng chúng đóng vai trò quan trọng

trong nhiều quá trình cơ bản của cơ thể như chức năng miễn dịch, chức năng thần

kinh, sự phát triển và duy trì các co quan và mô và quá trình chuyền hóa năng lượng

Việc cung cấp đủ chất dinh dưỡng vi lượng thông qua chế độ ăn uống cân đối và đadạng là rat quan trọng dé duy trì sức khỏe và tránh các van đề dinh dưỡng

2.8.3.2 Các chất dinh dưỡng đa lượng

Các chất dinh dưỡng đa lượng, còn được gọi là macro-nutrient, là những chất dinhdưỡng cung cấp năng lượng chủ yếu cho cơ thé Chúng bao gồm carbohydrate, protein

và chất béo Mỗi chất dinh dưỡng đa lượng đóng vai trò quan trọng trong cung cấp

năng lượng, xây dựng và duy trì cơ bắp, cung cấp chất điều hòa và đảm bảo sự hoạtđộng chính xác của các hệ thống cơ thé Các chất dinh đưỡng đa lượng có thé được

kê đên như:

e Carbohydrate: Carbohydrate là nguồn năng lượng chính cho cơ thé Khi tiêuthụ carbohydrate, cơ thê sẽ chuyền đồi nó thành glucose, một nguồn năng lượng tứcthì Mỗi gram carbohydrate cung cấp khoảng 4 calories Đây là lý do tại sao thựcphẩm giàu carbohydrate như bột mì, gạo, khoai tây, lúa mach và các sản phẩm ngũcốc được coi là nguồn năng lượng quan trọng cho cơ thê

e Protein: Protein không chỉ làm nền tang cho sự xây dựng và sửa chữa các tếbào trong cơ thể, mà còn có khả năng cung cấp năng lượng Mỗi gram protein cũngcung cấp khoảng 4 calories Thực phẩm giàu protein bao gồm thịt, cá, trứng, đậu, hạt

và các sản phẩm từ sữa Protein cũng đóng vai trò quan trọng trong quá trình tái tạo

cơ bắp và hỗ trợ sự phát triển của hệ thống miễn dịch

e Chat béo: Mặc dù chất béo thường bị xem là “kẻ gây tăng cân”, nhưng chúng

là nguồn cung cấp năng lượng quan trọng cho co thể Mỗi gram chất béo cung cấpkhoảng 9 calories, là nguồn năng lượng cao nhất so với carbohydrate và protein Chất

béo không chỉ giúp cung cấp năng lượng dự trữ cho cơ thể, mà còn đóng vai trò quan

trọng trong hấp thụ các vitamin tan trong chất béo, cung cấp axit béo thiết yếu và tạo

cảm giác no lâu hơn sau khi ăn.

24

Trang 35

Các chất dinh dưỡng đa lượng đóng vai trò quan trọng trong cung cấp năng lượng

và duy trì sự hoạt động cơ bản của cơ thể Tuy nhiên, việc cân băng lượng chất dinh

dưỡng da lượng được tiêu thụ là điều cần thiết để đảm bảo sức khỏe và cân nặng lý

tưởng.

2.8.3.3 Chất xơ

Chất xơ, còn được gọi là dietary fiber, là một thành phần dinh dưỡng không thể

tiêu hóa bởi cơ thé Nó tìm thấy trong các loại thực phẩm như rau xanh, hoa quả, ngũcốc nguyên hạt và hạt Chất xơ có vai trò quan trọng trong sự chuyên hóa thức ăn vàhấp thụ chất dinh dưỡng, đồng thời hỗ trợ quá trình tiêu hóa và duy trì sự lành mạnhcủa hệ tiêu hóa Ngoài ra, chất xơ còn giúp tạo cảm giác no, điều chỉnh đường huyết

và giảm nguy cơ mắc bệnh tim mạch và bệnh lý đường tiêu hóa Dé duy trì một chế

độ ăn giàu chất xơ, cần bao gồm các nguồn thực phẩm giàu chất xơ trong khâu phần

ăn hàng ngày.

2.8.4 Hệ thống chỉ định các giá trị tham khảo về dinh dưỡng (DRI)

DRI (Dietary Reference Intakes) là một hệ thống chỉ định giá trị dinh dưỡng được khuyến nghị cho người tiêu dùng Công thức DRI được phát triển bởi Viện Y tế Quốc

gia (National Academy of Medicine) của Hoa Kỳ và được sử dụng rộng rãi dé định

rõ nhu cầu dinh dưỡng của các nhóm dân số khác nhau, bao gồm người lớn, trẻ em,

phụ nữ mang thai và cho con bú.

Công thức DRI bao gồm các chỉ số như RDA (Recommended Dietary

Allowances), AI (Adequate Intakes), UL (Tolerable Upper Intake Levels) và EAR

(Estimated Average Requirements) Chúng giúp xác định lượng chat dinh dưỡng cầnthiết từ các nguồn thực phâm khác nhau và đảm bảo người tiêu dùng nhận được đủ

chất dinh dưỡng cần thiết cho sức khỏe và phát triển bình thường

25

Trang 36

Chương 3 GIẢI PHÁP DE XUẤT

Kiến trúc hệ thông quản lý tủ lạnh thông minh được thiết kế theo kiến trúc của một

hệ thống IoT cơ bản, gồm có 3 lớp chính trong Hình 3.1:

e - Lớp thiết bị (Device Layer): Lớp này bao gồm cảm biến DHT22 thu thập dữliệu nhiệt độ và độ 4m bên trong tủ lạnh, những dữ liệu này được truyền qua dây đếnESP8266 ESP8266 kết nói với mang Wi-Fi và gửi những dữ liệu này lên Server bang

giao thức MQTT.

e Lép điện toán dam mây (Cloud Layer): Lớp này chịu trách nhiệm xử lý các

dữ liệu nhiệt độ, độ âm từ lớp thiết bị và xử lý các yêu cầu từ lớp ứng dụng, thực hiệncác chức năng xử ly logic và lưu trữ, truy xuất dữ liệu từ cơ sở dữ liệu Đây cũng làlớp chịu trách nhiệm tính toán mô hình gợi ý món ăn và bữa ăn dé đưa ra các kết qua

gợi ý từ những dữ liệu đang có ở cơ sở dữ liệu và gửi kết quả đến lớp ứng dụng

e Lop ứng dụng (Application Layer): Lớp này đảm nhận vai trò giao tiếp vớingười dùng cuối, tiếp nhận yêu cầu từ người dùng và chuyền tiếp cho lớp điện toánđám mây (Cloud Layer) để xử lý Lớp ứng dụng có thể thực hiện các nhiệm vụ nhưhiển thị giao diện người dùng, xử lý dữ liệu đầu vào, gửi yêu cầu, nhận kết quả từ lớp

điện toán đám mây và hién thị kết quả như danh sách thực phẩm trong tủ lạnh, dữ

26

Trang 37

liệu nhiệt độ độ âm hoặc kết quả gợi ý món ăn, bữa ăn phù hợp cho người dùng Lớpứng dụng đóng vai trò quan trọng trong việc cung cấp giao diện trực quan và tương

tác cho người dùng cuối Ngoài ra, lớp này còn có “Smartphone camera” là một thiết

bị dé thu thập dữ liệu, cụ thé là quét mã QR chứa thông tin của thực phẩm và gửi yêu

câu thêm nguyên liệu đên Server.

3.2 Thiết kế phần mềm cho ESP8266 Node MCU

Khởi tạo hệ thống

(Serial và Pin Mode)

1 Che đã setupMode

Luu SSID va mat

khau vao EEPROM

Trang 38

Chức năng chính của thiết bị biên ESP8266 là thu thập dữ liệu nhiệt độ, độ am từ

cảm biến DHT22 và gửi lên server bằng giao thức MQTT Đề hiện thực được phần

mềm giúp ESP8266 thực hiện đúng chức năng và đảm bảo tiết kiệm năng lượng,

nhóm đề xuất sơ đồ hoạt động như Hình 3.2

Khi khởi động nguồn, ESP sẽ thực hiện một số khởi tạo hệ thống như khởi taoSerial hay thiết lập Pin Sau đó, hệ thống sẽ kiểm tra trigger xem người dùng có đangmuốn vào chê độ thiết lập kết nối (setupMode) hay không Nếu công tắc đang ở trạngthái “OFF” có nghĩa là người dùng không muốn vào chế độ thiết lập kết nối, chươngtrình sẽ đọc SSID, mật khâu Wi-Fi từ EEPROM lên và kết nối Wi-Fi và thực hiện

các công việc tiếp đó Ngược lại, nếu công tắc đang ở trạng thái “ON”, ESP8266 sẽ

khởi động ESP-TOUCH để vào chế độ thiết lập kết nối Tại đây, người dùng sẽ sử

dụng ứng dụng dé nhập mật khâu Wi-Fi và kết nối ứng dụng với ESP8266 Sau khinhập đúng SSID, mật khẩu Wi-Fi và kết nối được với ứng dụng thành công, ESP8266

sẽ lưu SSID, mật khâu của Access Point đó vào EEPROM cho các kết nối lần sau màkhông cần nhập lại SSID, mật khẩu Tiếp theo, ESP8266 sẽ đọc SSID, mật khâu Wi-

Fi từ EEPROM lên và kết nối với Wi-Fi, sau đó đọc dữ liệu nhiệt độ, độ âm từ cảm

biến DHT22 Kết nối bằng giao thức MQTT va publish dữ liệu đó Flepsi MQTT

Broker Cuối cùng, ESP8266 sẽ vào chế độ Deep-sleep trong vòng 15 phút để tiếtkiệm năng lượng và chờ được thức dậy dé thực hiện chu ky tiép theo

3.2.1 Cấu hình Wi-Fi thiết bị bằng ESP-TOUCH

ESP-TOUCH (ESP8266 SmartConfig) là một phương pháp cấu hình đơn giản dékết nối ESP8266 với mạng Wi-Fi mà không cần phải nhập SSID va mật khẩu trựctiếp vào chương trình Khi nhận được trigger từ người dùng, ESP8266 được đặt vào

chế độ SmartConfig bằng cách sử dụng hàm WiFi.beginSmartConfig() trong chương

trình Arduino.

Khi ở trong chế độ SmartConfig, dé lay được SSID và mật khẩu Wi-Fi, ứng dụng

di động cần sử dụng API từ SmartConfig để nhập mật khẩu cho Wi-Fi mà điện thoại

đang kết nối Sau khi lay được SSID va mật khâu, ESP8266 kết nối đến Wi-Fi và tạo

28

Trang 39

một server cục bộ đề ứng dụng có thê gửi yêu cầu lấy ID thiết bị Sau khi đã phản hồi

ID thiết bị cho ứng dụng thành công, ESP8266 dừng hoạt động server cục bộ và tiếp

tục thực hiện luồng chương trình chính

3.2.2 Lưu SSID và mật khẩu Wi-Fi vào EEPROM

EEPROM (Electrically Erasable Programmable Read-Only Memory) là một loại

bộ nhớ không bay hơi có thé lưu trữ dữ liệu lâu dai mà không cần phải có nguồn điện

liên tục.

Tận dụng đặc tính của loại bộ nhớ này, ta sẽ lưu lại thông tin SSID và mật khẩuWi-Fi vào EEPROM dé khi ESP8266 đi vào chế độ Deep-sleep và khởi động lại,những dữ liệu này vẫn còn ở bộ nhớ dé đọc lại và kết nối với Wi-Fi mà không cầnphải thiết lập lại

Dé hiện thực chức năng này, nhóm sử dụng các phương thức trong thư viện

“EEPROM” Cụ thé là hai phương thức EEPROM.write(address, value) và

EEPROM.read(address) là hai phương thức đọc, ghi một giá tri byte trong EEPROM.

Từ đó hiện thực các hàm đọc, ghi, xóa dữ liệu của một khoảng địa chỉ trong EEPROM

dé lưu chuỗi SSID và mật khẩu Wi-Fi

3.2.3 Lấy dữ liệu nhiệt độ và độ 4m từ DHT22

Thực hiện kết nối như Hình 3.3:

e Chan VCC của cảm bién DHT22 được kết nối với chân 3.3V của ESP8266

e Chan GND của cảm biến DHT22 được kết nối với chân GND của ESP8266

e Ngo ra của cảm biến DHT22 được kết nối với chân D4 của ESP8266

Sử dụng thư viện “DHT” dé đọc dữ liệu từ cảm biến nhiệt độ và độ âm DHT Thưviện này cung cấp các ham và phương thức như readTemperature() và

readHumidity() dé tương tác với cảm biến DHT và truy xuất dữ liệu nhiệt độ và độ

âm từ cảm biên.

29

Trang 40

OND EAE 90 fŒ ZO 10 00

3 GND CLK SD0 CMD SD1 5D2 SO} RSV RSV A0

Vin GND RST EN 3V

Hình 3.3: Cách kết nối ESP8266 va cảm biến DHT22

3.2.4 Kết nối với Flespi MQTT Broker

3.2.4.1 Tao token và kết nối

Đầu tiên, truy cập trang web Flespi (https://flespi.com/) và tạo tài khoản, tao dự án

mới và tạo một token mới phục vụ cho việc kêt nôi.

Trong chương trình của ESP8266, tiến hành cấu hình các thông tin kết nối MQTT

như MQTT Server, MQTT Port, MQTT Token bằng phương thức

setServer(mqttServer, mqttPort) của thư viện “PubSubClient” — một thu viện được

sử dụng dé kết nối và giao tiếp với các broker MQTT Sau đó kết nối với MQTTBroker bằng phương thức connect(mqttToken)

3.2.4.2 Publish dữ liệu lên Flespi MQTT Broker

Dé gửi dữ liệu lên Flespi MQTT Broker và Server có thé nhận được dit liệu chính

xác, chúng ta cần thống nhất topic mà dữ liệu nhiệt độ, độ ầm sẽ được gửi lên từ

ESP8266 và hiển nhiên là sẽ kết nối chung một MQTT Server, MQTT Port và MQTT

Token.

Sau khi cấu hình các thông tin kết nối MQTT và kết nối đến MQTT Broker,

ESP8266 sẽ sử dụng phương thức publish(topic, payload) đề publish đữ liệu nhiệt

30

Ngày đăng: 02/10/2024, 04:17