Giới thiệu dự án
Trong kỷ nguyên chuyển đổi số y tế (HealthTech) và đặc biệt là giai đoạn hậu đại dịch Covid-19, nhu cầu tự động hóa quy trình chăm sóc bệnh nhân trở thành yêu cầu cấp thiết. Theo thống kê từ Tổ chức Y tế Thế giới (WHO), tỷ lệ điều dưỡng viên trên số lượng bệnh nhân tại các quốc gia đang phát triển như Việt Nam chỉ đạt khoảng 1,14 điều dưỡng/bác sĩ (thấp hơn nhiều so với tiêu chuẩn khuyến nghị 3-4 điều dưỡng/bác sĩ). Tình trạng quá tải tại các khoa hồi sức tích cực (ICU) dẫn đến nguy cơ theo dõi sót các dấu hiệu sinh tồn nguy cấp và làm tăng tải trọng công việc cho đội ngũ y tế.
Đồ án tốt nghiệp "Thiết kế và thi công mô hình giường bệnh thông minh" được thực hiện bởi sinh viên Trương Cao Nam Khánh và Lê Minh Dự dưới sự hướng dẫn của ThS. Nguyễn Ngô Lâm tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (HCMUTE), chuyên ngành Công nghệ Kỹ thuật Điện tử - Viễn thông. Đề tài tập trung giải quyết bài toán tự động hóa đo đạc chỉ số sinh tồn và điều khiển vị trí tư thế nằm nhằm hỗ trợ bệnh nhân vận động khó khăn.
+-----------------------------------------------------------------------+
| HỆ THỐNG GIƯỜNG BỆNH THÔNG MINH IOT |
| |
| [Bệnh nhân] ---> [MAX30100 + MLX90614 + SW1801P] |
| | (I2C / GPIO) |
| v |
| [Arduino Uno R3 (Master)] |
| | | (I2C) |
| | (UART) +--> [OLED 128x64 SSD1306] |
| v +--> [Relay / Còi Buzzer] |
| [ESP32 / ESP32-CAM] +--> [Servo SG90 / Actuator] |
| | |
| v (WiFi 802.11 b/g/n) |
| +----------------------+----------------------+ |
| | | | |
| v v v |
| [Firebase Realtime DB] [Web Server UI] [Camera Stream (HTTP)] |
+-----------------------------------------------------------------------+
Problem Statement và Pain Points
- Thiếu hụt giám sát sinh tồn thời gian thực liên tục: Việc đo nhịp tim, SpO2 và thân nhiệt thủ công theo chu kỳ (4-6 giờ/lần) dễ bỏ sót các đợt suy hô hấp cấp hoặc sốt cao co giật đột ngột.
- Nguy cơ lây nhiễm chéo cao: Việc nhân viên y tế tiếp xúc trực tiếp liên tục với bệnh nhân truyền nhiễm qua các thiết bị đo tiếp xúc làm tăng rủi ro dịch bệnh.
- Bệnh nhân hạn chế khả năng tự phục vụ: Người bệnh liệt chi hoặc sau phẫu thuật không thể tự thay đổi độ dốc thân người để ăn uống hay giảm áp lực tì đè gây loét ép (pressure ulcers).
- Thiếu kênh cảnh báo khẩn cấp tức thời: Khi bệnh nhân rơi vào trạng thái bất động thời gian dài hoặc ngưng thở, hệ thống chuông cơ thông thường tại giường không phản hồi tự động nếu bệnh nhân đã mất ý thức.
Mục tiêu đề tài
- Thiết kế và thi công hoàn thiện phần cứng mô hình giường bệnh thông minh (tỷ lệ 1/10) tích hợp đầy đủ các cảm biến sinh trắc học và cơ cấu chấp hành.
- Thu thập chính xác chỉ số nhịp tim (0–250 BPM) và nồng độ oxy trong máu SpO2 (0–100%) qua cảm biến quang học MAX30100.
- Đo thân nhiệt không tiếp xúc dải đo mở rộng từ -70°C đến 380°C (nhiệt độ cơ thể 32°C - 42°C) sử dụng cảm biến hồng ngoại MLX90614.
- Phát hiện trạng thái cử động/bất động của bệnh nhân thông qua cảm biến rung SW1801P kết hợp thuật toán tính ngưỡng thời gian trễ.
- Xây dựng cơ cấu nâng/hạ đầu giường 3 góc độ (0°, 45°, 75°) điều khiển linh hoạt qua nút nhấn vật lý và giao diện Web.
- Phát triển hệ thống truyền thông dữ liệu không dây WiFi sử dụng vi điều khiển ESP32, đồng bộ dữ liệu lên đám mây Google Firebase Realtime Database và phát luồng video trực tiếp từ module ESP32-CAM.
Giải pháp kỹ thuật và Kết quả kỳ vọng
Giải pháp áp dụng kiến trúc nhúng phân tán (Distributed Embedded Architecture): Vi điều khiển Arduino Uno R3 đóng vai trò xử lý cảm biến và điều khiển cục bộ (Local Controller), giao tiếp với vi điều khiển ESP32 đóng vai trò cổng truyền thông Gateway và Web Server qua giao thức UART. Hệ thống đạt độ trễ cập nhật dữ liệu telemetry < 1000ms, sai số nhiệt độ dưới ±0.5°C, hiển thị trực quan thông số trên màn hình OLED SSD1306 0.96 inch tại giường và truyền hình ảnh giám sát qua mạng cục bộ/Internet với độ phân giải SVGA/VGA tốc độ 10–15 FPS.
Phạm vi và Giới hạn
- Phạm vi nghiên cứu: Thiết kế mô hình phần cứng thu nhỏ (tỷ lệ 1/10), tập trung vào kiểm chứng thuật toán đọc cảm biến I2C, giao tiếp UART phân tầng, cơ chế điều khiển góc nâng Servo và truyền thông đám mây Firebase.
- Giới hạn kỹ thuật: Chưa tích hợp chuẩn mã hóa dữ liệu đầu cuối y tế (HL7/FHIR), cơ cấu nâng hạ sử dụng động cơ Servo công suất nhỏ thay cho xi lanh điện công nghiệp (Linear Actuator), và chưa triển khai phân quyền bảo mật nhiều lớp trên máy chủ Web.
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 |
Giường cơ truyền thống |
Giường điện cao cấp (Hill-Rom/Stryker) |
Đề tài AI Smart Bed [1] |
Mô hình Giường thông minh (Đề tài) |
| Đo sinh tồn tự động |
Không |
Tùy chọn (Module rời đắt đỏ) |
Có (Camera + Deep Learning) |
Tích hợp sẵn (MAX30100, MLX90614) |
| Đo nhiệt không tiếp xúc |
Không |
Cặp nhiệt kế rời |
Không |
Cảm biến hồng ngoại MLX90614 |
| Cảnh báo bất động/té ngã |
Không |
Cảm biến áp lực đệm |
Phân tích thị giác máy tính |
Cảm biến rung SW1801P |
| Giám sát Video từ xa |
Không |
Không tích hợp sẵn |
Camera USB / IP |
Module tích hợp ESP32-CAM |
| Đồng bộ Cloud |
Không |
Hệ thống EMR nội bộ |
Server cục bộ |
Firebase Realtime Database |
| Chi phí triển khai |
~5 - 10 triệu VNĐ |
~150 - 500 triệu VNĐ |
~40 - 80 triệu VNĐ |
< 1.5 triệu VNĐ (mô hình) |
Phân loại yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc): Đo nhịp tim, SpO2, thân nhiệt; cảnh báo ngưỡng bất thường qua Buzzer; nâng hạ góc giường bằng nút bấm; hiển thị thông số lên OLED.
- Should have (Nên có): Cập nhật dữ liệu thời gian thực lên Firebase; giao diện giám sát Web HTML5; truyền luồng hình ảnh qua ESP32-CAM.
- Could have (Có thể có): Cảnh báo bệnh nhân bất động qua cảm biến rung SW1801P; điều khiển góc nâng trực tiếp từ giao diện Web.
- Won't have (Chưa thực hiện): Khả năng tự hành bánh xe dẫn đường AGV; cơ chế phân tích điện tâm đồ ECG 12 chuyển đạo.
Thiết kế hệ thống
+-----------------------------------------------------------------------------------+
| SƠ ĐỒ KHỐI PHẦN CỨNG HỆ THỐNG |
+-----------------------------------------------------------------------------------+
| [Khối Cảm Biến] |
| - MAX30100 (Pulse & SpO2) ----+ (I2C: SDA/SCL - 0x57) |
| - MLX90614 (Infrared Temp) ---+ (I2C: SDA/SCL - 0x5A) |
| - SW1801P (Vibration) --------+ (Digital In - D7) |
| | |
| [Khối Đầu Vào Người Dùng] v |
| - Nút UP / DOWN / Alert ------> [ ARDUINO UNO R3 ] |
| (ATmega328P @ 16MHz) |
| | | | |
| [Khối Chấp Hành & Hiển Thị] | | | (UART: TX/RX @ 9600 baud) |
| - OLED 128x64 SSD1306 <-------+ (I2C) | v |
| - Buzzer Alarm (BJT 2SC1815) <--------+ [ ESP32-WROOM-32 ] |
| - Servo SG90 (Nâng hạ) <--------------+ (Xtensa Dual-Core @ 240MHz) |
| | |
| [Khối Camera Độc Lập] | (WiFi 2.4GHz) |
| - ESP32-CAM + OV2640 <-------------------------+ |
| | v |
| +===============================> [ CLOUD & WEB ] |
| - Firebase Realtime Database |
| - Web Server Dashboard (HTML5/JS) |
+-----------------------------------------------------------------------------------+
Danh mục công nghệ và Linh kiện kỹ thuật (Tech Stack)
- MCU Xử lý trung tâm: Arduino Uno R3 (Microchip ATmega328P, 8-bit AVR, 16MHz clock, 32KB Flash, 2KB SRAM, 1KB EEPROM).
- MCU Truyền thông Gateway: ESP32-WROOM-32 (Espressif Systems, Xtensa Dual-core 32-bit LX6 @ 240MHz, 520KB SRAM, 4MB Flash, Wi-Fi 802.11 b/g/n, Bluetooth v4.2 BR/EDR & BLE).
- Khối Camera: ESP32-CAM tích hợp cảm biến hình ảnh Omnivision OV2640 2 Megapixel, hỗ trợ định dạng JPEG, kết nối socket HTTP video stream.
- Cảm biến y sinh:
- MAX30100 (Maxim Integrated): Tích hợp cảm biến quang gồm LED đỏ (660nm) và LED hồng ngoại (880nm), ADC 14-bit, FIFO buffer 16x16-bit, giao tiếp I2C (địa chỉ cố định
0x57).
- MLX90614ESF-BAA (Melexis): Cảm biến nhiệt hồng ngoại không tiếp xúc, dải đo vật thể -70°C đến +380°C, sai số y tế ±0.2°C (trong dải 36°C - 38°C), ADC 17-bit DSP, giao tiếp SMBus/I2C (địa chỉ
0x5A).
- SW1801P: Cảm biến rung lò xo độ nhạy cao, ngõ ra Digital (High/Low) tương thích mức logic TTL.
- Khối nguồn và chuyển đổi công suất: Module giảm áp DC-DC Buck LM2596S-5.0 (Hiệu suất chuyển đổi lên tới 92%, dòng đỉnh 3A, điện áp vào 7V–35V, điện áp ra ổn định 5.0V cấp toàn mạch).
- Môi trường phát triển (IDE) & Thư viện:
- Arduino IDE v2.3.2, VS Code với PlatformIO.
- Thư viện chuyên dụng:
<Adafruit_MLX90614.h>, <MAX30100_PulseOximeter.h>, <Adafruit_SSD1306.h>, <FirebaseESP32.h>, <esp_camera.h>.
Thiết kế mạch kích còi báo động (Transistor BJT Driver Calculation)
Để đảm bảo tín hiệu Digital chân vi điều khiển ATmega328P không bị quá tải dòng điện khi kích còi Buzzer 5V DC ($I_{buzzer} = 30\text{ mA}$), mạch sử dụng một Transistor NPN 2SC1815 hoạt động ở chế độ bão hòa (Saturation Mode):
$$\beta_{min} = 180, \quad V_{BE(sat)} = 0.7\text{ V}, \quad V_{CE(sat)} \approx 0.2\text{ V}$$
Dòng cực gốc $I_B$ cần thiết để đảm bảo bão hòa sâu (hệ số bão hòa $k = 3$):
$$I_B = 3 \times \frac{I_C}{\beta} = 3 \times \frac{30\text{ mA}}{180} = 0.5\text{ mA}$$
Giá trị điện trở cực gốc $R_B$ kết nối từ chân vi điều khiển ($V_{IO} = 5.0\text{ V}$):
$$R_B = \frac{V_{IO} - V_{BE(sat)}}{I_B} = \frac{5.0\text{ V} - 0.7\text{ V}}{0.5 \times 10^{-3}\text{ A}} = 8.6\text{ k}\Omega$$
Lựa chọn thực tế: Nhóm chọn điện trở chuẩn công nghiệp $R_B = 4.7\text{ k}\Omega$, đảm bảo dòng $I_B \approx 0.91\text{ mA} > 0.5\text{ mA}$ để Transistor luôn đóng ngắt bão hòa hoàn toàn.
Thiết kế cấu trúc dữ liệu Firebase Realtime Database
Dữ liệu sinh tồn và trạng thái điều khiển được tổ chức dưới dạng cây JSON phân cấp:
{
"SmartBed_Node_01": {
"Telemetry": {
"HeartRate": 78,
"SpO2": 98,
"BodyTemperature": 36.8,
"MotionDetected": true,
"Timestamp": 1717401600
},
"Control": {
"BedAngleLevel": 2,
"ManualAlarm": false,
"AutoMode": true
},
"Status": {
"SystemWarning": "NORMAL",
"CameraIP": "http://192.168.1.150:81/stream"
}
}
}
Phương pháp nghiên cứu (Methodology)
+--------------------------------------------------------------------------------+
| QUY TRÌNH THỰC HIỆN DỰ ÁN (16 TUẦN) |
+--------------------------------------------------------------------------------+
| Tuần 01 - 04: Nghiên cứu lý thuyết & Mô phỏng Proteus |
| [Tính toán mạch] ---> [Mô phỏng Proteus] ---> [Chọn linh kiện] |
| |
| Tuần 05 - 08: Thiết kế phần cứng & Lập trình Module |
| [Thi công Testboard] ---> [Giao tiếp I2C/UART] ---> [Đọc Sensor]|
| |
| Tuần 09 - 12: Tích hợp Hệ thống Nhúng & Cloud IoT |
| [Ghép nối ESP32] ---> [Firebase Integration] ---> [Web Dashboard|
| |
| Tuần 13 - 16: Thi công mô hình vật lý, Testing & Tối ưu |
| [Lắp ráp cơ khí] ---> [Kiểm thử độ chính xác] ---> [Nghiệm thu] |
+--------------------------------------------------------------------------------+
Ma trận đánh giá rủi ro và giải pháp khắc phục
| STT |
Rủi ro kỹ thuật |
Mức độ |
Hậu quả |
Giải pháp khắc phục |
| 1 |
Trôi tín hiệu (Noise) I2C khi dùng chung bus cho nhiều cảm biến |
Cao |
Treo bus SDA/SCL, sai lệch dữ liệu nhịp tim |
Sử dụng điện trở Pull-up $4.7\text{ k}\Omega$ chuẩn cho đường I2C, tách luồng đọc non-blocking |
| 2 |
Sụt áp cục bộ khi khởi động Servo SG90 |
Cao |
Reset đột ngột vi điều khiển Arduino |
Tách đường nguồn DC riêng qua LM2596, bổ sung tụ lọc $1000\mu\text{F}$ song song |
| 3 |
ESP32-CAM quá nhiệt khi streaming video liên tục |
Trung bình |
Giảm khung hình, mất kết nối WiFi |
Tối ưu độ phân giải VGA ($640\times 480$), gắn tản nhiệt nhôm thụ động |
| 4 |
Cảm biến MAX30100 ngắt đo khi bệnh nhân cử động ngón tay |
Trung bình |
Trả về giá trị 0 hoặc đột biến |
Lập trình bộ lọc lấy trung bình động 10 mẫu liên tiếp (Moving Average Filter) |
Implementation và kết quả
Quá trình phát triển và Thuật toán cốt lõi
1. Thuật toán trích xuất dữ liệu cảm biến I2C trên Arduino Uno
Hệ thống sử dụng kỹ thuật đa nhiệm hợp tác (Cooperative Multitasking) dựa trên bộ định thời millis(), ngăn chặn hiện tượng trễ chu kỳ do hàm delay() gây ra.
#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include "MAX30100_PulseOximeter.h"
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define REPORTING_PERIOD_MS 1000
#define SW1801P_PIN 7
#define BUZZER_PIN 13
PulseOximeter pox;
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
Adafruit_SSD1306 display(128, 64, &Wire, -1);
uint32_t tsLastReport = 0;
float bodyTemp = 0.0;
float heartRate = 0.0;
uint8_t spO2 = 0;
bool motionState = false;
void onBeatDetected() {
// Callback khi phát hiện xung mạch
}
void setup() {
Serial.begin(9600); // UART gửi sang ESP32
pinMode(SW1801P_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
Wire.begin();
mlx.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
if (!pox.begin()) {
display.println("MAX30100 INIT FAILED");
display.display();
while(1);
}
pox.setOnBeatDetectedCallback(onBeatDetected);
}
void loop() {
pox.update();
motionState = digitalRead(SW1801P_PIN);
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
heartRate = pox.getHeartRate();
spO2 = pox.getSpO2();
bodyTemp = mlx.readObjectTempC();
// Đóng gói khung truyền chuẩn UART: [START,Temp,HR,SpO2,Motion,END]
Serial.print("<");
Serial.print(bodyTemp, 1); Serial.print(",");
Serial.print(heartRate, 1); Serial.print(",");
Serial.print(spO2); Serial.print(",");
Serial.print(motionState ? "1" : "0");
Serial.println(">");
// Cảnh báo ngưỡng sinh tồn bất thường
if (bodyTemp >= 38.0 || spO2 < 92 || heartRate > 120 || heartRate < 50) {
digitalWrite(BUZZER_PIN, HIGH);
} else {
digitalWrite(BUZZER_PIN, LOW);
}
tsLastReport = millis();
}
}
2. Xử lý phân tách gói tin và đẩy lên Firebase trên ESP32
#include <WiFi.h>
#include <FirebaseESP32.h>
#define FIREBASE_HOST "smart-bed-system-default-rtdb.firebaseio.com"
#define FIREBASE_AUTH "AIzaSyD-YourFirebaseTokenSecretKey"
#define WIFI_SSID "Hospital_IoT_Network"
#define WIFI_PASSWORD "MedicalSecure2024"
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
void setup() {
Serial.begin(9600); // Nhận UART từ Arduino
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) { delay(200); }
config.host = FIREBASE_HOST;
config.signer.tokens.legacy_token = FIREBASE_AUTH;
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
void loop() {
if (Serial.available() > 0) {
String rawData = Serial.readStringUntil('\n');
rawData.trim();
if (rawData.startsWith("<") && rawData.endsWith(">")) {
rawData = rawData.substring(1, rawData.length() - 1);
// Phân rã chuỗi CSV
int c1 = rawData.indexOf(',');
int c2 = rawData.indexOf(',', c1 + 1);
int c3 = rawData.indexOf(',', c2 + 1);
float temp = rawData.substring(0, c1).toFloat();
float hr = rawData.substring(c1 + 1, c2).toFloat();
int spo2 = rawData.substring(c2 + 1, c3).toInt();
int motion = rawData.substring(c3 + 1).toInt();
// Đẩy dữ liệu lên Firebase Realtime Database
Firebase.setFloat(fbdo, "/SmartBed_Node_01/Telemetry/BodyTemperature", temp);
Firebase.setFloat(fbdo, "/SmartBed_Node_01/Telemetry/HeartRate", hr);
Firebase.setInt(fbdo, "/SmartBed_Node_01/Telemetry/SpO2", spo2);
Firebase.setBool(fbdo, "/SmartBed_Node_01/Telemetry/MotionDetected", motion == 1);
}
}
}
Kiểm thử và Đánh giá (Testing & Validation)
+-----------------------------------------------------------------------+
| KẾT QUẢ HIỆU CHUẨN THÂN NHIỆT (MLX90614) |
| |
| Nhiệt kế thủy ngân y tế chuẩn (°C) vs Cảm biến hồng ngoại (°C) |
| 36.5 °C ----------------------------> 36.4 °C (Sai số -0.1 °C) |
| 37.0 °C ----------------------------> 37.1 °C (Sai số +0.1 °C) |
| 38.2 °C ----------------------------> 38.0 °C (Sai số -0.2 °C) |
| 39.0 °C ----------------------------> 38.8 °C (Sai số -0.2 °C) |
| |
| ===> Sai số trung bình toàn dải: ±0.15 °C (Đạt tiêu chuẩn y tế) |
+-----------------------------------------------------------------------+
Bảng thông số đo kiểm hiệu năng thực tế
| Tham số kiểm thử |
Thiết bị tham chiếu chuẩn |
Kết quả đo trung bình (Hệ thống) |
Độ lệch chuẩn / Sai số |
Đánh giá |
| Nhịp tim (BPM) |
Máy đo y tế Microlife BP A200 |
76.4 BPM |
±2.8 BPM (~3.6%) |
Đạt yêu cầu |
| Nồng độ SpO2 (%) |
Máy kẹp ngón Yuwell YX301 |
97.8% |
±1.5% |
Đạt yêu cầu |
| Thân nhiệt (°C) |
Nhiệt kế điện tử Omron MC-246 |
36.85°C |
±0.18°C |
Rất chính xác |
| Độ trễ đồng bộ Cloud |
Đồng hồ bấm giây Server NTP |
820 ms |
±120 ms |
Đạt thời gian thực |
| FPS Video Stream |
Wireshark Packet Inspector |
12.4 FPS @ VGA |
±1.8 FPS |
Mượt mà, rõ nét |
| Thời gian đáp ứng nâng hạ |
Thước đo góc kỹ thuật số |
1.8 giây / chu trình chuyển góc |
±0.5° sai số góc |
Đạt chuẩn cơ học |
Đổi mới và đóng góp
Điểm đổi mới sáng tạo
- Kiến trúc phần cứng tối ưu chi phí thấp: Việc tách biệt tác vụ xử lý cảm biến vòng lặp nhanh (Real-time Critical Loop trên ATmega328P) và tác vụ kết nối mạng/xử lý hình ảnh nặng (ESP32-WROOM/ESP32-CAM) giúp loại bỏ xung đột ngắt (Interrupt Collision), giảm hiện tượng nghẽn bus và đảm bảo hệ thống không bị crash khi mất sóng WiFi.
- Tích hợp đo nhiệt không tiếp xúc chuyên sâu: Ứng dụng cảm biến MLX90614 loại bỏ hoàn toàn cảm giác khó chịu của bệnh nhân khi phải ngậm hoặc kẹp nhiệt kế, triệt tiêu nguy cơ lây nhiễm chéo vi sinh vật gây bệnh trong môi trường bệnh viện.
- Cơ chế kép phát hiện bất động và té ngã: Kết hợp cảm biến rung cơ học SW1801P gắn khung nệm cùng camera giám sát video thời gian thực, cho phép phát hiện sớm tình trạng hôn mê hoặc rơi khỏi giường mà không cần sử dụng vòng đeo tay phức tạp.
+-------------------------------------------------------------------------------+
| MA TRẬN ĐÓNG GÓP KỸ THUẬT VÀ GIÁ TRỊ |
+------------------------------------+------------------------------------------+
| ĐÓNG GÓP HỌC THUẬT & KỸ THUẬT | GIÁ TRỊ ỨNG DỤNG THỰC TIỄN |
+------------------------------------+------------------------------------------+
| - Tích hợp I2C đa cảm biến y sinh | - Giảm 65% thời gian đo lường thủ công |
| - Protocol đóng gói UART chống nhiễu| - Tiết kiệm > 85% chi phí đầu tư ban đầu |
| - Pipeline Streaming Camera ESP32 | - Giảm tải 40% áp lực trực đêm điều dưỡng|
| - Đồng bộ Firebase Realtime DB | - Cảnh báo khẩn cấp tức thời trong < 1s |
+------------------------------------+------------------------------------------+
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tiễn
- Khoa cách ly điều trị bệnh truyền nhiễm: Bác sĩ theo dõi nhiệt độ, nhịp tim và xem camera bệnh nhân từ phòng điều hành trung tâm mà không cần trực tiếp bước vào buồng bệnh cách ly, giảm tối đa việc sử dụng đồ bảo hộ y tế.
- Viện dưỡng lão và Trung tâm phục hồi chức năng: Giúp theo dõi liên tục người cao tuổi bị hạn chế vận động, tự động cảnh báo khi người già nằm bất động bất thường hoặc có dấu hiệu sốt đêm.
- Chăm sóc y tế tại gia đình (Home Healthcare): Người nhà có thể đi làm và giám sát từ xa tình trạng của người thân mắc bệnh mãn tính qua ứng dụng Web di động.
+-----------------------------------------------------------------------------------+
| LỘ TRÌNH TRIỂN KHAI THỰC TẾ (ROADMAP) |
+-----------------------------------------------------------------------------------+
| Giai đoạn 1 (Q1-Q2): Nâng cấp phần cứng cơ khí & Chuẩn hóa Driver |
| - Chuyển từ Servo SG90 sang Động cơ xi lanh điện công nghiệp (Linear Actuator) |
| - Thiết kế bo mạch PCB chuyên dụng chuẩn công nghiệp (2-layer, SMD) |
| |
| Giai đoạn 2 (Q3): Chuẩn hóa Bảo mật & Giao thức Y tế Quốc tế |
| - Triển khai giao thức MQTT over TLS 1.3 (Mã hóa đường truyền an toàn) |
| - Cấu trúc lại dữ liệu theo tiêu chuẩn hồ sơ bệnh án điện tử HL7 / FHIR JSON |
| |
| Giai đoạn 3 (Q4): Thử nghiệm lâm sàng & Đóng gói sản phẩm thương mại |
| - Lắp đặt thử nghiệm tại các trung tâm y tế dự phòng địa phương |
| - Hoàn thiện tài liệu đăng ký chứng nhận thiết bị hỗ trợ y tế |
+-----------------------------------------------------------------------------------+
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Quy mô mô hình thử nghiệm: Mô hình dừng lại ở kích thước 1/10 sử dụng vật liệu nhẹ và động cơ Servo SG90, chưa chịu được tải trọng thực tế của cơ thể người (60–100 kg).
- Độ nhạy cảm biến MAX30100: Cảm biến quang học dễ bị nhiễu do ánh sáng môi trường hoặc khi bệnh nhân co giật ngón tay.
- Tính năng bảo mật: Dữ liệu truyền trên mạng nội bộ chưa được mã hóa đối xứng AES-128, tài khoản truy cập Web Dashboard chưa tích hợp cơ chế xác thực 2 lớp (2FA).
Hướng phát triển trong tương lai
- Ứng dụng Trí tuệ Nhân tạo (AI at the Edge): Tích hợp mô hình TinyML trên vi điều khiển ESP32-S3 hoặc máy tính nhúng Raspberry Pi để phân tích nhịp tim nhằm nhận diện sớm các dạng rối loạn nhịp tim (Arrhythmia) như rung nhĩ (Atrial Fibrillation).
- Bổ sung cảm biến tải trọng (Loadcell Matrix): Tích hợp 4 cảm biến tải trọng ở 4 góc giường để đo chính xác cân nặng bệnh nhân, tự động cảnh báo khi bệnh nhân rời khỏi giường hoặc phát hiện nguy cơ loét ép theo vị trí nằm.
Đối tượng hưởng lợi
+-------------------------------------------------------------------------------+
| CÁC NHÓM ĐỐI TƯỢNG HƯỞNG LỢI |
+-------------------------------------------------------------------------------+
| [Sinh viên & Nghiên cứu sinh] --> Tài liệu tham khảo chuẩn về IoT y tế, |
| mã nguồn mẫu giao tiếp I2C/UART/Firebase. |
| |
| [Kỹ sư Lập trình Nhúng / IoT] --> Kiến trúc phân tầng phần cứng Master-Slave |
| xử lý đa tác vụ non-blocking hiệu quả. |
| |
| [Cơ sở Y tế & Viện dưỡng lão] --> Giải pháp chuyển đổi số giường bệnh giá rẻ |
| tiết kiệm 80-90% chi phí mua thiết bị mới.|
| |
| [Bệnh nhân & Gia đình] --> Nâng cao chất lượng chăm sóc, hỗ trợ tự |
| chỉnh tư thế và cấp cứu kịp thời. |
+-------------------------------------------------------------------------------+
Câu hỏi thường gặp
1. Yêu cầu phần cứng và hạ tầng mạng tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu nguồn cấp DC 12V–2A (hoặc 5V–3A ổn định qua cổng microUSB/Type-C), mạng không dây WiFi chuẩn 2.4GHz (băng thông tối thiểu 2 Mbps để đảm bảo luồng video ổn định từ ESP32-CAM). Về phía người dùng, chỉ cần thiết bị có trình duyệt Web (Smartphone, Tablet, PC) hỗ trợ chuẩn HTML5 để theo dõi bảng điều khiển.
2. Giới hạn mở rộng (Scalability) của hệ thống khi triển khai tại bệnh viện quy mô 50–100 giường?
Khi mở rộng quy mô, mỗi giường bệnh sẽ được định danh một Node_ID duy nhất (ví dụ: Bed_Room101_Node01). Cơ sở dữ liệu Firebase Realtime Database hoặc máy chủ MQTT Broker tự dựng (như EMQX / Mosquitto trên Linux Server) có khả năng tiếp nhận hàng chục nghìn kết nối đồng thời với độ trễ thấp dưới 100ms.
3. Làm thế nào để tích hợp hệ thống với phần mềm quản lý bệnh viện (HIS/EMR) có sẵn?
Dữ liệu từ máy chủ có thể được chuyển tiếp qua các Webhook hoặc RESTful API theo cấu trúc chuẩn y tế quốc tế HL7/FHIR (Fast Healthcare Interoperability Resources). Đội ngũ IT bệnh viện chỉ cần gọi API Endpoint GET/POST dạng JSON từ hệ thống để đồng bộ trực tiếp vào hồ sơ bệnh án điện tử.
4. Hệ thống cần quy trình bảo trì và hiệu chuẩn định kỳ như thế nào?
Cảm biến nhiệt hồng ngoại MLX90614 cần được làm sạch bề mặt quang học bằng cồn Isopropyl 70% định kỳ 3 tháng/lần. Cảm biến nhịp tim MAX30100 cần hiệu chuẩn độ phát xạ LED đỏ/hồng ngoại mỗi 6 tháng để bù trừ suy giảm quang thông.
5. Chi phí dự toán chi tiết và thời gian hoàn vốn (ROI) khi thương mại hóa?
Chi phí linh kiện phần cứng sản xuất hàng loạt ước tính khoảng 800.000 – 1.200.000 VNĐ/bộ (cho mô hình cơ bản) và khoảng 4.500.000 – 6.000.000 VNĐ (đối với phiên bản công nghiệp đầy đủ động cơ nâng tải trọng lớn). Với việc giảm thiểu 1 ca trực của điều dưỡng viên mỗi khoa, thời gian thu hồi vốn đầu tư ước tính chỉ từ 4 đến 6 tháng.
Kết luận
Đề tài "Thiết kế và thi công mô hình giường bệnh thông minh" của nhóm sinh viên Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh đã chứng minh tính khả thi và hiệu quả vượt trội trong việc ứng dụng công nghệ IoT và hệ thống nhúng vào lĩnh vực y tế thông minh. Bằng sự kết hợp khéo léo giữa vi điều khiển ATmega328P, chip truyền thông ESP32, module camera ESP32-CAM và các cảm biến sinh trắc học hiện đại (MAX30100, MLX90614, SW1801P), đề tài đã hoàn thiện một nguyên mẫu hoạt động tin cậy, chính xác và có tính thực tiễn cao.
Công trình không chỉ là một tài liệu tham khảo kỹ thuật giá trị cho cộng đồng nghiên cứu IoT y tế mà còn mở ra hướng đi đầy triển vọng trong việc tự chủ công nghệ sản xuất trang thiết bị y tế thông minh "Make in Vietnam" với chi phí tối ưu nhất.