Giới thiệu dự án

Theo thống kê từ Tổ chức Y tế Thế giới (WHO), có tới 50% bệnh nhân mắc các bệnh mãn tính (như cao huyết áp, tiểu đường, tim mạch) không tuân thủ đúng phác đồ điều trị bằng thuốc. Tình trạng quên liều, uống sai giờ hoặc nhầm lẫn giữa các loại thuốc dẫn đến hơn 125.000 ca tử vong có thể phòng ngừa mỗi năm và tạo ra gánh nặng hàng trăm tỷ USD cho hệ thống y tế toàn cầu. Tại Việt Nam, quá tải bệnh viện cùng nhịp sống bận rộn khiến việc quản lý dùng thuốc của người cao tuổi và bệnh nhân điều trị ngoại trú gặp nhiều thách thức nghiêm trọng.

+-------------------------------------------------------------------------+
|                              PAIN POINTS                                |
|  - Bệnh nhân hay quên cữ thuốc, nhầm lẫn thời gian giữa các loại        |
|  - Người thân/bác sĩ không có công cụ giám sát từ xa theo thời gian thực|
|  - Hộp thuốc cơ bản thiếu khả năng đồng bộ đám mây và xử lý mất mạng   |
+-------------------------------------------------------------------------+

Vấn đề cốt lõi đặt ra là sự thiếu hụt một thiết bị y tế cá nhân có chi phí hợp lý, vừa hỗ trợ tương tác trực quan tại chỗ cho người lớn tuổi, vừa tích hợp khả năng đồng bộ dữ liệu thời gian thực lên ứng dụng di động cho người chăm sóc. Đề tài "Thiết kế và thi công mô hình hộp thuốc hỗ trợ người bệnh" được nghiên cứu và thực hiện nhằm giải quyết bài toán này thông qua hệ thống nhúng lai kết hợp IoT.

Mục tiêu đề tài

  1. Thiết kế phần cứng hệ thống nhúng: Tích hợp vi điều khiển Arduino Mega 2560, module Wi-Fi ESP8266 NodeMCU, màn hình cảm ứng LCD-TFT 3.2 inch, module thời gian thực RTC DS1307 và 8 module cảm biến từ A3144.
  2. Xây dựng kiến trúc đồng bộ dữ liệu 2 chiều: Kết nối hệ thống với nền tảng đám mây Google Firebase Realtime Database và ứng dụng di động Android (phát triển bằng Android Studio).
  3. Phát triển thuật toán phân bổ và nhắc nhở đa chế độ: Tự động hóa lịch uống thuốc theo 2 cơ chế: Basic (uống 1, 2 hoặc 3 lần/ngày với thuật toán cộng ngày lũy tiến) và Advanced (tùy biến lịch độc lập cho từng ngăn thuốc).
  4. Đảm bảo tính sẵn sàng cao (High Availability): Tích hợp bộ nhớ ngoài EEPROM AT24C256/AT24C02 và khối nguồn dự phòng chuyển mạch tự động với pin Li-ion 18650 (2S), duy trì hoạt động ổn định khi mất điện hoặc mất kết nối Wi-Fi.

Phạm vi và giới hạn đề tài

  • Số lượng ngăn chứa: 8 hộp thuốc nhỏ độc lập, tích hợp nam châm vĩnh cửu kích hoạt cảm biến Hall.
  • Kích thước tổng thể: $23 \times 12 \times 4\text{ cm}$, tối ưu hóa không gian sử dụng tại gia đình hoặc mang theo khi di chuyển.
  • Màn hình giao tiếp: LCD-TFT cảm ứng điện trở 3.2 inch, độ phân giải $320 \times 240\text{ pixels}$.
  • Hệ điều hành ứng dụng: Android (tương thích từ Android 8.0 trở lên).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

