Bối cảnh và vấn đề nghiên cứu

Khóa luận tốt nghiệp ngành Kỹ sư Kỹ thuật Máy tính với đề 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 thông minh" được thực hiện bởi sinh viên Trương Bảo Nguyên (MSSV: 19521924) và Trịnh Trần Trung (MSSV: 19522437), dưới sự hướng dẫn của TS. Đoàn Duy tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh (tháng 07 năm 2023).

Lý do chọn đề tài và bối cảnh thực tiễn

Trong xã hội hiện đại, áp lực công việc và lối sống bận rộn khiến tình trạng ăn uống mất cân đối dinh dưỡng ngày càng gia tăng, gây ảnh hưởng tiêu cực đến sức khỏe cộng đồng. Song song đó, các dòng tủ lạnh thông minh thương mại hiện nay (tiêu biểu như Samsung Family Hub) hoặc các thiết kế nghiên cứu sử dụng máy tính nhúng kết hợp camera nhận diện hình ảnh thường có chi phí đầu tư rất cao, gây rào cản tiếp cận đối với đa số người dùng. Đồng thời, giải pháp xử lý ảnh bên trong tủ lạnh còn gặp các hạn chế kỹ thuật thực tế như thấu kính camera bị bám bẩn, mờ do độ ẩm, góc nhìn bị che khuất khi thực phẩm xếp chồng lên nhau.

Ngược lại, các dòng tủ lạnh truyền thống hoặc tủ lạnh giá rẻ lại hoàn toàn thiếu vắng công cụ hỗ trợ giám sát môi trường bảo quản và quản lý hạn sử dụng thực phẩm, dẫn đến tình trạng lãng phí thức ăn. Bên cạnh đó, các hệ thống gợi ý ẩm thực hiện có thường chỉ giải quyết đơn lẻ một tiêu chí (chỉ tính đến dinh dưỡng, chỉ dựa trên nguyên liệu sẵn có, hoặc chỉ theo sở thích cá nhân) và chủ yếu gợi ý từng món ăn rời rạc thay vì một bữa ăn hoàn chỉnh theo văn hóa ẩm thực Việt Nam. Từ thực tiễn đó, đề tài hướng đến việc biến đổi một tủ lạnh thông thường thành tủ lạnh thông minh với chi phí thấp, hỗ trợ quản lý thực phẩm qua mã QR và tự động đề xuất thực đơn cá nhân hóa.

Mục tiêu và nhiệm vụ nghiên cứu

Văn bản xác định hệ thống mục tiêu cụ thể như sau:

  1. Mục tiêu tổng quát: Thiết kế hoàn chỉnh một hệ thống thông minh có khả năng gợi ý món ăn và bữa ăn phù hợp theo từng cá nhân, đồng thời hỗ trợ người dùng theo dõi các chỉ số nhiệt độ, độ ẩm, phát hiện biến động bất thường và quản lý thực phẩm trong tủ lạnh thông qua ứng dụng di động.
  2. Mục tiêu cụ thể đối với 4 thành phần hệ thống:
    • Node thu thập dữ liệu (Thiết bị biên): Thu thập chính xác nhiệt độ, độ ẩm từ cảm biến; kết nối Wi-Fi qua giao thức cấu hình thông minh; truyền dữ liệu lên máy chủ qua giao thức mạng nhẹ và tối ưu hóa năng lượng qua chế độ ngủ sâu.
    • Hệ thống Server: Kết nối cơ sở dữ liệu để thực thi các tác vụ đọc/ghi; tiếp nhận dữ liệu quan trắc từ thiết bị biên; giao tiếp và xử lý toàn bộ logic nghiệp vụ, tính toán mô hình gợi ý theo yêu cầu của ứng dụng di động.
    • Mô hình gợi ý: Đề xuất các món ăn riêng lẻ và xây dựng các cấu trúc bữa ăn hoàn chỉnh dựa trên 4 yếu tố: nguyên liệu sẵn có trong tủ lạnh, tình trạng bệnh lý của người dùng, mức độ đáp ứng chỉ số dinh dưỡng chuẩn và lịch sử sở thích/đánh giá của người dùng (tránh trùng lặp thực đơn trong vòng 2 ngày gần nhất).
    • Ứng dụng di động (Fridge IT): Cung cấp giao diện trực quan để người dùng cấu hình thiết bị, quét mã QR quản lý thực phẩm xuất/nhập, nhận cảnh báo nhiệt độ và theo dõi gợi ý thực đơn.

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Kiến trúc hệ thống IoT giám sát môi trường tủ lạnh; mô hình toán học hồi quy tuyến tính đa biến ứng dụng trong gợi ý thực đơn dinh dưỡng; phương pháp số hóa thông tin thực phẩm thông qua mã QR.
  • Phạm vi nghiên cứu:
    • Mô hình gợi ý tập trung vào 4 biến số tác động chính: tính sẵn có của nguyên liệu, tương tác bệnh lý, mức độ đáp ứng dinh dưỡng (DRI) và sở thích cá nhân.
    • Về mặt phần cứng, đề tài tập trung vào việc hiện thực chức năng cơ bản trên các module chi phí thấp (ESP8266, DHT22), không đi sâu nghiên cứu độ bền vật liệu công nghiệp hay vòng đời pin dài hạn.
    • Về hạ tầng dịch vụ, hệ thống triển khai trên các nền tảng đám mây gói miễn phí (Render, MongoDB Atlas, Flespi) nhằm phục vụ mục đích nghiên cứu học thuật.
    • Dữ liệu ẩm thực ban đầu tập trung vào các món ăn và nguyên liệu đặc trưng của Việt Nam.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và tiêu chuẩn khoa học

