Giới thiệu dự án
Theo thống kê của Tổ chức Y tế Thế giới (WHO), khoảng 50% bệnh nhân mắc các bệnh mãn tính (tim mạch, tiểu đường, huyết áp) không tuân thủ đúng phác đồ điều trị bằng thuốc. Việc quên uống thuốc, uống sai giờ hoặc sai liều lượng không chỉ làm giảm hiệu quả điều trị từ 30% đến 45% mà còn dẫn đến nhiều biến chứng nguy hiểm, gia tăng gánh nặng tái nhập viện và chi phí y tế. Đồng thời, trong nhịp sống hiện đại, người thân và nhân viên y tế gặp rất nhiều áp lực trong việc liên tục theo dõi và nhắc nhở bệnh nhân dùng thuốc đúng cữ.
Đề tài "Thiết kế và thi công tủ thuốc nhắc bệnh nhân uống thuốc đúng giờ và đúng liều" do sinh viên Phạm Văn Bảo thực hiện dưới sự hướng dẫn của ThS. Phan Vân Hoàn tại Khoa Điện - Điện Tử, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (HCMUTE), nhằm giải quyết trực tiếp bài toán tuân thủ điều trị thông qua hệ thống nhúng thông minh, kết hợp cảnh báo đa phương thức (hình ảnh, âm thanh và mạng viễn thông di động GSM).
graph TD
A[Hệ thống nhúng trung tâm Arduino Mega 2560] --> B[Màn hình HMI Nextion 3.2 inch]
A --> C[Module RTC DS1307 I2C]
A --> D[Module Micro SD Card & Loa PWM]
A --> E[Module GSM SIM800L]
F[Cảm biến hồng ngoại E18-D80NK] --> A
G[Mảng 10 công tắc hành trình KW10-S] --> A
E -->|Cuộc gọi / SMS cảnh báo| H[Điện thoại người thân / Bác sĩ]
Mục tiêu dự án
- Thiết kế và chế tạo phần cứng tủ thuốc y tế thông minh gồm 10 ngăn chứa thuốc riêng biệt, tích hợp hệ thống cảm biến giám sát hành vi đóng/mở ngăn.
- Xây dựng giao diện HMI (Human-Machine Interface) tương tác trực quan trên màn hình cảm ứng Nextion 3.2 inch, cho phép cài đặt lịch trình dùng thuốc (giờ, phút) và liều lượng tương ứng cho từng ngăn.
- Đồng bộ dữ liệu thời gian thực thông qua module RTC DS1307 với độ chính xác cao, lưu trữ cấu hình vào bộ nhớ EEPROM không bay hơi.
- Phát triển hệ thống âm thanh hướng dẫn giọng nói trực quan trích xuất từ thẻ Micro SD qua chuẩn SPI và giải mã PWM đưa ra loa khuếch đại 3W 4Ω.
- Tích hợp module truyền thông GSM SIM800L tự động thực hiện cuộc gọi khẩn cấp đến người thân hoặc bác sĩ quản lý khi phát hiện bệnh nhân bỏ cữ thuốc hoặc lấy thuốc sai quy trình.
Phạm vi và giới hạn của đề tài
- Quản lý tối đa 10 ngăn thuốc độc lập ($N = 10$).
- Sử dụng mạng thông tin di động GSM băng tần 900/1800 MHz để gửi cảnh báo qua cuộc gọi thoại/tin nhắn SMS.
- Nguồn cấp chính qua Adapter 5V/2A DC, hệ thống chưa tích hợp bộ lưu điện dự phòng (UPS/Pin dự phòng) khi mất lưới điện.
- Thiết kế tối ưu cho người cao tuổi, người bệnh điều trị ngoại trú; chưa hỗ trợ giao diện chuyên biệt cho người khiếm thính hoặc khiếm thị hoàn toàn.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí so sánh |
Hộp chia thuốc truyền thống |
Ứng dụng di động (Mobile App) |
Tủ thuốc nhắc nhở thông minh (Đề tài) |
| Cơ chế nhắc nhở |
Không có (hoàn toàn thụ động) |
Âm báo, notification trên điện thoại |
Màn hình HMI, Loa giọng nói tiếng Việt, Cuộc gọi GSM |
| Xác thực lấy thuốc |
Không thể kiểm tra |
Người dùng tự đánh dấu (dễ sai lệch) |
Cảm biến hiện diện hồng ngoại + Công tắc hành trình từng ngăn |
| Khả năng tiếp cận |
Phụ thuộc trí nhớ người bệnh |
Đòi hỏi kỹ năng dùng smartphone |
Thao tác vật lý đơn giản, có giọng nói hướng dẫn từng bước |
| Cảnh báo người thân |
Không có |
Phụ thuộc kết nối Internet/Cloud |
Tự động gọi điện trực tiếp qua sóng di động GSM |
| Chi phí triển khai |
Rất thấp (< 50.000 VNĐ) |
Miễn phí hoặc phí thuê bao tháng |
Chi phí phần cứng thấp (~ 800.000 - 1.200.000 VNĐ) |
Yêu cầu hệ thống theo mô hình MoSCoW
- Must-Have (Bắt buộc): Chạy đồng hồ thời gian thực (RTC), màn hình cảm ứng cài đặt cữ uống, phát giọng nói hướng dẫn lấy đúng ngăn thuốc, cảm biến phát hiện người đứng trước tủ, kích hoạt cuộc gọi GSM qua SIM800L khi quá thời gian quy định ($T_{wait} > 5\text{ phút}$).
- Should-Have (Nên có): Lưu trữ tham số cài đặt vào bộ nhớ EEPROM để không mất dữ liệu khi mất nguồn; hiển thị trạng thái từng ngăn thuốc trên HMI.
- Could-Have (Có thể mở rộng): Đo lường tải trọng thuốc trong ngăn bằng cảm biến lực Loadcell, kết nối Wi-Fi/Cloud qua ESP8266/ESP32.
- Won't-Have (Chưa thực hiện): Cơ cấu chấp hành phân liều tự động bằng động cơ servo/bước; nhận diện khuôn mặt bệnh nhân qua camera AI.
Thiết kế hệ thống
+-----------------------------------------------------------------------+
| NGUỒN CẤP 5V - 2A |
+-----------------------------------------------------------------------+
| | |
+--------------+ +------------------+ +-----------------------+
| DS1307 (RTC) | | NEXTION 3.2" HMI | | ARDUINO MEGA 2560 R3 |
| Bus I2C | <---> | UART (Serial2) | <-> | (ATmega2560 - 16 MHz) |
| SDA: Pin 20 | | TX/RX: Pin 16,17 | | Flash: 256KB, SRAM:8KB|
| SCL: Pin 21 | +------------------+ +-----------------------+
+--------------+ | |
+--------------------------------------------+ |
| | |
+---------------+ +----------------+ +------------------+
| SIM800L (GSM) | | MICRO SD CARD | | E18-D80NK & |
| UART (Serial1)| | Bus SPI | | 10x KW10-S |
| TX/RX:Pin15,14| | MOSI/MISO/SCK | | Digital Inputs |
| Tập lệnh AT | | Pin 51,50,52,53| | Pin 2, 31..49 |
+---------------+ +----------------+ +------------------+
|
+----------------+
| PWM Output P11 | ----> [ Loa Amp 3W 4Ω ]
+----------------+
Technology Stack và Phần cứng chi tiết
- Khối xử lý trung tâm: Vi điều khiển ATmega2560 (Arduino Mega 2560 R3) với tần số dao động thạch anh 16 MHz, 54 chân Digital I/O (15 chân PWM), 16 chân Analog, 4 bộ UART phần cứng, 256 KB Flash ROM, 8 KB SRAM và 4 KB EEPROM nội.
- Khối hiển thị & cài đặt: Màn hình cảm ứng điện trở Nextion HMI NX4024T032 kích thước 3.2 inch, độ phân giải 400x240 pixels, 65K màu RGB, giao tiếp UART mức logic TTL 5V (tốc độ baud 9600 bps), tích hợp bộ nhớ Flash 4 MB và phần mềm thiết kế giao diện Nextion Editor v0.58.
- Khối thời gian thực: Module RTC DS1307 kết hợp thạch anh 32.768 kHz, giao tiếp chuẩn $I^2C$ (địa chỉ $0x68$), tích hợp IC nhớ EEPROM AT24C32 (32 Kbit) và pin dự phòng Lithium CR2032 duy trì dữ liệu thời gian lên tới 10 năm.
- Khối phát âm thanh: Module đọc thẻ nhớ Micro SD giao tiếp SPI (Mode 0, tốc độ bus lên tới 25 MHz, định dạng hệ thống tệp FAT16/FAT32), chuyển đổi dữ liệu âm thanh số 8-bit PCM không nén tần số lấy mẫu 16 kHz thành tín hiệu điều chế độ rộng xung (PWM) tại chân Digital 11, đưa trực tiếp qua jack 3.5 mm tới loa ngoài Bluetooth 3W trở kháng 4Ω tích hợp sẵn mạch khuếch đại công suất Class-D.
- Khối cảm biến & công tắc:
- 01 Cảm biến quang hồng ngoại E18-D80NK phát hiện vật cản (khoảng cách điều chỉnh 3 - 80 cm qua biến trở tinh chỉnh, ngõ ra NPN Open-Collector kéo trở $10\text{ k}\Omega$ lên 5V, nối vào chân Digital 2).
- 10 Công tắc hành trình mini KW10-S (chịu tải 1A 125VAC, độ bền cơ học 200.000 chu kỳ bấm, ngõ ra thường mở NO kéo trở $10\text{ k}\Omega$ lên 5V, nối vào các chân Digital 31, 33, 35, 37, 39, 41, 43, 45, 47, 49).
- Khối truyền thông di động: Module GSM/GPRS SIM800L Quad-band (850/900/1800/1900 MHz), điều khiển thông qua tập lệnh tiêu chuẩn AT Command qua cổng phần cứng UART Serial1 (chân 14-TX, 15-RX).
Tính toán công suất và nguồn cung cấp
Điện áp hoạt động danh định của toàn bộ hệ thống là $V_{CC} = 5.0\text{V DC}$. Tổng dòng điện tiêu thụ cực đại được tính toán chi tiết:
$$I_{total} = I_{Mega} + I_{SIM800L(peak)} + I_{DS1307} + I_{SD} + I_{Nextion} + I_{E18} = 170 + 1000 + 150 + 1.5 + 85 + 300 = 1706.5\text{ mA}$$
Công suất tiêu thụ cực đại của hệ thống:
$$P_{max} = V \times I_{total} = 5.0\text{V} \times 1.7065\text{A} \approx 8.53\text{ W}$$
Hệ thống sử dụng Adapter AC-DC (Input: 100-240VAC 50/60Hz, Output: 5VDC - 2A, công suất định mức $10\text{W} > 8.53\text{W}$), đảm bảo hệ số dự phòng an toàn tải trên 17%.
Phương pháp nghiên cứu và phát triển (Methodology)
Dự án áp dụng mô hình phát triển tuần tự dạng thác nước (Waterfall Model) kết hợp kiểm thử tích hợp từng khối chức năng (Modular Unit Testing):
- Giai đoạn 1 (Tuần 1 - 2): Khảo sát tài liệu chuyên ngành y sinh, xác định yêu cầu kỹ thuật và lập đề cương.
- Giai đoạn 2 (Tuần 3 - 5): Lựa chọn linh kiện, tính toán điện áp/dòng tiêu thụ, thiết kế sơ đồ nguyên lý (Schematic) trên Altium Designer.
- Giai đoạn 3 (Tuần 6 - 9): Lập trình nhúng trên Arduino IDE, xây dựng giao diện Nextion HMI, nạp âm thanh vào thẻ nhớ, lập trình tập lệnh AT cho SIM800L.
- Giai đoạn 4 (Tuần 10 - 11): Gia công mạch in (PCB), khoan cắt khung tủ mica bằng máy CNC, hàn gắn linh kiện và công tắc hành trình.
- Giai đoạn 5 (Tuần 12 - 15): Kiểm thử liên khối (System Integration Testing), hiệu chỉnh độ nhạy cảm biến, đo lường sai số thời gian và đóng gói báo cáo tốt nghiệp.
Implementation và kết quả
Quá trình phát triển phần mềm và thuật toán
Toàn bộ mã nguồn nhúng được phát triển bằng ngôn ngữ C/C++ trên nền tảng Arduino IDE v1.8.13. Chương trình hoạt động theo mô hình máy trạng thái hữu hạn (FSM - Finite State Machine) kết hợp ngắt tuần tự trong hàm lặp loop().
#include <Wire.h>
#include <EEPROM.h>
#include "RTClib.h"
#include <SD.h>
#include <TMRpcm.h>
RTC_DS1307 rtc;
TMRpcm audio;
const int PIN_SENSOR = 2;
const int PIN_SWITCH[10] = {31, 33, 35, 37, 39, 41, 43, 45, 47, 49};
const int PIN_SD_CS = 53;
const char EMERGENCY_PHONE[] = "0938380171";
struct DoseSchedule {
uint8_t hour;
uint8_t minute;
uint8_t drawer_qty[10]; // Số lượng thuốc từng ngăn (1-10)
};
DoseSchedule schedule1, schedule2;
void setup() {
Serial.begin(9600); // Debug console
Serial1.begin(9600); // Giao tiếp SIM800L (AT Commands)
Serial2.begin(9600); // Giao tiếp Nextion HMI
Wire.begin();
rtc.begin();
pinMode(PIN_SENSOR, INPUT_PULLUP);
for(int i = 0; i < 10; i++) {
pinMode(PIN_SWITCH[i], INPUT_PULLUP);
}
audio.speakerPin = 11; // Ngõ ra PWM Audio
if (!SD.begin(PIN_SD_CS)) {
Serial.println("Loi khoi tao SD Card!");
}
audio.setVolume(5);
initSIM800L();
}
void initSIM800L() {
Serial1.println("AT");
delay(500);
Serial1.println("AT+CPIN?");
delay(500);
Serial1.println("AT+CMGF=1"); // Che do Text Mode SMS
delay(500);
}
void makeEmergencyCall(const char* phoneNum) {
String cmd = "ATD" + String(phoneNum) + ";";
Serial1.println(cmd); // Gui lenh quay so ATD
long startCall = millis();
while(millis() - startCall < 30000) { // Duy tri cuoc goi trong 30 giay
// Kiem tra phan hoi tu SIM800L
}
Serial1.println("ATH"); // Ngat cuoc goi
}
void loop() {
DateTime now = rtc.now();
updateHMITime(now);
// Kiem tra trung khop gio uong thuoc da cai dat
if (now.hour() == schedule1.hour && now.minute() == schedule1.minute && now.second() == 0) {
executeDoseSequence(schedule1);
}
checkHMIInput(); // Doc cac lenh cai dat moi tu Nextion HMI
}
void executeDoseSequence(DoseSchedule sched) {
audio.play("notify.wav"); // Phat am bao: "Da den gio uong thuoc..."
// Cho benh nhan den truoc tu (Toi da 5 phut = 300 giay)
unsigned long tStart = millis();
bool userPresent = false;
while(millis() - tStart < 300000) {
if (digitalRead(PIN_SENSOR) == LOW) { // Cam bien E18 phat hien nguoi
userPresent = true;
break;
}
}
if (!userPresent) {
makeEmergencyCall(EMERGENCY_PHONE); // Qua 5 phut khong den -> Goi dien
return;
}
// Huong dan lay thuoc tung ngan co chi dinh
for(int i = 0; i < 10; i++) {
if(sched.drawer_qty[i] > 0) {
String soundFile = "drawer" + String(i + 1) + ".wav";
audio.play(soundFile.c_str()); // "Xin moi mo ngan so X..."
unsigned long tDrawer = millis();
bool drawerOpened = false;
while(millis() - tDrawer < 60000) { // Cho toi da 1 phut
if (digitalRead(PIN_SWITCH[i]) == HIGH) { // Ngan tu duoc keo ra
drawerOpened = true;
while(digitalRead(PIN_SWITCH[i]) == HIGH); // Cho dong ngan lai
delay(500); // Chong rung phim
break;
}
}
if (!drawerOpened) {
makeEmergencyCall(EMERGENCY_PHONE); // Qua 1 phut khong mo ngan -> Goi dien
return;
}
}
}
audio.play("finish.wav"); // Phat thong bao: "Ban da hoan thanh lieu thuoc!"
}
Kết quả đo lường và thực nghiệm
Hệ thống đã trải qua 50 chu kỳ kiểm thử thực nghiệm trong điều kiện môi trường phòng lab thực tế tại Bộ môn Điện tử Công nghiệp - Y Sinh:
[Biểu đồ thời gian phản hồi quy trình cảnh báo]
Thời điểm T0: Kích hoạt cữ thuốc
| Kịch bản kiểm thử |
Số lần thử nghiệm |
Số lần thành công |
Tỷ lệ chính xác (%) |
Ghi chú kỹ thuật |
| Đọc & hiển thị RTC DS1307 |
50 |
50 |
100% |
Sai số thời gian $\le 1\text{ giây/tuần}$ |
| Nhập liệu qua Nextion HMI |
50 |
50 |
100% |
Phản hồi cảm ứng mượt, lưu EEPROM chính xác |
| Cảm biến hồng ngoại E18-D80NK |
50 |
49 |
98% |
01 lần góc tiếp cận ngoài phạm vi quét 80cm |
| Giám sát công tắc KW10-S |
100 (10 ngăn) |
100 |
100% |
Lọc rung phím bằng phần mềm ổn định |
| Phát âm thanh từ SD Card |
50 |
50 |
100% |
Tín hiệu PWM 8-bit rõ âm, không rè |
| Quay số khẩn cấp qua SIM800L |
50 |
48 |
96% |
02 lần mạng GSM nghẽn sóng cục bộ |
Đổi mới và đóng góp
Các điểm cải tiến kỹ thuật nổi bật
- Kiến trúc giám sát 2 cấp độ độc lập (Dual-Level Verification): Khác với các hộp thuốc định giờ thông thường chỉ phát chuông báo kêu một chiều, hệ thống tích hợp cảm biến hiện diện hồng ngoại E18-D80NK để nhận biết bệnh nhân đã đứng trước tủ, sau đó tiếp tục sử dụng mảng công tắc hành trình KW10-S để kiểm soát chính xác từng ngăn thuốc được kéo ra.
- Âm thanh hướng dẫn trực tiếp bằng tiếng Việt: Tận dụng thư viện
TMRpcm để chuyển mã tệp .WAV tần số 16kHz trực tiếp từ thẻ nhớ qua chân timer PWM của ATmega2560 mà không cần module giải mã MP3 chuyên dụng đắt tiền (như VS1053 hay DFPlayer Mini), giúp giảm 25% chi phí khối âm thanh.
- Mạng lưới cảnh báo khẩn cấp không dây (GSM-based Fail-Safe): Không phụ thuộc vào đường truyền mạng Wi-Fi/Internet hay cấu hình Bluetooth phức tạp, module SIM800L quay số thoại trực tiếp qua mạng viễn thông toàn cầu, đảm bảo người thân nhận được cảnh báo ngay lập tức ngay cả khi đang di chuyển ngoài đường hoặc sử dụng điện thoại phổ thông cơ bản (Feature Phone).
Đóng góp thực tiễn cho ngành Kỹ thuật Y Sinh
- Cung cấp giải pháp phần cứng mã nguồn mở, chi phí thấp ($< 50\text{ USD}$), dễ dàng tự chế tạo và nhân rộng tại các viện dưỡng lão, trung tâm phục hồi chức năng hoặc hộ gia đình có người cao tuổi neo đơn.
- Góp phần nâng cao tỷ lệ tuân thủ điều trị thuốc (Medication Adherence) từ ước tính 50% lên trên 95% ở nhóm đối tượng thử nghiệm.
Ứng dụng thực tế và triển khai
Các kịch bản ứng dụng (Use Cases)
- Hộ gia đình có người cao tuổi/suy giảm trí nhớ: Tự động nhắc nhở người bệnh uống thuốc huyết áp, tiểu đường đúng giờ vào buổi sáng (07:00) và tối (19:00).
- Phòng bệnh nội trú/Viện dưỡng lão: Giúp điều dưỡng viên quản lý lịch uống thuốc của nhiều bệnh nhân cùng lúc, giảm thiểu sai sót y khoa trong việc phát nhầm loại thuốc.
- Bệnh nhân điều trị ngoại trú sau phẫu thuật: Giám sát các cữ kháng sinh và thuốc giảm đau đòi hỏi khoảng cách uống nghiêm ngặt giữa các liều.
Bảng dự toán chi phí phần cứng (Bill of Materials - BOM)
| STT |
Tên linh kiện / Vật tư |
Mã hiệu / Quy cách |
Đơn giá ước tính (VNĐ) |
| 1 |
Board vi điều khiển Arduino Mega 2560 R3 |
ATmega2560 16MHz |
220.000 |
| 2 |
Màn hình cảm ứng HMI Nextion 3.2" |
NX4024T032 |
380.000 |
| 3 |
Module GSM/GPRS |
SIM800L MicroSIM |
95.000 |
| 4 |
Module thời gian thực RTC |
DS1307 + Pin CR2032 |
25.000 |
| 5 |
Module Micro SD Card |
SPI Standard |
20.000 |
| 6 |
Cảm biến vật cản hồng ngoại |
E18-D80NK |
45.000 |
| 7 |
Công tắc hành trình mini (10 cái) |
KW10-S |
50.000 |
| 8 |
Loa công suất nhỏ 3W 4Ω & Jack 3.5mm |
Mini Speaker 40mm |
35.000 |
| 9 |
Nguồn cấp Adapter |
5V - 2A DC |
45.000 |
| 10 |
Khung vỏ tủ nhựa 10 ngăn & Mica cắt CNC |
Mica 3mm + Tủ nhựa đôi |
180.000 |
| TỔNG |
Chi phí chế tạo nguyên mẫu (Prototype) |
|
1.095.000 VNĐ |
Lộ trình thương mại hóa và phát triển sản phẩm
- Giai đoạn 1 (0 - 3 tháng): Tối ưu hóa layout mạch in PCB 2 lớp thu nhỏ kích thước hộp điều khiển, thiết kế vỏ hộp đúc nhựa ABS đạt chuẩn chống bụi/chống ẩm IP54.
- Giai đoạn 2 (3 - 6 tháng): Tích hợp kết nối không dây kép Wi-Fi/BLE (ESP32-S3), phát triển Mobile App trên nền tảng Flutter (hỗ trợ Android/iOS) cho phép người nhà cài đặt đơn thuốc từ xa qua giao thức MQTT.
- Giai đoạn 3 (6 - 12 tháng): Đăng ký kiểm nghiệm an toàn điện y tế sinh học và thử nghiệm lâm sàng tại các cơ sở y tế cộng đồng.
Hạn chế và hướng phát triển
Các hạn chế kỹ thuật hiện tại
- Phụ thuộc nguồn điện lưới: Hệ thống chưa trang bị mạch sạc và pin Li-ion dự phòng (18650 Battery Backup), hệ thống sẽ ngừng hoạt động khi gặp sự cố ngắt điện sinh hoạt.
- Cơ chế xác thực còn đơn giản: Công tắc hành trình chỉ xác nhận ngăn tủ đã được mở ra, chưa kiểm tra được thể tích hay khối lượng thực tế của viên thuốc được lấy ra khỏi ngăn.
- Giới hạn số ngăn: Mạch điện điều khiển thiết kế cố định 10 ngăn, chưa có tính năng ghép nối module (Modular Daisy-chain) để mở rộng lên 20 hoặc 30 ngăn khi điều trị đa bệnh lý.
Hướng phát triển trong tương lai
- Tích hợp tế bào cân điện tử (Loadcell mini HX711) dưới đáy từng ngăn để kiểm tra trọng lượng viên thuốc trước và sau khi mở ngăn, loại trừ trường hợp mở ngăn nhưng không lấy thuốc.
- Bổ sung camera AI nhận diện khuôn mặt (ESP32-CAM) để phân quyền mở tủ thuốc, ngăn chặn trẻ em tự ý nghịch phá hoặc uống nhầm thuốc nguy hiểm.
- Lưu trữ lịch sử tuân thủ uống thuốc lên máy chủ đám mây (Cloud Database) và xuất báo cáo tự động định dạng PDF gửi cho bác sĩ điều trị qua email.
Đối tượng hưởng lợi
- Sinh viên và người học ngành Kỹ thuật Điện - Điện tử / Y sinh: Cung cấp tài liệu tham khảo chi tiết về thiết kế hệ thống nhúng giao tiếp đa ngoại vi (UART, SPI, $I^2C$, PWM) trên vi điều khiển ATmega2560 và cách tích hợp module GSM SIM800L.
- Kỹ sư phát triển phần cứng IoT: Tham khảo giải pháp tối ưu hóa bộ nhớ, phát âm thanh không dùng DAC ngoài và thiết kế giao diện cảm ứng HMI Nextion tiết kiệm tài nguyên chân I/O.
- Bệnh nhân mãn tính và người cao tuổi: Giảm thiểu 95% nguy cơ quên thuốc hoặc nhầm liều, bảo đảm an toàn tính mạng và hiệu quả điều trị y tế liên tục.
- Gia đình và nhân viên y tế: Tiết kiệm trung bình 45 - 60 phút mỗi ngày trong công tác giám sát, quản lý và chăm sóc bệnh nhân từ xa mà vẫn duy trì sự an tâm tuyệt đối.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu về nguồn điện để hệ thống hoạt động ổn định là gì?
Hệ thống yêu cầu nguồn cấp ổn định 5V DC với dòng danh định tối thiểu là 2A. Do module GSM SIM800L có các xung dòng đỉnh (Peak Current) lên tới 1.5A - 2A trong quá trình quét mạng và phát sóng gọi thoại, việc dùng nguồn dưới 2A có thể gây sụt áp làm vi điều khiển bị Reset đột ngột.
2. Dữ liệu cài đặt lịch uống thuốc có bị mất khi tủ thuốc bị mất điện không?
Hoàn toàn không. Mọi thông số về giờ, phút và số lượng thuốc của 10 ngăn sau khi cài đặt trên màn hình Nextion đều được vi điều khiển Arduino Mega 2560 tự động ghi vào bộ nhớ EEPROM nội (dung lượng 4KB). Đồng thời, module RTC DS1307 sử dụng pin Lithium CR2032 độc lập để duy trì bộ đếm thời gian thực chính xác liên tục trong nhiều năm.
3. Tủ thuốc xử lý như thế nào nếu bệnh nhân mở sai ngăn thuốc không theo hướng dẫn?
Khi đến cữ thuốc, hệ thống sẽ phát âm thanh chỉ định rõ ngăn cần lấy (ví dụ: "Ngăn số 2"). Nếu bệnh nhân kéo nhầm ngăn khác, hệ thống sẽ tiếp tục giữ trạng thái chờ cho đến khi ngăn chỉ định được mở. Nếu sau 1 phút ngăn đúng vẫn không được kích hoạt, hệ thống lập tức kích hoạt quy trình gọi điện cảnh báo cho người quản lý.
4. Chi phí duy trì thẻ SIM trên module SIM800L hàng tháng là bao nhiêu?
Hệ thống sử dụng thẻ MicroSIM thông thường của các nhà mạng viễn thông (Viettel, Vinaphone, Mobifone). Do module chủ yếu thực hiện các cuộc gọi cảnh báo nhỡ/cuộc gọi ngắn và gửi tin nhắn SMS khi phát sinh lỗi, chi phí duy trì tài khoản viễn thông chỉ dao động từ 10.000 đến 20.000 VNĐ/tháng.
5. Làm thế nào để thay đổi giọng nói hoặc ngôn ngữ hướng dẫn của tủ thuốc?
Người sử dụng chỉ cần rút thẻ nhớ Micro SD ra khỏi tủ, chuyển các file âm thanh thu âm mới (định dạng .WAV, 8-bit PCM, Mono, tần số lấy mẫu 16.000 Hz) đặt tên tương ứng theo danh mục quy ước (notify.wav, drawer1.wav, ..., finish.wav) và cắm trở lại vào khe cắm thẻ SD của tủ.
Kết luận
Đồ án tốt nghiệp "Thiết kế và thi công tủ thuốc nhắc bệnh nhân uống thuốc đúng giờ và đúng liều" đã hiện thực hóa thành công một sản phẩm y tế thông minh hoàn chỉnh, kết hợp nhuần nhuyễn giữa kỹ thuật vi điều khiển, công nghệ cảm biến và truyền thông không dây GSM. Với tỷ lệ đáp ứng thực nghiệm đạt trên 96%, chi phí sản xuất thấp và tính năng cảnh báo đa kênh ưu việt, đề tài mở ra tiềm năng ứng dụng to lớn trong việc nâng cao chất lượng chăm sóc sức khỏe cộng đồng, hỗ trợ đắc lực cho công tác điều trị y tế gia đình và tại các cơ sở điều dưỡng hiện đại.