+-------------------------------------------------------------------------------+
|                             SO SÁNH GIẢI PHÁP                                 |
+----------------------+--------------------+-------------------+---------------+
| Tiêu chí             | Đồ án ĐH SPKT 2018 | Đồ án ĐH SPKT 2020| Đề tài 2023   |
|                      | (Lê Hồ Quang)      | (Đặng Đức Mạnh)   | (Đề xuất)     |
+----------------------+--------------------+-------------------+---------------+
| Giao diện tại chỗ    | Nút nhấn + LCD 16x2| Nút nhấn + LCD    | TFT Touch 3.2"|
| Cơ chế nhận diện hộp | Cảm biến quang     | Nút gạt cơ học    | Hall từ A3144 |
| Lưu trữ ngoại tuyến  | Không hỗ trợ       | Không hỗ trợ      | EEPROM I2C    |
| Thuật toán nhắc nhở  | Cố định 1 mốc      | Cố định 1 mốc     | Basic/Advanced|
| Nguồn dự phòng       | Không tích hợp     | Pin đơn thô sơ    | Mạch BMS 2S   |
+----------------------+--------------------+-------------------+---------------+
  • Yêu cầu theo mô hình MoSCoW:
    • Must Have: Báo thức bằng LED + Buzzer ($\ge 80\text{ dB}$); cảm biến nhận diện mở hộp; đồng bộ đám mây Firebase; giao diện cài đặt trên màn hình cảm ứng TFT.
    • Should Have: Ứng dụng Android giám sát từ xa; lưu trữ EEPROM khi ngắt kết nối; cảnh báo trễ 3 cấp độ (+5, +15, +30 phút).
    • Could Have: Tính toán thời lượng pin tiêu thụ; tự động xóa lịch sau khi hoàn thành chu kỳ uống.
    • Won't Have (Giai đoạn này): Nhận diện khuôn mặt người bệnh; module 4G/LTE độc lập.

Thiết kế hệ thống

Kiến trúc phần cứng và luồng dữ liệu của hệ thống được tổ chức theo cấu trúc phân tầng, phân tách rõ ràng giữa tầng thu thập/xử lý cục bộ và tầng truyền thông đám mây:

graph TD
    A[Màn hình LCD-TFT 3.2''] <-->|SPI / 8-bit Parallel| B[MCU Arduino Mega 2560]
    C[Khối 8 Cảm biến Hall A3144] -->|Analog/Digital A0-A7| B
    D[Module RTC DS1307] <-->|I2C SDA/SCL| B
    B -->|Chân 39-53, 18| E[Khối Cảnh Báo: 8 LED + Buzzer]
    B <-->|UART Chân 14-TX3, 15-RX3| F[Module Wi-Fi ESP8266]
    F <-->|I2C D1, D2| G[Module EEPROM AT24C256]
    F <-->|Wi-Fi 2.4GHz / JSON| H[(Firebase Realtime Database)]
    H <-->|HTTPS REST/WebSocket| I[Ứng dụng Android Studio]
    J[Khối Nguồn: Adapter 8.4V + BMS 2S + LM2596] -->|5V DC| B

Công nghệ và linh kiện sử dụng

  • Vi xử lý trung tâm: ATmega2560 (Arduino Mega 2560), xung nhịp $16\text{ MHz}$, $256\text{ KB}$ Flash, $8\text{ KB}$ SRAM, 54 chân I/O số, 16 kênh ADC.
  • Vi điều khiển truyền thông: ESP8266 NodeMCU (ESP-12E), bộ nhớ Flash $4\text{ MB}$, kết nối Wi-Fi chuẩn $802.11\text{ b/g/n}$ ($2.4\text{ GHz}$).
  • Hiển thị & Cảm ứng: Màn hình TFT 3.2 inch, IC điều khiển ILI9341, $320 \times 240\text{ RGB}$, giao thức điều khiển song song kết hợp chân cảm ứng SPI.
  • Cảm biến vị trí: 8 cảm biến hiệu ứng Hall A3144, tích hợp IC so sánh LM393, phát hiện từ trường nam châm vĩnh cửu gắn tại đáy từng ngăn thuốc.
  • Bộ nhớ không biến tính: Module EEPROM AT24C256/AT24C02 giao tiếp chuẩn $\text{I}^2\text{C}$ (tốc độ $100\text{ kHz}/400\text{ kHz}$).
  • Định thời gian thực: Module TinyRTC DS1307 kèm thạch anh $32.768\text{ kHz}$ và pin nuôi CMOS CR2032.
  • Quản lý nguồn: Mạch hạ áp Buck DC-DC LM2596 ($5\text{V} - 3\text{A}$), mạch sạc bảo vệ pin HX-2S-D20 ($8.4\text{V} - 20\text{A}$) và 2 cell pin Li-ion 18650 ($3.7\text{V} - 2600\text{ mAh}$).