Đề tài tích hợp nền tảng lý thuyết từ khoa học dinh dưỡng, toán học thống kê và kỹ thuật mạng truyền thông:

  • Lý thuyết dinh dưỡng và năng lượng: Hệ thống áp dụng các chỉ số tham chiếu dinh dưỡng DRI (Dietary Reference Intakes) được phát triển bởi Viện Y tế Quốc gia Hoa Kỳ, cùng các chỉ số BMR (Basal Metabolic Rate - Tỷ lệ trao đổi chất cơ bản) và TDEE (Total Daily Energy Expenditure - Tổng năng lượng tiêu thụ hàng ngày). Năng lượng được lượng hóa theo kilocalorie (kcal), trong đó Carbohydrate cung cấp 4 kcal/g, Protein cung cấp 4 kcal/g, Chất béo cung cấp 9 kcal/g, cùng định mức về chất xơ (dietary fiber) và các vi chất.

  • Mô hình Hồi quy tuyến tính đa biến (Multivariate Linear Regression): Được sử dụng để thiết lập hàm mục tiêu tính toán trọng số phù hợp của món ăn và bữa ăn:

    $$Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_n X_n$$

    Trong đó $Y$ là biến phụ thuộc (độ phù hợp tổng thể), $X_i$ là các biến độc lập đại diện cho các yếu tố thành phần, và $\beta_i$ là các hệ số hồi quy thể hiện mức độ ảnh hưởng của từng yếu tố.

  • Kiến trúc truyền thông MQTT: Giao thức chuẩn OASIS hoạt động theo mô hình Xuất bản/Đăng ký (Publish/Subscribe) qua máy chủ trung gian (Broker), tối ưu cho thiết bị IoT với băng thông thấp.

  • Giao thức cấu hình ESP-TOUCH (SmartConfig): Cơ chế truyền thông không dây mã hóa SSID và mật khẩu Wi-Fi vào trường độ dài (Length) của chuỗi gói tin UDP phát từ điện thoại đến Access Point, giúp thiết bị nhúng thu nhận cấu hình mạng mà không cần giao diện bàn phím.

  • Mô hình kiến trúc Client - Server và RESTful API: Trao đổi dữ liệu qua giao thức HTTP/HTTPS sử dụng các phương thức chuẩn (GET, POST, PUT, DELETE) với định dạng dữ liệu JSON.

Phương pháp nghiên cứu và kỹ thuật thực hiện

  • Phương pháp thu thập dữ liệu tự động (Web Scraping): Sử dụng thư viện BeautifulSoup (Python) để phân tích cú pháp mã nguồn HTML/XML từ nền tảng ẩm thực Cooky.vn, tự động bóc tách các trường thông tin: tên món ăn, hình ảnh, thời gian chế biến, định lượng nguyên liệu, phân loại món và công thức nấu.
  • Phương pháp chuẩn hóa và xác minh dữ liệu: Xử lý dữ liệu thô thu thập được từ web thành dạng có cấu trúc, đối soát định lượng dinh dưỡng từ các nguồn công bố chính thống về thực phẩm, xuất ra tệp CSV trước khi nạp vào hệ quản trị cơ sở dữ liệu MongoDB.
  • Phương pháp điều tra khảo sát: Thu thập ý kiến từ người dùng thực tế nhằm đánh giá mức độ ưu tiên của các yếu tố tác động đến quyết định chọn món, làm căn cứ xác lập hệ số trong mô hình hồi quy.
  • Phương pháp thiết kế nhúng và phát triển phần mềm: Lập trình điều khiển vi điều khiển trên nền tảng Arduino/C++, xây dựng backend bằng Flask Framework (Python), và phát triển ứng dụng di động đa nền tảng bằng Flutter (Dart).