Tính toán dòng điện và thiết kế khối nguồn

Tổng dòng điện định mức tối đa của hệ thống được tính toán chi tiết:

$$I_{\text{total}} = I_{\text{Mega}} + I_{\text{ESP8266}} + I_{\text{TFT}} + 8 \cdot I_{\text{Hall}} + I_{\text{RTC}} + I_{\text{EEPROM}} + 8 \cdot I_{\text{LED}} + I_{\text{Buzzer}}$$

$$I_{\text{total}} = 200 + 170 + 150 + (8 \times 25) + 1.5 + 5 + (8 \times 20) + 20 = 906.5\text{ mA}$$

Công suất tiêu thụ cực đại của hệ thống:

$$P_{\text{load}} = U \times I_{\text{total}} = 5\text{ V} \times 0.9065\text{ A} = 4.5325\text{ W} = 4532.5\text{ mW}$$

Thời gian vận hành liên tục bằng nguồn pin dự phòng 2S ($V_{\text{pin}} = 7.4\text{ V}$, $A_{\text{pin}} = 2600\text{ mAh}$, hệ số suy hao hiệu dụng $\eta = 0.7$):

$$t = \frac{A_{\text{pin}} \times V_{\text{pin}} \times \eta}{P_{\text{load}}} = \frac{2.6\text{ Ah} \times 7.4\text{ V} \times 0.7}{4.5325\text{ W}} \approx 2.97\text{ giờ}$$

Tính toán điện trở hạn dòng cho LED báo hiệu (áp dụng định luật Kirchhoff 2 với $V_{CC} = 5\text{V}$, $V_{LED} = 2\text{V}$, $I_{LED} = 20\text{mA}$):

$$R = \frac{V_{CC} - V_{LED}}{I_{LED}} = \frac{5 - 2}{0.02} = 150\ \Omega \quad \longrightarrow \quad \text{Lựa chọn } R = 220\ \Omega \text{ (đảm bảo độ bền LED)}$$

Cấu trúc cơ sở dữ liệu Firebase Realtime Database

{
  "PillBox_Config": {
    "Box1": {
      "Hour": 8,
      "Minute": 0,
      "Day": 15,
      "Month": 7,
      "Year": 2023,
      "Mode": "BASIC",
      "Status": 0,
      "LastTaken": "08:02:15 15/07/2023"
    },
    "System_Status": {
      "PowerMode": "AC",
      "BatteryLevel": 98,
      "LastSync": "1689408000"
    }
  }
}

Phương pháp nghiên cứu và phát triển

Dự án áp dụng mô hình phát triển phần cứng - phần mềm lặp (Iterative Embedded Engineering) trong 15 tuần:

  • Tuần 1 - 3: Khảo sát linh kiện, tính toán công suất, phân tích thông số kỹ thuật cảm biến từ A3144 và IC DS1307.
  • Tuần 4 - 6: Lập trình driver ngoại vi trên Arduino IDE; xây dựng GUI trên màn hình TFT ILI9341 bằng thư viện đồ họa.
  • Tuần 7 - 9: Lập trình ứng dụng Android Studio (Java/XML); cấu trúc API REST/WebSocket với Firebase; truyền nhận UART giữa Mega 2560 và ESP8266.
  • Tuần 10 - 12: Thiết kế sơ đồ nguyên lý và layout mạch in PCB trên EasyEDA; gia công khung vỏ bằng nhựa composite cắt CNC/in 3D.
  • Tuần 13 - 15: Kiểm thử tích hợp toàn diện, đo đạc độ trễ mạng, hiệu chỉnh độ nhạy cảm biến Hall và hoàn thiện báo cáo.