Thiết kế và triển khai hệ thống

Hệ thống được tổ chức theo kiến trúc IoT 3 lớp tiêu chuẩn: Lớp thiết bị (Device Layer), Lớp điện toán đám mây (Cloud Layer) và Lớp ứng dụng (Application Layer).

+-----------------------------------------------------------------------+
|                            DEVICE LAYER                               |
|   +-----------------------+           +---------------------------+   |
|   |   Cảm biến DHT22      | --------> |   ESP8266 NodeMCU         |   |
|   |   (Nhiệt độ, Độ ẩm)   | (Chân D4) |   - SmartConfig/EEPROM    |   |
|   +-----------------------+           |   - Deep-sleep (GPIO16)   |   |
|                                       +-------------+-------------+   |
+-----------------------------------------------------|-----------------+
                                                      | MQTT (Flespi)
+-----------------------------------------------------v-----------------+
|                             CLOUD LAYER                               |
|   +---------------------------------------------------------------+   |
|   |                     Flask Server (Render.com)                 |   |
|   |   - REST API Endpoints (/sensorsData, /recommendation,...)    |   |
|   |   - Mô hình tính toán Hồi quy tuyến tính đa biến              |   |
|   +-------------------------------+-------------------------------+   |
|                                   | Mongoose/PyMongo                  |
|   +-------------------------------v-------------------------------+   |
|   |                     MongoDB Database                          |   |
|   |   (SensorsData, Devices, User, Ingredient, Dish, Disease,...) |   |
|   +---------------------------------------------------------------+   |
+-----------------------------------------------------^-----------------+
                                                      | HTTP / JSON
+-----------------------------------------------------|-----------------+
|                          APPLICATION LAYER                            |
|   +---------------------------------------------------------------+   |
|   |                     Ứng dụng di động Fridge IT                |   |
|   |   - Framework Flutter (Dart)                                  |   |
|   |   - Quét mã QR thực phẩm qua Smartphone Camera                |   |
|   |   - Giám sát môi trường & Hiển thị gợi ý thực đơn             |   |
|   +---------------------------------------------------------------+   |
+-----------------------------------------------------------------------+

1. Phân tầng phần cứng và thiết bị biên (Device Layer)

Thiết bị biên sử dụng vi điều khiển ESP8266 NodeMCU (vi xử lý RISC 32-bit, xung nhịp 80–160 MHz, chuẩn Wi-Fi 802.11 b/g/n) kết hợp với cảm biến kỹ thuật số DHT22.

  • Kết nối chân vật lý: Chân VCC của DHT22 nối nguồn 3.3V, GND nối đất, và chân dữ liệu Data nối với GPIO chân D4 của ESP8266. Để thực hiện chu kỳ tự động đánh thức từ chế độ ngủ sâu (Timer Wake-up), chân D0 (GPIO16 - có chức năng WAKE) được đấu nối trực tiếp vào chân RST (Reset).
  • Cơ chế tiết kiệm năng lượng: Sau khi hoàn thành việc đọc cảm biến và gửi dữ liệu lên MQTT Broker, ESP8266 được kích hoạt lệnh ESP.deepSleep(microseconds) để chuyển vào trạng thái Deep-sleep trong chu kỳ định sẵn (5 đến 15 phút), giảm mức tiêu thụ dòng điện từ ~15 mA xuống còn ~20 µA.
  • Quản lý kết nối: Module tích hợp tính năng SmartConfig thông qua thư viện WiFi.beginSmartConfig(). Khi người dùng gạt công tắc chế độ cấu hình sang "ON", thiết bị nhận SSID và mật khẩu qua gói tin UDP từ ứng dụng di động, sau đó lưu các thông số này vào bộ nhớ không bay hơi EEPROM bằng hai hàm EEPROM.write() và EEPROM.read(), giúp duy trì kết nối Wi-Fi tự động sau mỗi lần khởi động lại từ chế độ Deep-sleep mà không cần cấu hình lại.
  • Giao tiếp MQTT: Thiết bị kết nối đến máy chủ Flespi MQTT Broker (flespi.com) thông qua thư viện PubSubClient, thực hiện publish gói tin chứa giá trị nhiệt độ và độ ẩm vào Topic được chỉ định.

2. Thiết kế cơ sở dữ liệu (MongoDB Collections)

Cơ sở dữ liệu NoSQL MongoDB được thiết kế gồm 11 collections có liên kết logic chặt chẽ:

STT Tên Collection Khóa chính / Khóa ngoại Chức năng lưu trữ dữ liệu
1 User _id (PK) Thông tin tài khoản, chiều cao, cân nặng, năm sinh, giới tính, mức vận động, bệnh lý, và các chỉ số dinh dưỡng mục tiêu tính toán (Kcal, Protein, Fat, Carb, Fiber).
2 Devices _id (PK), device_id Định danh module phần cứng tủ lạnh gán với người dùng.
3 SensorsData _id (PK), device_id (FK) Lịch sử nhiệt độ, độ ẩm đo được, mốc thời gian và cờ cảnh báo bất thường (data_normal_temp, data_normal_humi).
4 Ingredient _id (PK) Danh mục nguyên liệu chuẩn, đơn vị tính, hình ảnh và hàm lượng dinh dưỡng trên 100g (Kcal, Protein, Fat, Carb, Fiber).
5 IngredientInsideFridge _id (PK), user_id (FK), ingredient_id (FK) Số lượng, nhà sản xuất, ngày sản xuất (PRD) và hạn sử dụng (EXP) của nguyên liệu đang có trong tủ lạnh.
6 DishType _id (PK) Phân loại món ăn (món chính, món phụ, món canh, món ăn sáng, thức uống).
7 Dish _id (PK), dishtype_id (FK) Tên món, hình ảnh, thời gian nấu, công thức nấu và danh sách mảng nguyên liệu cấu thành (dish_ingredients).
8 Disease _id (PK) Danh mục bệnh lý, mảng liên kết các món ăn có lợi (disease_healthy_dish) và có hại (disease_unhealthy_dish).
9 Rating _id (PK), user_id (FK), dish_id (FK) Điểm đánh giá mức độ yêu thích của người dùng cho từng món ăn.
10 History _id (PK), user_id (FK), dish_id (FK) Nhật ký các món ăn đã được người dùng thực hiện theo thời gian.
11 RecommendationDish / RecommendationMeal _id (PK), user_id (FK) Danh sách món ăn/bữa ăn được gợi ý kèm trọng số phù hợp, thông tin dinh dưỡng tổng và cảnh báo món ăn không phù hợp với bệnh lý.

3. Phân tầng máy chủ và xử lý nghiệp vụ (Cloud Layer)

Server được viết bằng Python trên nền web framework Flask, tuân thủ mô hình MVC và triển khai trên dịch vụ đám mây Render.com.

  • Hệ thống Route/Endpoint chính:
    • /userData: Quản lý thông tin cá nhân, cập nhật thể trạng và tính toán nhu cầu năng lượng DRI.
    • /sensorsData: Tiếp nhận và truy vấn lịch sử quan trắc từ MQTT Broker, kiểm tra ngưỡng cảnh báo nhiệt độ.
    • /foodData & /foodManagement: Xử lý thêm, sửa, xóa nguyên liệu thông qua dữ liệu quét mã QR bằng các phương thức GET, POST, PUT, DELETE.
    • /rating & /history: Ghi nhận đánh giá món ăn và lưu vết lịch sử nấu nướng.
    • /recommendation: Thực thi thuật toán hồi quy tuyến tính đa biến để tính toán danh sách món ăn và cấu trúc bữa ăn phù hợp.

4. Phân tầng ứng dụng người dùng (Application Layer)

Ứng dụng di động "Fridge IT" được phát triển bằng framework Flutter (ngôn ngữ Dart):

  • Tích hợp camera điện thoại làm đầu đọc mã QR, giải mã nhanh chuỗi thông tin định dạng chuẩn của nguyên liệu (Tên, Nhà sản xuất, Ngày sản xuất, Hạn sử dụng, Khối lượng).
  • Giao diện trực quan thiết kế trên Figma với màu sắc chủ đạo rõ ràng, hiển thị biểu đồ nhiệt độ - độ ẩm thời gian thực, danh sách thực phẩm cảnh báo cận hạn dùng (EXP), và thực đơn gợi ý được xếp hạng theo thứ tự độ phù hợp giảm dần.

Nội dung chính theo từng chương

Chương 1: Tổng quan đề tài

Chương 1 phân tích bức tranh tổng thể về nhu cầu quản lý dinh dưỡng cá nhân và thực trạng lãng phí thực phẩm trong các hộ gia đình. Tác giả tổng hợp, phân tích ưu nhược điểm của các công trình đi trước:

  • Thiết kế của Wu Hsin-Han và Chuang Yung-Ting sử dụng Raspberry Pi và Camera nhận diện hình ảnh tuy trực quan nhưng chi phí phần cứng cao, dễ lỗi nhận diện khi góc nhìn bị khuất.
  • Các hệ thống của G. Geleijnse, M. Rokon, và J. Kalra chỉ tập trung vào một khía cạnh riêng rẽ (lịch sử dinh dưỡng, tính khả dụng nguyên liệu, hoặc định mức calo).
  • Đề tài của Nguyễn Hoàng Hiệp Vũ và Văn Dũng đã ứng dụng mã QR và hồi quy tuyến tính nhưng chỉ gợi ý món đơn lẻ theo hạn dùng và sở thích, chưa tính toán tổng hòa dinh dưỡng, bệnh lý và chưa xây dựng được cơ cấu bữa ăn hoàn chỉnh.

Từ đó, chương 1 xác lập tính cấp thiết của việc phát triển một giải pháp tích hợp phần cứng giá rẻ, quản lý qua mã QR và mô hình gợi ý đa yếu tố tập trung vào ẩm thực Việt Nam.

Chương 2: Cơ sở lý thuyết

Chương 2 trình bày chi tiết toàn bộ các khối kiến thức kỹ thuật và y sinh học:

  • Thông số phần cứng: Phân tích chi tiết vi điều khiển ESP8266 và cảm biến DHT22 (dải đo -40°C đến 80°C, sai số ±0.5°C; độ ẩm 0% đến 100%, sai số ±1%).
  • So sánh chế độ tiêu thụ năng lượng: Phân tích chi tiết ba chế độ ngủ của ESP8266 nhằm làm rõ lý do lựa chọn Deep-sleep cho thiết bị đo môi trường định kỳ.
Thông số / Trạng thái Chế độ Modem-sleep Chế độ Light-sleep Chế độ Deep-sleep
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 (RTC) Bật Bật Bật
Bộ xử lý trung tâm (CPU) Bật Tạm dừng (Pending) Tắt
Dòng điện tiêu thụ tiêu chuẩn 15 mA 0.4 mA ~ 20 µA
Dòng điện trung bình (DTIM=1) 16.8 mA - -
Dòng điện trung bình (DTIM=3) 15.9 mA - -
Dòng điện trung bình (DTIM=10) 15.55 mA - -
  • Nền tảng truyền thông và lưu trữ: Nguyên lý giao thức ESP-TOUCH qua đóng gói UDP; kiến trúc Publish/Subscribe của MQTT qua Broker; cấu trúc phi quan hệ JSON của MongoDB; các phương thức của giao thức HTTP/HTTPS (GET, POST, PUT, DELETE); kiến trúc MVC của Flask; framework Flutter.
  • Nền tảng tính toán và dinh dưỡng: Cơ sở toán học của hồi quy tuyến tính đa biến; phân loại Macro-nutrient (Carb, Protein, Fat) và Micro-nutrient (Vitamin, khoáng chất); vai trò của chất xơ và định mức khuyến nghị theo chuẩn DRI.

Chương 3: Giải pháp đề xuất

Chương 3 là phần trọng tâm về mặt thiết kế kỹ thuật của khóa luận:

  • Hiện thực thiết bị biên: Sơ đồ kết nối phần cứng ESP8266 - DHT22, mạch nối tắt GPIO16 vào chân Reset, quy trình lưu trữ chuỗi cấu hình mạng Wi-Fi vào ô nhớ EEPROM và kết nối đến Flespi MQTT Broker.
  • Xây dựng cơ sở dữ liệu và Web Scraping: Sơ đồ liên kết dữ liệu 11 collections; quy trình ứng dụng thư viện BeautifulSoup để bóc tách dữ liệu từ trang Cooky.vn, sau đó làm sạch và chuẩn hóa trường dữ liệu dinh dưỡng tương ứng.
  • Thiết kế phần mềm máy chủ và ứng dụng: Thiết kế sơ đồ phân luồng các Route trên Flask Server; quy trình phát triển ứng dụng di động gồm các use-case: quét mã QR nhập/xuất kho thực phẩm, truy vấn nguyên liệu tồn kho, nhận cảnh báo biến động nhiệt độ/độ ẩm, chấm điểm món ăn và hiển thị danh sách đề xuất.
  • Xây dựng mô hình gợi ý:
    • Mô hình gợi ý món ăn đơn lẻ dựa trên hàm hồi quy kết hợp: tính sẵn có của nguyên liệu trong tủ lạnh, độ an toàn đối với tiền sử bệnh lý, và điểm đánh giá sở thích của người dùng.
    • Mô hình gợi ý bữa ăn hoàn chỉnh: Tổ hợp các món ăn theo cơ cấu bữa ăn truyền thống (món chính, món phụ, món canh), tính toán tổng năng lượng cung cấp so với mục tiêu DRI, loại trừ các món đã thực hiện trong 2 ngày gần nhất, và gắn nhãn cảnh báo nếu thành phần bữa ăn chứa món chống chỉ định với bệnh lý của người dùng.