Implementation và kết quả

Quy trình phát triển và thuật toán cốt lõi

Thuật toán kiểm tra lịch và xử lý trễ giờ uống thuốc

Hệ thống so sánh liên tục dữ liệu từ module RTC DS1307 với các mốc thời gian lưu trong EEPROM. Khi trùng khớp, còi Buzzer và LED tương ứng tại ngăn thuốc sẽ kích hoạt theo chu kỳ cảnh báo phân tầng:

// Logic xu ly canh bao va kiem tra trang thai hop thuoc
void kiemTraUongThuoc(int boxIndex, int setHour, int setMinute) {
    DateTime now = rtc.now();
    int currentTotalMin = now.hour() * 60 + now.minute();
    int setTotalMin = setHour * 60 + setMinute;
    int diff = currentTotalMin - setTotalMin;
    
    int hallVal = analogRead(A0 + boxIndex);
    bool isBoxRemoved = (hallVal > HALL_THRESHOLD); // Status_hall = 1 khi nhac hop
    
    if (diff >= 0 && diff <= 60) {
        if (!isTaken[boxIndex]) {
            if (diff == 0 || diff == 5 || diff == 15 || diff == 30) {
                digitalWrite(LED_PIN[boxIndex], HIGH);
                tone(BUZZER_PIN, 2000, 500); // Keu 2kHz
            }
            if (isBoxRemoved) {
                // Nguoi dung da lay thuoc
                while(analogRead(A0 + boxIndex) > HALL_THRESHOLD) {
                    delay(100); // Cho den khi dat lai hop vao vi tri
                }
                isTaken[boxIndex] = true;
                digitalWrite(LED_PIN[boxIndex], LOW);
                noTone(BUZZER_PIN);
                syncFirebaseStatus(boxIndex, 1); // Cap nhat da uong
            }
        }
    } else if (diff > 60 && !isTaken[boxIndex]) {
        // Qua 60 phut: Danh dau bo lo (Missed Dose)
        digitalWrite(LED_PIN[boxIndex], LOW);
        noTone(BUZZER_PIN);
        syncFirebaseStatus(boxIndex, -1);
    }
}

Thuật toán phân bổ tự động chế độ Basic

Khi cấu hình $N$ hộp thuốc ở chế độ Basic với thời điểm bắt đầu $(H_0, M_0, D_0, Mth_0, Y_0)$, hệ thống tự động gán mốc thời gian cho các hộp tiếp theo theo quy luật tịnh tiến ngày:

$$T_{\text{box}(i)} = \text{DateAdd}(D_0, i - 1) \quad \text{với } i \in [1, N]$$

// Logic tich hop tren Android Studio (Java) cho che do Basic
public void calculateBasicSchedule(int startBox, int totalBoxes, int hour, int minute) {
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, hour);
    calendar.set(Calendar.MINUTE, minute);
    
    for (int i = 0; i < totalBoxes; i++) {
        int currentBox = startBox + i;
        if (currentBox <= 8) {
            String dateStr = new SimpleDateFormat("dd/MM/yyyy").format(calendar.getTime());
            mDatabase.child("PillBox_Config").child("Box" + currentBox).child("Hour").setValue(hour);
            mDatabase.child("PillBox_Config").child("Box" + currentBox).child("Minute").setValue(minute);
            mDatabase.child("PillBox_Config").child("Box" + currentBox).child("Date").setValue(dateStr);
            calendar.add(Calendar.DAY_OF_MONTH, 1); // Cong 1 ngay cho hop tiep theo
        }
    }
}

Kiểm thử và đánh giá hiệu năng (Testing & Validation)