Chương 4: Thực nghiệm và đánh giá

Chương 4 công bố toàn bộ kết quả triển khai thực tế trên từng cấu phần:

  • Thực nghiệm thiết bị biên: ESP8266 cấu hình Wi-Fi thành công qua ứng dụng bằng giao thức SmartConfig; đọc chính xác dữ liệu từ DHT22; publish định kỳ dữ liệu lên Flespi Broker; chu kỳ Deep-sleep 5 phút/lần hoạt động chính xác theo cơ chế ngắt phần cứng chân GPIO16-RST.
  • Thực nghiệm cơ sở dữ liệu và Server: Thu thập và lưu trữ thành công dữ liệu nguyên liệu và món ăn trên MongoDB; các API Endpoint trên Flask Server phản hồi chính xác các truy vấn GET, POST, PUT, DELETE từ ứng dụng di động và hiển thị nhật ký truy cập (log) ổn định.
  • Thực nghiệm mô hình gợi ý: Xác định các hệ số hồi quy thông qua bảng khảo sát người dùng về mức độ ưu tiên của các yếu tố ảnh hưởng đến bữa ăn; xây dựng trang web thử nghiệm độc lập để người dùng đánh giá thuật toán; kết quả kiểm thử cho thấy danh sách món ăn và bữa ăn đề xuất bám sát lượng nguyên liệu thực tế và đáp ứng giới hạn dinh dưỡng cá nhân.
  • Thực nghiệm ứng dụng "Fridge IT": Kiểm thử thành công các chức năng quét mã QR thêm/bớt nguyên liệu; hiển thị danh sách thực phẩm kèm hạn sử dụng; biểu đồ nhiệt độ - độ ẩm cập nhật liên tục; giao diện hiển thị bữa ăn chi tiết kèm lượng calo và gợi ý công thức chế biến.

Chương 5: Kết luận và hướng phát triển

Đánh giá tổng kết các kết quả đã đạt được, phân tích thẳng thắn các ưu nhược điểm, rào cản kỹ thuật gặp phải trong quá trình thực hiện và định hình lộ trình phát triển hệ thống trong tương lai.


Kết quả và đóng góp

Kết quả kỹ thuật đạt được

  1. Phần cứng giám sát IoT chi phí thấp: Tích hợp thành công module ESP8266 và cảm biến DHT22, cấu hình mạng không dây qua ESP-TOUCH, duy trì thông tin mạng bằng EEPROM, truyền thông dữ liệu qua Flespi MQTT Broker và hiện thực chế độ Deep-sleep tiết kiệm năng lượng (~20 µA).
  2. Cơ sở dữ liệu dinh dưỡng và món ăn có cấu trúc: Xây dựng hệ thống 11 collections trên MongoDB, tích hợp công cụ Web Scraping tự động thu thập công thức món ăn từ Cooky.vn và chuẩn hóa bảng thành phần dinh dưỡng chuẩn (Kcal, Protein, Carb, Fat, Fiber) trên 100g nguyên liệu.
  3. Mô hình gợi ý thực đơn đa biến: Ứng dụng thành công phương pháp hồi quy tuyến tính đa biến kết hợp đồng thời 4 yếu tố then chốt (nguyên liệu sẵn có, bệnh lý, định mức dinh dưỡng DRI và sở thích người dùng), đề xuất được cả món ăn riêng lẻ lẫn bữa ăn hoàn chỉnh, có cơ chế tránh lặp lại món ăn trong 2 ngày gần nhất.
  4. Ứng dụng di động quản lý hoàn chỉnh: Phát triển thành công ứng dụng "Fridge IT" bằng Flutter, số hóa thao tác quản lý thực phẩm qua mã QR và cung cấp giao diện theo dõi sức khỏe, cảnh báo môi trường tủ lạnh.

Bảng đối chiếu đóng góp so với các nghiên cứu trước

Tiêu chí so sánh Nghiên cứu Wu & Chuang [1] Nghiên cứu G. Geleijnse [3] / M. Rokon [4] Nghiên cứu Nguyễn H. H. Vũ & V. Dũng [7] Đề tài này (Khóa luận UIT 2023)
Phương thức quản lý thực phẩm Nhận diện qua Camera / Raspberry Pi Nhập liệu thủ công Quét mã QR Quét mã QR qua Camera điện thoại
Giám sát môi trường tủ lạnh Không tích hợp Không tích hợp Không tích hợp Cảm biến DHT22 + ESP8266 (MQTT, Deep-sleep)
Các yếu tố trong mô hình gợi ý Chỉ kiểm tra tồn kho Đơn yếu tố (hoặc chỉ dinh dưỡng, hoặc chỉ nguyên liệu) Hạn dùng, nguyên liệu, sở thích Tích hợp 4 yếu tố: Tồn kho, Bệnh lý, Dinh dưỡng DRI, Sở thích
Phạm vi gợi ý thực đơn Không có gợi ý Món ăn đơn lẻ Món ăn đơn lẻ Gợi ý món ăn đơn lẻ VÀ Bữa ăn hoàn chỉnh
Cơ chế tránh lặp thực đơn Không có Không có Không có Tự động loại trừ món đã nấu trong 2 ngày gần nhất

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài (Theo công bố của tác giả)

  • Giả định về mã hóa thực phẩm: Hệ thống giả định tất cả thực phẩm đều đã được số hóa và gắn mã QR chứa đầy đủ thông tin chuẩn (nhà sản xuất, ngày sản xuất, hạn sử dụng, khối lượng), điều này chưa hoàn toàn phổ biến ở mọi loại thực phẩm tươi sống trên thị trường tự do.
  • Quy mô cơ sở dữ liệu: Số lượng dữ liệu món ăn và thực phẩm được cào và chuẩn hóa mới dừng lại ở mức cơ bản để phục vụ thực nghiệm và mô phỏng hệ thống học thuật, chưa bao phủ toàn diện kho tàng ẩm thực.
  • Hạ tầng triển khai: Các dịch vụ đám mây (Render, MongoDB, Flespi) đều sử dụng các gói dịch vụ miễn phí nên tốc độ xử lý, tính ổn định và mức độ bảo mật chưa đạt tiêu chuẩn thương mại.
  • Tối ưu hóa phần cứng: Mạch phần cứng được thiết kế dạng module thí nghiệm, chưa nghiên cứu sâu về độ bền linh kiện trong môi trường nhiệt độ thấp và độ ẩm cao kéo dài của tủ lạnh, cũng như chưa kiểm chứng tuổi thọ nguồn pin thực tế.

Hướng phát triển tiếp theo

  • Mở rộng cơ sở dữ liệu ẩm thực phong phú hơn, bổ sung các nền văn hóa ẩm thực quốc tế ngoài các món ăn Việt Nam.
  • Nâng cấp mô hình gợi ý bằng cách ứng dụng các thuật toán máy học (Machine Learning) và trí tuệ nhân tạo (AI) nâng cao để tự động học sâu hành vi ăn uống và thói quen tiêu dùng của người dùng.
  • Hoàn thiện phần cứng theo tiêu chuẩn công nghiệp: thiết kế bo mạch in (PCB) nhỏ gọn, tối ưu hóa mạch nguồn cho pin dung lượng cao, nâng cao độ bền chống ẩm cho cảm biến.
  • Phát triển tính năng liên kết thương mại điện tử: tự động tạo danh sách đi chợ và gợi ý đặt mua nguyên liệu còn thiếu từ các siêu thị trực tuyến khi tủ lạnh hết thực phẩm.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo chuyên môn cao đối với sinh viên, học viên và kỹ sư thuộc các chuyên ngành Kỹ thuật Máy tính, Khoa học Máy tính, Công nghệ Thông tin và Kỹ thuật Hệ thống IoT:

  • Tham khảo thiết kế hệ thống IoT hoàn chỉnh: Cung cấp tài liệu chi tiết về quy trình phối hợp giữa vi điều khiển ESP8266 (chế độ SmartConfig, EEPROM, Deep-sleep timer) với giao thức MQTT và dịch vụ Flespi.
  • Tham khảo xây dựng Backend RESTful API: Cung cấp giải pháp phân chia Route và xử lý logic kết nối cơ sở dữ liệu NoSQL MongoDB bằng Python Flask.
  • Tham khảo thuật toán gợi ý dinh dưỡng: Cung cấp phương pháp tích hợp tiêu chuẩn y tế DRI/BMR/TDEE vào hàm hồi quy tuyến tính đa biến để giải quyết bài toán gợi ý thực đơn theo bệnh lý và sở thích.
  • Tham khảo phát triển ứng dụng di động: Cung cấp mô hình luồng hoạt động chuẩn cho các ứng dụng Flutter giao tiếp với phần cứng IoT và hệ thống Server qua mã QR và HTTP API.

Câu hỏi thường gặp