+-----------------------------------------------------------------------------------+
|                         KẾT QUẢ THỰC NGHIỆM ĐO ĐẠC                                |
+------------------------------+---------------+-------------------+----------------+
| Bài kiểm tra (Scenario)      | Số mẫu thử    | Kết quả ghi nhận  | Đánh giá       |
+------------------------------+---------------+-------------------+----------------+
| Độ nhạy Cảm biến Hall A3144  | 100 lần rút   | 100% nhận diện    | Hoàn hảo       |
| Cảm biến quang KY-018 (Cũ)   | 100 lần rút   | 84% (nhiễu quang) | Bị loại bỏ     |
| Đồng bộ dữ liệu App -> Mạch  | 50 lần cài đặt| Trễ TB: 320 ms    | Rất tốt        |
| Mất nguồn AC -> Chuyển Pin   | 20 lần cắt điện| Chuyển mạch 0 ms  | Không sập nguồn|
| Lưu và khôi phục EEPROM      | 30 lần ngắt Wi-Fi| 100% bảo toàn   | Không mất lịch |
+------------------------------+---------------+-------------------+----------------+
  • Hiệu chuẩn cảm biến: Thử nghiệm đối chứng cho thấy cảm biến từ A3144 khắc phục hoàn toàn nhược điểm của cảm biến quang trở (loại bị báo sai khi ánh sáng phòng thay đổi hoặc bụi bám). Ngưỡng chuyển đổi ADC cố định ở mức $V_{\text{threshold}} = 2.5\text{V}$, đảm bảo độ tin cậy tuyệt đối khi nhấc hoặc đặt hộp.
  • Độ chính xác thời gian: Thử nghiệm kiểm tra trôi giờ trong 30 ngày liên tục ghi nhận độ sai lệch của DS1307 là $< 2\text{ giây/tháng}$, hoàn toàn đáp ứng tiêu chuẩn quản lý liều dùng y tế.

Đổi mới và đóng góp

  1. Kiến trúc vi xử lý kép Master-Slave tối ưu tài nguyên:

    • Phân tách mạch lạc: Arduino Mega 2560 chịu trách nhiệm quét 8 cổng ADC, điều khiển màn hình cảm ứng TFT thời gian thực và quản lý khối báo động; ESP8266 NodeMCU chuyên trách ngăn xếp giao thức mạng TCP/IP, mã hóa dữ liệu JSON và kết nối đám mây.
    • Cải thiện 38% tốc độ phản hồi giao diện so với giải pháp chạy đơn chip xử lý tất cả tác vụ.
  2. Cơ chế dự phòng dữ liệu 3 lớp (Triple-layer Redundancy):

    • Dữ liệu được bảo toàn đồng thời tại: (1) Đám mây Firebase Realtime Database, (2) Bộ nhớ cục bộ EEPROM AT24C256 trên bus $\text{I}^2\text{C}$, (3) Bộ nhớ Flash của vi điều khiển.
    • Khi mất mạng, hệ thống vẫn nhắc thuốc chính xác 100% nhờ RTC và EEPROM; khi có kết nối trở lại, module ESP8266 tự động thực hiện tiến trình đồng bộ ngược lên đám mây.
  3. Cơ chế cảnh báo thông minh chống nhờn chuông:

    • Thay vì phát chuông liên tục gây khó chịu, hệ thống áp dụng thuật toán phân cấp cảnh báo tại 4 mốc: Đúng giờ ($0\text{m}$), trễ $5\text{m}$, trễ $15\text{m}$, và trễ $30\text{m}$. Sau 60 phút không mở hộp, hệ thống tự động ghi nhận trạng thái "Bỏ lỡ liều" và gửi cảnh báo mức độ cao về ứng dụng di động cho người thân.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Hỗ trợ người cao tuổi sống độc lập: Người già suy giảm trí nhớ chỉ cần quan sát đèn LED phát sáng tại ngăn thuốc tương ứng và nghe chuông báo để lấy đúng khay thuốc, không cần thao tác điện thoại phức tạp.
  • Giám sát bệnh nhân điều trị ngoại trú: Bác sĩ hoặc người chăm sóc từ xa theo dõi lịch sử uống thuốc theo thời gian thực qua giao diện Status trên ứng dụng Android, kịp thời gọi điện nhắc nhở nếu phát hiện trạng thái trễ thuốc quá 30 phút.
  • Khoa điều trị nội trú tại bệnh viện: Tối ưu hóa công tác phân phối thuốc theo ca của điều dưỡng, giảm tải 45% khối lượng kiểm tra thủ công.

Dự toán chi phí sản xuất phần cứng (BOM)

+-------------------------------------------------------------------------------+
|                      BẢNG DỰ TOÁN CHI PHÍ THI CÔNG                            |
+-----+---------------------------------+-----------+-------------+-------------+
| STT | Danh mục linh kiện              | Số lượng  | Đơn giá(VND)| Thành tiền  |
+-----+---------------------------------+-----------+-------------+-------------+
| 1   | Arduino Mega 2560 R3            | 1 bo      | 230.000     | 230.000     |
| 2   | NodeMCU ESP8266 V3 CH340        | 1 bo      | 75.000      | 75.000      |
| 3   | Màn hình TFT 3.2 inch ILI9341   | 1 module  | 185.000     | 185.000     |
| 4   | Cảm biến Hall A3144 + Nam châm  | 8 bộ      | 8.000       | 64.000      |
| 5   | Module RTC DS1307 + Pin CR2032  | 1 bộ      | 25.000      | 25.000      |
| 6   | Module EEPROM AT24C256          | 1 module  | 15.000      | 15.000      |
| 7   | Mạch Buck LM2596 + Mạch sạc 2S  | 2 module  | 25.000      | 50.000      |
| 8   | 2 Cell Pin 18650 + Đế pin + Jack| 1 bộ      | 90.000      | 90.000      |
| 9   | Vỏ hộp mica/nhựa gia công CNC   | 1 bộ      | 120.000     | 120.000     |
| 10  | Phụ kiện (LED, Buzzer, PCB, R)  | 1 gói     | 45.000      | 45.000      |
+-----+---------------------------------+-----------+-------------+-------------+
|     | TỔNG CHI PHÍ PHẦN CỨNG          |           |             | 899.000 VND |
+-----+---------------------------------+-----------+-------------+-------------+

Giá thành gia công đơn chiếc ở mức ~900.000 VND, khi sản xuất quy mô công nghiệp ($> 1.000$ sản phẩm), chi phí dự kiến giảm xuống dưới 450.000 VND, tạo ưu thế cạnh tranh vượt trội so với các sản phẩm nhập khẩu có giá từ 2 - 5 triệu VND.


Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Kích thước khung vỏ ($23 \times 12 \times 4\text{ cm}$) gia công thủ công bằng nhựa cắt ghép nên độ thẩm mỹ công nghiệp chưa đạt mức hoàn thiện thương mại hóa.
  • Cảm biến từ Hall A3144 xác nhận hành vi "rút khay thuốc" nhưng chưa thể kiểm soát được bệnh nhân có thực sự uống viên thuốc hay không.
  • Module ESP8266 chỉ hoạt động trên băng tần Wi-Fi $2.4\text{ GHz}$, chưa hỗ trợ mạng $5\text{ GHz}$ hoặc mạng di động di động (Cellular 4G/LTE).

Hướng phát triển

  1. Tích hợp cảm biến tải trọng micro (Loadcell) dưới từng khay thuốc để định lượng chính xác khối lượng thuốc giảm đi sau mỗi cữ uống.
  2. Nâng cấp vi xử lý: Chuyển sang vi điều khiển ESP32 kép hoặc ARM Cortex-M4 để tinh gọn bo mạch, tích hợp BLE (Bluetooth Low Energy) hỗ trợ ghép nối một chạm.
  3. Phát triển đa nền tảng: Xây dựng phiên bản ứng dụng iOS và Web Dashboard quản trị dành riêng cho cơ sở y tế bằng Flutter/React Native.
  4. Tích hợp trợ lý ảo AI: Hỗ trợ tương tác nhắc thuốc qua giọng nói tiếng Việt cho bệnh nhân suy giảm thị lực.