1. ESP8266 làm thế nào để tiết kiệm năng lượng và tự động kết nối lại Wi-Fi sau khi thức dậy từ chế độ Deep-sleep?
Để tiết kiệm năng lượng, ESP8266 được đưa vào chế độ Deep-sleep (tiêu thụ dòng điện giảm xuống chỉ còn khoảng ~20 µA). Phần cứng được đấu nối chân GPIO16 (D0) với chân RST để kích hoạt tín hiệu mức LOW đánh thức vi điều khiển sau khoảng thời gian định sẵn. Nhờ cấu hình Wi-Fi trước đó đã được lưu vào bộ nhớ không bay hơi EEPROM, ESP8266 khi khởi động lại chỉ cần đọc trực tiếp SSID và mật khẩu từ EEPROM để kết nối mạng ngay lập tức mà không cần người dùng cấu hình lại qua ESP-TOUCH.

2. Mô hình gợi ý bữa ăn trong khóa luận dựa trên những yếu tố cốt lõi nào?
Mô hình tính toán trọng số gợi ý dựa trên 4 yếu tố chính thông qua công thức hồi quy tuyến tính đa biến: (1) Tính sẵn có của nguyên liệu trong tủ lạnh; (2) Mức độ an toàn/ảnh hưởng của món ăn đối với bệnh lý người dùng; (3) Mức độ đáp ứng chuẩn dinh dưỡng khuyến nghị DRI (tính toán dựa trên calo, protein, carb, fat, fiber theo thể trạng); (4) Điểm đánh giá sở thích của người dùng, kết hợp loại trừ các món đã nấu trong 2 ngày gần nhất.

3. Vì sao nhóm tác giả lựa chọn giải pháp quét mã QR thay vì dùng camera nhận diện hình ảnh như một số hệ thống tủ lạnh thông minh khác?
Việc dùng camera gắn trong tủ lạnh (như Samsung Family Hub hay hệ thống nhúng Raspberry Pi) có chi phí phần cứng rất cao, ống kính dễ bị bám bẩn hoặc đọng sương do độ ẩm, và giải thuật xử lý ảnh dễ sai sót khi thực phẩm bị che khuất góc nhìn. Nhóm tác giả chọn giải pháp quét mã QR qua camera điện thoại vì tận dụng được thiết bị sẵn có, tiết kiệm chi phí, đồng thời thu thập chính xác tuyệt đối các dữ liệu quan trọng như nhà sản xuất, ngày sản xuất và hạn sử dụng (EXP).

4. Dữ liệu công thức món ăn và dinh dưỡng trong hệ thống được thu thập bằng cách nào?
Dữ liệu công thức món ăn (tên món, nguyên liệu, quy trình chế biến, hình ảnh, phân loại) được trích xuất tự động từ trang web Cooky.vn bằng kỹ thuật Web Scraping thông qua thư viện BeautifulSoup (Python). Các chỉ số dinh dưỡng (năng lượng kcal, carbohydrate, protein, chất béo, chất xơ) trên 100g thực phẩm được tổng hợp và chuẩn hóa từ các bảng dữ liệu thực phẩm chính thống trước khi nạp vào các collection trên MongoDB.

5. Ứng dụng di động "Fridge IT" hỗ trợ những tính năng quản lý nào cho người dùng?
Ứng dụng "Fridge IT" (viết bằng Flutter) cung cấp các chức năng: thiết lập thông tin sức khỏe cá nhân; cấu hình kết nối Wi-Fi cho tủ lạnh qua SmartConfig; quét mã QR để nhập/xuất kho nguyên liệu; giám sát biểu đồ nhiệt độ - độ ẩm thời gian thực và nhận cảnh báo bất thường; theo dõi danh sách thực phẩm sắp hết hạn; xem danh sách món ăn/bữa ăn được gợi ý theo thứ tự ưu tiên; và chấm điểm đánh giá món ăn để tối ưu hóa dữ liệu lịch sử nấu nướng.


Kết luận

Khóa luận tốt nghiệp của sinh viên Trương Bảo Nguyên và Trịnh Trần Trung đã giải quyết trọn vẹn bài toán xây dựng một hệ thống tủ lạnh thông minh chi phí thấp phục vụ chăm sóc dinh dưỡng cá nhân. Bằng cách kết hợp linh hoạt phần cứng IoT (ESP8266, DHT22), nền tảng đám mây (Flask, MongoDB, MQTT) và ứng dụng di động Flutter, nhóm tác giả đã hiện thực hóa thành công giải pháp quản lý thực phẩm bằng mã QR và mô hình gợi ý thực đơn đa biến dựa trên tiêu chuẩn dinh dưỡng DRI cùng đặc trưng ẩm thực Việt Nam. Đây là công trình kỹ thuật có tính ứng dụng thực tiễn cao, đóng góp một giải pháp khả thi trong việc nâng cao chất lượng bữa ăn gia đình và giảm thiểu lãng phí thực phẩm.