Đối tượng hưởng lợi

  • Sinh viên & Nghiên cứu sinh Y sinh/Điện tử: Tiếp cận tài liệu thiết kế hệ thống nhúng lai thực tế, code mẫu giao tiếp UART phân tách gói tin và cấu trúc kết nối cơ sở dữ liệu Firebase.
  • Kỹ sư nhúng & IoT Developers: Tham khảo mô hình xử lý nguồn dự phòng liên tục (Seamless Power Switching) và kỹ thuật lưu trữ đệm EEPROM chống mất dữ liệu khi mất kết nối mạng.
  • Người bệnh & Gia đình: Nâng cao tỷ lệ tuân thủ phác đồ điều trị lên $> 95%$, giảm thiểu sai sót y khoa và mang lại sự an tâm tuyệt đối cho người chăm sóc.
  • Đơn vị Y tế & Doanh nghiệp: Nền tảng thiết kế mở với chi phí phần cứng thấp, có khả năng thương mại hóa thành thiết bị hỗ trợ điều trị diện rộng.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai và nạp mã nguồn cho hệ thống là gì?

Hệ thống yêu cầu máy tính cài đặt Arduino IDE (phiên bản $\ge 1.8.19$) với bộ thư viện UTFT, URTouch, RTClib, FirebaseESP8266; phần mềm Android Studio Electric Eel ($\ge 2022.1.1$) tích hợp JDK 11. Bo mạch nạp qua cổng USB-B (Mega 2560) và Micro-USB (ESP8266).

2. Giới hạn lưu trữ và khả năng mở rộng số lượng ngăn thuốc?

Module EEPROM AT24C256 có dung lượng $256\text{ Kbit}$ ($32\text{ KB}$), mỗi bản ghi lịch thuốc chiếm $16\text{ bytes}$, cho phép lưu trữ hơn 2.000 bản ghi lịch sử uống thuốc ngoại tuyến. Hệ thống có thể mở rộng lên 16 hoặc 32 ngăn bằng cách sử dụng thêm IC mở rộng I/O PCF8574 hoặc 74HC595.

3. Hệ thống xử lý thế nào khi mất kết nối Wi-Fi đột ngột?

Mọi lịch trình cài đặt đã được nạp trực tiếp vào EEPROM và đối soát liên tục bằng IC thời gian thực RTC DS1307 độc lập. Toàn bộ chuông báo, đèn LED và cảm biến Hall vẫn hoạt động bình thường. ESP8266 sẽ lưu trạng thái vào hàng đợi và tự động đồng bộ lên Firebase ngay khi có kết nối trở lại.

4. Chi phí bảo dưỡng và tuổi thọ pin dự phòng được tính toán ra sao?

Pin Lithium 18650 chuẩn công nghiệp đạt tuổi thọ trung bình 500 chu kỳ sạc-xả (tương đương 2-3 năm sử dụng). Mạch sạc tự ngắt khi đầy giúp chống chai pin. Chi phí thay thế 2 cell pin định kỳ chỉ khoảng 80.000 - 100.000 VND.

5. Có thể cài đặt thời gian uống thuốc khác nhau cho từng ngày trong tuần không?

Hoàn toàn có thể thực hiện thông qua chế độ Advanced trên ứng dụng Android hoặc màn hình cảm ứng TFT. Người dùng có thể cấu hình chi tiết từng giờ, phút, ngày, tháng, năm độc lập cho từng ngăn thuốc cụ thể.


Kết luận

Đồ án tốt nghiệp "Thiết kế và thi công mô hình hộp thuốc hỗ trợ người bệnh" của sinh viên ngành Kỹ thuật Y sinh - Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết toàn diện bài toán tuân thủ dùng thuốc trong y tế thông qua sự kết hợp hiệu quả giữa kỹ thuật vi điều khiển và công nghệ kết nối vạn vật (IoT). Với kiến trúc nhúng lai hai tầng, cơ chế sao lưu ngoại tuyến thông minh cùng ứng dụng quản lý trực quan trên Android, sản phẩm chứng minh tính khả thi cao, chi phí sản xuất thấp và tiềm năng ứng dụng sâu rộng trong thực tiễn chăm sóc sức khỏe cộng đồng.