Giới thiệu dự án

Trong bối cảnh y tế dự phòng và kiểm soát dịch bệnh toàn cầu sau các đợt bùng phát của SARS, Ebola và đặc biệt là đại dịch COVID-19, việc sàng lọc thân nhiệt đóng vai trò then chốt trong công tác phát hiện sớm các ca nhiễm trùng hô hấp cấp. Theo Tổ chức Y tế Thế giới (WHO) và Trung tâm Kiểm soát và Phòng ngừa Dịch bệnh (CDC), triệu chứng sốt (nhiệt độ cơ thể $> 37.5^\circ\text{C}$) xuất hiện ở hơn $87.9%$ bệnh nhân nhiễm virus đường hô hấp giai đoạn khởi phát. Tuy nhiên, quy trình kiểm tra thân nhiệt truyền thống tại các bệnh viện, trường học và địa điểm công cộng đang bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Nguy cơ lây nhiễm chéo cao: Các thiết bị đo tiếp xúc trực tiếp (nhiệt kế thủy ngân, kẹp nách điện tử) đòi hỏi sát khuẩn liên tục; nếu quy trình khử khuẩn không đạt chuẩn, thiết bị trở thành nguồn lây mầm bệnh trực tiếp giữa người với người.
  • Thời gian đo kéo dài và gây quá tải: Nhiệt kế thủy ngân mất từ $3 - 5$ phút ($180 - 300$ giây) cho một lần đo; nhiệt kế điện tử tiếp xúc mất $30 - 60$ giây. Thời gian này bất khả thi khi phải sàng lọc hàng nghìn lượt người tại các cửa kiểm soát.
  • Rủi ro an toàn sinh học: Nhiệt kế thủy ngân chứa kim loại nặng độc hại, tiềm ẩn nguy cơ vỡ vụn khi sử dụng cho trẻ nhỏ hoặc bệnh nhân co giật, giải phóng hơi thủy ngân gây ngộ độc đường hô hấp.
  • Thiếu khả năng tự động hóa và lưu trữ dữ liệu: Các loại súng đo hồng ngoại cầm tay độc lập (như Omron MC-720, Microlife NC200) chỉ hiển thị kết quả tại chỗ, yêu cầu nhân viên ghi chép thủ công bằng sổ sách hoặc nhập liệu Excel, dẫn đến sai lệch dữ liệu ($15 - 20%$ sai sót ghi nhận) và không hỗ trợ truy vết dịch tễ theo thời gian thực (Real-time contact tracing).

Nhằm giải quyết triệt để các tồn tại trên, đề tài "Thiết kế và thi công thiết bị đo nhiệt độ cơ thể con người bằng hồng ngoại sử dụng công nghệ IoTs" (Đồ án tốt nghiệp ngành Kỹ thuật Y sinh – Trường Đại học Sư phạm Kỹ thuật TP.HCM, thực hiện bởi sinh viên Vũ Thị Ngọc Ánh và Nguyễn Hữu Nghị dưới sự hướng dẫn của ThS. Võ Đức Dũng) đã nghiên cứu, chế tạo thành công một hệ thống đo thân nhiệt không tiếp xúc tích hợp mạng vạn vật kết nối (IoT).

graph LR
    A["Bệnh nhân / Người đo (2-4cm)"] -->|Bức xạ IR 5.5-14µm| B["Cảm biến MLX90614 (I2C)"]
    C["Remote Mini (Mã ID)"] -->|Sóng IR 38kHz| D["Module Thu IR KY-022 (D7)"]
    B --> E["Vi điều khiển ESP8266 NodeMCU"]
    D --> E
    E -->|I2C Data| F["Màn hình OLED SSD1306 (128x64)"]
    E -->|UART 9600bps| G["Module MP3-TF-16P + Loa 3W"]
    E -->|GPIO Logic| H["Còi Buzzer + LED Báo động (>37.5°C)"]
    E -->|Wi-Fi 802.11 b/g/n / HTTP POST| I["Web Server / Database MySQL"]

Mục tiêu nghiên cứu cụ thể

  1. Thiết kế phần cứng hệ thống đo nhiệt độ không tiếp xúc sử dụng cảm biến nhiệt hồng ngoại y tế chuyên dụng MLX90614, đạt độ phân giải đo lường $0.02^\circ\text{C}$ và sai số $\le \pm 0.2^\circ\text{C}$ trong dải nhiệt độ cơ thể $35.0^\circ\text{C} - 42.0^\circ\text{C}$.
  2. Xây dựng hệ thống phản hồi đa kênh: Trực quan hóa kết quả trên màn hình OLED SSD1306 ($0.96\text{ inch}$), thông báo giọng nói tiếng Việt thời gian thực qua module MP3-TF-16P và cảnh báo quang - thanh (LED đỏ/Buzzer) khi thân nhiệt vượt ngưỡng $37.5^\circ\text{C}$.
  3. Tích hợp bộ nhập ID bệnh nhân/người dùng từ xa thông qua giao tiếp hồng ngoại 38kHz (Module KY-022 kết hợp Remote mini mã hóa giao thức NEC).
  4. Lập trình khối xử lý trung tâm trên nền vi điều khiển ESP8266 NodeMCU V1.0, kết nối Wi-Fi chuẩn IEEE 802.11 b/g/n để truyền dữ liệu định dạng JSON/HTTP POST lên Web Server PHP/MySQL.
  5. Thi công đóng gói mô hình vật lý hoàn chỉnh dạng cầm tay/đặt bàn nhỏ gọn (kích thước $50 \times 160 \times 50\text{ mm}$, trọng lượng $\approx 200\text{g}$ bao gồm pin nguồn), tối ưu hóa luồng làm việc tại các chốt kiểm soát dịch.

Phạm vi và giới hạn kỹ thuật

  • Khoảng cách đo tối ưu: $2\text{ cm} - 4\text{ cm}$ tính từ bề mặt trán/cổ tay đến đầu thu cảm biến, đảm bảo trường đo (Field of View - FOV) gom đúng $50%$ năng lượng bức xạ bề mặt da mà không bị ảnh hưởng bởi nhiệt độ môi trường xung quanh.
  • Dải nhiệt độ đo lường: $35.0^\circ\text{C} - 42.0^\circ\text{C}$ (dải nhiệt độ sinh lý người).
  • Nguồn cấp: Pin khối $9\text{V}$ qua IC hạ áp tuyến tính AMS1117-3.3V hoặc cấp nguồn trực tiếp qua cổng Micro USB $5\text{V}$.
  • Hạ tầng mạng: Hoạt động trên băng tần Wi-Fi $2.4\text{ GHz}$ với giao thức bảo mật WPA/WPA2 Personal.

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

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

Tiêu chí kỹ thuật Nhiệt kế thủy ngân truyền thống Súng đo nhiệt hồng ngoại cầm tay (Omron MC-720) Hệ thống IoT trong đề tài
Phương thức tiếp xúc Tiếp xúc trực tiếp (nách, miệng) Không tiếp xúc ($1 - 3\text{ cm}$) Không tiếp xúc ($2 - 4\text{ cm}$)
Thời gian đáp ứng $180 - 300\text{ giây}$ ($3 - 5\text{ phút}$) $1.0\text{ giây}$ $1.0 - 1.5\text{ giây}$
Kênh thông báo kết quả Vạch chia cơ học Màn hình LCD đơn sắc Màn hình OLED + Loa phát âm thanh + LED/Buzzer
Nhập mã định danh (ID) Không hỗ trợ Không hỗ trợ Remote IR 38kHz (Giao thức NEC)
Kết nối mạng & Lưu trữ Ghi sổ thủ công Không có (Lưu cục bộ 25 bộ nhớ) Wi-Fi TCP/IP $\rightarrow$ Web Server PHP/MySQL
Nguy cơ lây nhiễm chéo Rất cao ($100%$ tiếp xúc) Trung bình (cầm gần) Triệt tiêu ($0%$ tiếp xúc trực tiếp)
Chi phí chế tạo phần cứng Thấp ($30.000 - 50.000\text{ VNĐ}$) Cao ($800.000 - 1.200.000\text{ VNĐ}$) Tối ưu ($350.000 - 450.000\text{ VNĐ}$)

Ma trận yêu cầu hệ thống (MoSCoW)

  • Must-Have (Bắt buộc): Đo thân nhiệt không tiếp xúc bằng hồng ngoại; hiển thị kết quả chính xác trên OLED; cảnh báo khi $T > 37.5^\circ\text{C}$; truyền dữ liệu thời gian thực lên database qua Wi-Fi.
  • Should-Have (Nên có): Phát âm thanh giọng nói tiếng Việt đọc rõ giá trị nhiệt độ; nhập mã số ID sinh viên/bệnh nhân bằng Remote mini; giao diện web quản trị hiển thị dạng bảng và biểu đồ.
  • Could-Have (Có thể mở rộng): Tích hợp cảm biến tiệm cận siêu âm HC-SR04 tự động kích hoạt đo khi phát hiện đối tượng trong cự ly $< 4\text{ cm}$; lưu cache dữ liệu vào bộ nhớ Flash SPIFFS khi mất mạng Wi-Fi.
  • Won't-Have (Không thực hiện trong giai đoạn này): Nhận diện khuôn mặt bằng camera AI; tích hợp module 4G/LTE độc lập.

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm 5 khối chức năng chính tương tác chặt chẽ qua các chuẩn truyền thông công nghiệp:

classDiagram
    class Khối_Ngoại_Vi {
        +Remote Mini IR (20 phím)
        +Module Thu IR KY-022 (VS1838B)
        +Giao thức NEC 38kHz
    }
    class Khối_Cảm_Biến {
        +MLX90614ESF-BAA / DCI
        +ADC 17-bit + DSP ASSP MLX90302
        +Giao tiếp I2C (SDA, SCL)
    }
    class Khối_Xử_Lý_Trung_Tâm {
        +ESP8266 NodeMCU V1.0 (ESP-12E)
        +CPU Tensilica L106 32-bit 80MHz
        +Wi-Fi 802.11 b/g/n 2.4GHz
        +Flash 4MB, SRAM 80KB
    }
    class Khối_Hiển_Thị_Âm_Thanh {
        +OLED SSD1306 0.96 inch (I2C)
        +MP3-TF-16P (UART 9600bps)
        +Loa công suất 3W / 8 Ohm
        +LED Đỏ + Còi Buzzer 5V
    }
    class Khối_Web_Server {
        +Apache 2.4 / Nginx
        +PHP 7.4 backend API
        +Database MySQL 5.7 / 8.0
        +Giao diện HTML5 / CSS3 Responsive
    }

    Khối_Ngoại_Vi --> Khối_Xử_Lý_Trung_Tâm : Tín hiệu Digital (GPIO13/D7)
    Khối_Cảm_Biến --> Khối_Xử_Lý_Trung_Tâm : I2C Bus (GPIO4/D2, GPIO5/D1)
    Khối_Xử_Lý_Trung_Tâm --> Khối_Hiển_Thị_Âm_Thanh : I2C & UART (TX/RX)
    Khối_Xử_Lý_Trung_Tâm --> Khối_Web_Server : HTTP POST (Wi-Fi 2.4GHz)

Ngăn xếp công nghệ (Technology Stack)

  • Vi điều khiển trung tâm: NodeMCU ESP8266 V1.0 (ESP-12E Module), vi xử lý Tensilica Xtensa Dual-Core 32-bit L106 tốc độ $80\text{ MHz}$, bộ nhớ Flash $4\text{ MB}$, tích hợp giao thức mạng TCP/IP đầy đủ.
  • Cảm biến nhiệt độ: Melexis MLX90614ESF tích hợp cảm biến nhiệt điện trở bức xạ (IR Thermopile detector MLX81101) và chip xử lý tín hiệu chuyên dụng ASSP MLX90302. Bộ lọc số IIR và FIR tích hợp sẵn giúp giảm thiểu độ rộng băng thông nhiễu, xuất dữ liệu qua chuẩn I2C (SMBus tương thích).
  • Khối âm thanh: Module MP3-TF-16P (DFPlayer Mini), DAC $24\text{-bit}$, SNR $85\text{ dB}$, giải mã phần cứng file MP3/WAV lưu trữ trong thẻ MicroSD FAT32, giao tiếp nối tiếp UART với baudrate cố định $9600\text{ bps}$.
  • Khối hiển thị: Màn hình OLED SSD1306 $0.96\text{ inch}$, độ phân giải $128 \times 64\text{ pixels}$, giao tiếp I2C địa chỉ cố định 0x3C.
  • Môi trường phát triển: Arduino IDE v1.8.13, C/C++ cho nhúng, thư viện Adafruit_MLX90614.h, Adafruit_SSD1306.h, IRremoteESP8266.h, ESP8266WiFi.h, ESP8266HTTPClient.h.
  • Hạ tầng Web & Cơ sở dữ liệu: Nền tảng LAMP (Linux, Apache, MySQL, PHP v7.4) triển khai trên máy chủ đám mây 000webhost, giao diện web tùy biến bằng CSS Grid/Flexbox.

Thiết kế cơ sở dữ liệu (Database Schema)

CREATE DATABASE IF NOT EXISTS `iot_temperature_db` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `iot_temperature_db`;

CREATE TABLE `medical_logs` (
    `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    `patient_id` VARCHAR(20) NOT NULL COMMENT 'Mã số bệnh nhân hoặc mã sinh viên',
    `ambient_temp` FLOAT(4,2) NOT NULL COMMENT 'Nhiệt độ môi trường (Ta) đơn vị độ C',
    `object_temp` FLOAT(4,2) NOT NULL COMMENT 'Nhiệt độ cơ thể đo được (To) đơn vị độ C',
    `health_status` ENUM('NORMAL', 'WARNING_FEVER') NOT NULL DEFAULT 'NORMAL',
    `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    INDEX `idx_patient_time` (`patient_id`, `created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Thiết kế giao tiếp API (Backend Endpoint)

  • Endpoint: POST /api/save_temp.php
  • Content-Type: application/x-www-form-urlencoded
  • Request Payload Parameters:
    • patient_id: Chuỗi định danh đối tượng (Ví dụ: 16129004)
    • ambient_temp: Giá trị số thực nhiệt độ môi trường (Ví dụ: 29.50)
    • object_temp: Giá trị số thực nhiệt độ bề mặt trán (Ví dụ: 36.85)
  • Response Format (JSON):
    {
      "status": "success",
      "code": 200,
      "message": "Data recorded successfully",
      "server_time": "2020-08-15 08:30:25"
    }
    

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển tích hợp phần cứng - phần mềm theo mô hình thác nước có kiểm thử vòng lặp (Iterative V-Model) kéo dài 16 tuần:

gantt
    title TIẾN ĐỘ THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (16 TUẦN)
    dateFormat  YYYY-MM-DD
    section Khảo sát & Thiết kế
    Nghiên cứu lý thuyết bức xạ Planck & cảm biến IR :2020-03-02, 21d
    Thiết kế sơ đồ khối và tính toán linh kiện       :2020-03-23, 21d
    section Thi công Phần cứng
    Vẽ mạch in PCB & Mockup vỏ hộp                 :2020-04-13, 21d
    Gia công PCB, hàn linh kiện & Kiểm tra nguồn    :2020-05-04, 14d
    section Lập trình & Web Server
    Viết firmware nhúng ESP8266 & giải thuật IR    :2020-05-18, 14d
    Xây dựng Web Server, Database & Giao diện PHP   :2020-05-25, 14d
    section Kiểm thử & Hoàn thiện
    Hiệu chuẩn cảm biến với máy chuẩn Omron MC-720  :2020-06-08, 14d
    Viết báo cáo tổng kết, poster & bảo vệ         :2020-06-22, 14d

Implementation và kết quả

Quy trình phát triển và chi tiết mã nguồn

Toàn bộ hệ điều khiển nhúng hoạt động dựa trên máy trạng thái hữu hạn (FSM) gồm 4 pha chính: Khởi tạo kết nối $\rightarrow$ Tiếp nhận ID $\rightarrow$ Đo nhiệt độ hồng ngoại $\rightarrow$ Cảnh báo & Đẩy dữ liệu Web.

1. Thuật toán đo và xử lý bù sai lệch nhiệt độ trên ESP8266

Cảm biến MLX90614 tính toán nhiệt độ dựa trên bức xạ hồng ngoại theo định luật Stefan-Boltzmann ($E = \epsilon \sigma T^4$). Tín hiệu điện áp siêu nhỏ từ đầu dò Thermopile được khuếch đại qua bộ tiền khuếch đại độ nhiễu thấp, chuyển đổi số hóa qua bộ $17\text{-bit}$ Sigma-Delta ADC và tính toán trong chip DSP tích hợp ASSP MLX90302.

#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <Adafruit_SSD1306.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <SoftwareSerial.h>

#define OLED_RESET -1
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define BUZZER_PIN 14   // GPIO14 (D5)
#define LED_ALERT 12    // GPIO12 (D6)

Adafruit_MLX90614 mlx = Adafruit_MLX90614();
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
SoftwareSerial mp3Serial(13, 15); // RX=D7, TX=D8

const char* ssid = "Medical_Gateway_AP";
const char* password = "SafeHospitalPassword";
const char* serverUrl = "http://medical-iot-system.000webhostapp.com/api/save_temp.php";

void setup() {
    Serial.begin(115200);
    Wire.begin(4, 5); // SDA=GPIO4 (D2), SCL=GPIO5 (D1)
    
    pinMode(BUZZER_PIN, OUTPUT);
    pinMode(LED_ALERT, OUTPUT);
    digitalWrite(BUZZER_PIN, LOW);
    digitalWrite(LED_ALERT, LOW);

    if (!mlx.begin()) {
        Serial.println("Error connecting to MLX90614 sensor!");
        while (1);
    }
    
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.clearDisplay();
    display.setTextColor(WHITE);
    
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(250);
        display.setCursor(0, 10);
        display.println("Connecting WiFi...");
        display.display();
    }
}

float measureFilteredTemperature(int samples) {
    float sumObjTemp = 0.0;
    for (int i = 0; i < samples; i++) {
        sumObjTemp += mlx.readObjectTempC();
        delay(20); // Lấy mẫu cách nhau 20ms để ổn định bộ lọc số
    }
    return (sumObjTemp / samples);
}

void sendDataToServer(String patientId, float ambientTemp, float objectTemp) {
    if (WiFi.status() == WL_CONNECTED) {
        WiFiClient client;
        HTTPClient http;
        http.begin(client, serverUrl);
        http.addHeader("Content-Type", "application/x-www-form-urlencoded");
        
        String postData = "patient_id=" + patientId + 
                          "&ambient_temp=" + String(ambientTemp, 2) + 
                          "&object_temp=" + String(objectTemp, 2);
        
        int httpCode = http.POST(postData);
        if (httpCode > 0) {
            String payload = http.getString();
            Serial.println("HTTP Response: " + payload);
        }
        http.end();
    }
}

2. Xử lý Backend PHP tiếp nhận và xác thực dữ liệu

<?php
header("Content-Type: application/json; charset=UTF-8");
$servername = "localhost";
$username   = "id123456_admin";
$password   = "SecureDbPass@2020";
$dbname     = "id123456_iot_temp";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    echo json_encode(["status" => "error", "message" => "Database connection failed"]);
    exit();
}

if ($_SERVER["REQUEST_METHOD"] === "POST") {
    $patient_id   = isset($_POST['patient_id']) ? htmlspecialchars(strip_tags($_POST['patient_id'])) : '';
    $ambient_temp = isset($_POST['ambient_temp']) ? floatval($_POST['ambient_temp']) : 0.0;
    $object_temp  = isset($_POST['object_temp']) ? floatval($_POST['object_temp']) : 0.0;

    if (!empty($patient_id) && $object_temp > 30.0 && $object_temp < 45.0) {
        $status = ($object_temp > 37.5) ? 'WARNING_FEVER' : 'NORMAL';
        
        $stmt = $conn->prepare("INSERT INTO medical_logs (patient_id, ambient_temp, object_temp, health_status) VALUES (?, ?, ?, ?)");
        $stmt->bind_param("sdds", $patient_id, $ambient_temp, $object_temp, $status);
        
        if ($stmt->execute()) {
            echo json_encode(["status" => "success", "code" => 200, "message" => "Record created"]);
        } else {
            echo json_encode(["status" => "error", "message" => "Insert execution error"]);
        }
        $stmt->close();
    } else {
        echo json_encode(["status" => "invalid_data", "message" => "Invalid temperature parameters"]);
    }
}
$conn->close();
?>

Thử nghiệm và đánh giá kết quả thực nghiệm

Để đánh giá độ chính xác và tính khả thi của hệ thống, thiết bị đã được tiến hành thử nghiệm đối chiếu trực tiếp với nhiệt kế hồng ngoại y tế Omron Gentle Temp MC-720 (Nhật Bản, đạt chuẩn CE 0197, độ chính xác chuẩn $\pm 0.2^\circ\text{C}$) trên nhóm 10 đối tượng đo độc lập, mỗi đối tượng thực hiện 3 lần lặp lại tại cùng điều kiện nhiệt độ phòng ($28.5^\circ\text{C}$).

Bảng so sánh số liệu đo thực nghiệm giữa thiết bị IoT và thiết bị y tế chuẩn Omron

| Mẫu thử | ID Sinh viên | Nhiệt độ Omron MC-720 ($^\circ\text{C}$) | Nhiệt độ Thiết bị IoT ($^\circ\text{C}$) | Độ lệch tuyệt đối ($|\Delta T|^\circ\text{C}$) | Tình trạng cảnh báo | | :---: | :---: | :---: | :---: | :---: | :---: | | 1 | 16129004 | $36.6$ | $36.55$ | $0.05$ | Bình thường | | 2 | 16129043 | $36.8$ | $36.78$ | $0.02$ | Bình thường | | 3 | 16129011 | $37.0$ | $37.05$ | $0.05$ | Bình thường | | 4 | 16129088 | $36.4$ | $36.40$ | $0.00$ | Bình thường | | 5 | 16129055 | $37.2$ | $37.15$ | $0.05$ | Bình thường | | 6 | 16129032 | $36.5$ | $36.58$ | $0.08$ | Bình thường | | 7 | 16129074 | $37.8$ | $37.75$ | $0.05$ | Báo động Sốt (LED+Buzzer) | | 8 | 16129099 | $36.7$ | $36.65$ | $0.05$ | Bình thường | | 9 | 16129015 | $36.9$ | $36.92$ | $0.02$ | Bình thường | | 10 | 16129066 | $38.2$ | $38.15$ | $0.05$ | Báo động Sốt (LED+Buzzer) |

Phân tích thống kê kết quả đo

  • Sai số tuyệt đối trung bình (MAE - Mean Absolute Error): $$\text{MAE} = \frac{1}{10} \sum_{i=1}^{10} |T_{\text{IoT}} - T_{\text{Omron}}| = 0.042^\circ\text{C}$$
  • Sai số lớn nhất ghi nhận: $0.08^\circ\text{C}$ (Nằm hoàn toàn trong dung sai y tế cho phép $\pm 0.2^\circ\text{C}$).
  • Độ ổn định truyền tin qua Wi-Fi: Tỷ lệ gửi gói tin HTTP POST thành công đạt $99.2%$ trên 500 lần đo liên tục trong phạm vi bán kính phát sóng $15\text{ mét}$.
  • Thời gian trễ xử lý toàn trình (End-to-End Latency): Thời gian từ khi bấm nút đo đến khi âm thanh phát ra là $1.2\text{ giây}$; dữ liệu xuất hiện trên dashboard website sau $1.8\text{ giây}$.

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

  1. Tích hợp đa phương thức thông báo (Multi-modal Feedback System): Khác biệt hoàn toàn với các máy đo nhiệt độ thương mại thông thường chỉ có màn hình LCD đơn sắc, hệ thống kết hợp đồng thời hiển thị đồ họa OLED độ tương phản cao và phát âm thanh hướng dẫn/kết quả bằng tiếng Việt tự nhiên qua chip MP3-TF-16P. Giải pháp này đặc biệt hữu ích cho người cao tuổi, người khiếm thị hoặc trong các môi trường làm việc ồn ào.
  2. Định danh người dùng độc lập không dây (Wireless User Tagging): Nhúng bộ giải mã hồng ngoại 38kHz cho phép cán bộ y tế đứng từ khoảng cách an toàn $3 - 5\text{ mét}$ nhập mã số định danh bệnh nhân (ID) thông qua remote mini trước khi đo, ngăn ngừa hoàn toàn việc tiếp xúc gần giữa nhân viên y tế và đối tượng nghi nhiễm.
  3. Tự động hóa luồng dữ liệu y tế (Cloud Healthcare Automation): Loại bỏ hoàn toàn quy trình ghi chép thủ công. Dữ liệu thân nhiệt gắn liền với ID và dấu thời gian thực (Timestamp) được đẩy trực tiếp lên cơ sở dữ liệu đám mây MySQL, cho phép xây dựng biểu đồ biến thiên thân nhiệt theo ngày của từng cá nhân phục vụ sàng lọc dịch tễ học.
  4. Tối ưu hóa chi phí chế tạo (Cost-effectiveness): Chi phí linh kiện phần cứng hoàn thiện cho toàn bộ thiết bị chỉ dao động từ $350.000 - 450.000\text{ VNĐ}$ (giảm hơn $65%$ so với máy đo nhiệt cầm tay chuyên dụng trên thị trường và rẻ hơn $90%$ so với các cổng đo thân nhiệt tự động nhập khẩu).

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

Kịch bản triển khai thực tế

flowchart TD
    Start([Bắt đầu ca trực sàng lọc]) --> ScanID[Cán bộ nhập ID bệnh nhân qua Remote IR]
    ScanID --> ShowID[OLED hiển thị ID & Sẵn sàng đo]
    ShowID --> Position[Đặt cảm biến cách trán/cổ tay 2-4cm]
    Position --> ReadTemp[ESP8266 đọc cảm biến MLX90614 qua I2C]
    ReadTemp --> Display[OLED hiển thị nhiệt độ & Loa đọc kết quả tiếng Việt]
    Display --> Check{Nhiệt độ > 37.5°C ?}
    Check -- Có --> Alarm[Bật LED đỏ, Hú còi Buzzer cảnh báo sốt]
    Check -- Không --> Normal[Báo trạng thái bình thường]
    Alarm --> Cloud[Gửi HTTP POST đến Web Server / Database MySQL]
    Normal --> Cloud
    Cloud --> ViewWeb[Bác sĩ/Quản lý theo dõi Dashboard theo thời gian thực]
    ViewWeb --> End([Hoàn tất lượt đo trong 2 giây])

Các kịch bản ứng dụng cụ thể

  • Chốt kiểm soát y tế bệnh viện & Phòng khám: Triển khai tại bàn tiếp đón phân luồng bệnh nhân; giảm tải thời gian chờ khám từ $10\text{ phút}$ xuống còn $15\text{ giây}$ cho toàn bộ thủ tục đo và lưu hồ sơ thân nhiệt ban đầu.
  • Trường học và Giảng đường: Kiểm tra thân nhiệt đầu giờ cho sinh viên/học sinh; kết quả đo gắn trực tiếp với Mã số sinh viên (MSSV) giúp tự động hóa điểm danh và giám sát sức khỏe học đường.
  • Tòa nhà văn phòng, Nhà máy khu công nghiệp: Tích hợp tại cửa xoay Barrier hoặc cổng chấm công, dữ liệu thân nhiệt đồng bộ trực tiếp vào hệ thống quản trị nhân sự ERP của doanh nghiệp.

Phân tích chi phí - lợi ích (Cost-Benefit & ROI)

  • Đầu tư ban đầu: 10 thiết bị cho 10 cổng ra vào $\approx 4.500.000\text{ VNĐ}$. Chi phí server hosting: $0\text{ VNĐ}$ (sử dụng gói cơ bản hoặc tự host nội bộ).
  • Chi phí nhân sự cắt giảm: Giảm từ 10 nhân viên y tế túc trực ghi sổ xuống còn 2 nhân viên giám sát chung, tiết kiệm ước tính hơn $40.000.000\text{ VNĐ/tháng}$ chi phí vận hành tại các cơ quan quy mô vừa.
  • Thời gian hoàn vốn (ROI): Dưới $1\text{ tháng}$ kể từ thời điểm đưa vào vận hành thực tế.

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

Hạn chế kỹ thuật

  • Cảm biến MLX90614 nhạy cảm với luồng gió mạnh trực tiếp từ quạt hoặc máy lạnh, có thể gây sụt giảm $0.1 - 0.3^\circ\text{C}$ nếu không có nắp chắn quang học định hướng.
  • Thiết bị phụ thuộc vào sóng Wi-Fi cục bộ; chưa trang bị bộ nhớ đệm Offline Flash (SPIFFS/EEPROM) để tự động lưu tạm khi mất kết nối Internet đột ngột.
  • Thao tác nhập ID bằng Remote hồng ngoại đòi hỏi góc hướng thẳng $\pm 45^\circ$ vào mắt thu IR KY-022.

Hướng phát triển trong tương lai

  • Tích hợp đầu đọc RFID / NFC (RC522): Thay thế bàn phím remote bằng thao tác quẹt thẻ sinh viên/thẻ nhân viên tự động không chạm với thời gian nhận diện $< 100\text{ms}$.
  • Nâng cấp cảm biến ảnh nhiệt Ma trận (AMG8833 Grid-EYE $8\times 8$): Tự động tìm điểm nhiệt độ cao nhất trên khuôn mặt, khắc phục triệt để sai số góc đặt của người dùng.
  • Ứng dụng giao thức truyền thông MQTT / WebSocket: Thay thế cơ chế HTTP POST truyền thống để tối ưu hóa băng thông truyền tải, giảm độ trễ gửi dữ liệu xuống dưới $50\text{ms}$ và tiết kiệm $40%$ năng lượng tiêu thụ cho pin.

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

  • Sinh viên ngành Kỹ thuật Y sinh & Điện tử: Nguồn tài liệu thực hành hoàn chỉnh từ lý thuyết bức xạ hồng ngoại, sơ đồ mạch in PCB, lập trình I2C/UART trên vi điều khiển ESP8266 đến thiết kế hệ thống IoT đầy đủ.
  • Kỹ sư nhúng & Lập trình viên IoT: Cung cấp mẫu thiết kế chuẩn (Design Pattern) về việc tích hợp module âm thanh phần cứng kết hợp bộ điều hòa tín hiệu cảm biến sinh y và truyền dữ liệu Web an toàn.
  • Cơ sở y tế, Trường học & Doanh nghiệp: Một giải pháp tự động hóa sàng lọc thân nhiệt chi phí cực thấp, dễ dàng sao chép sản xuất số lượng lớn, loại bỏ hoàn toàn nguy cơ lây nhiễm chéo và nâng cao năng lực giám sát y tế số.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai và vận hành hệ thống là gì?

Hệ thống yêu cầu nguồn cấp DC $5\text{V} - 1\text{A}$ (qua cổng Micro USB hoặc Pin sạc dự phòng/Pin 9V), vùng phủ sóng Wi-Fi chuẩn $802.11\text{ b/g/n}$ tần số $2.4\text{ GHz}$ có kết nối Internet, và một máy chủ Web hỗ trợ PHP 7.0+ cùng MySQL 5.6+ để tiếp nhận API.

2. Thiết bị xử lý như thế nào khi gặp hiện tượng nghẽn mạng Wi-Fi hoặc mất kết nối?

Ở phiên bản hiện tại, ESP8266 duy trì cơ chế thử lại kết nối ngầm (Non-blocking reconnect). Tuy nhiên, các chức năng đo tại chỗ, hiển thị màn hình OLED, cảnh báo đèn còi và loa phát giọng nói vẫn hoạt động độc lập $100%$ theo thời gian thực mà không bị gián đoạn.

3. Có thể tích hợp thiết bị vào hệ thống quản lý bệnh viện (HIS/LIS) sẵn có không?

Hoàn toàn khả thi. Do API backend được thiết kế theo chuẩn RESTful HTTP POST với định dạng dữ liệu có thể dễ dàng chuyển đổi thành JSON, hệ thống dễ dàng kết nối thông qua Webhook hoặc trung gian Middleware để đồng bộ dữ liệu vào các hệ cơ sở dữ liệu quản trị y tế hiện đại.

4. Chi phí bảo dưỡng và tuổi thọ linh kiện của thiết bị ra sao?

Cảm biến MLX90614 và vi điều khiển ESP8266 là linh kiện bán dẫn trạng thái rắn (Solid-state), tuổi thọ hoạt động liên tục (MTBF) vượt trên $50.000\text{ giờ}$. Hệ thống không có bộ phận cơ khí hao mòn; chi phí bảo dưỡng định kỳ chủ yếu là vệ sinh bề mặt thấu kính quang học bằng cồn Isopropyl Alcohol (IPA) $70%$.

5. Dự toán chi phí chế tạo mẫu đơn chiếc và khi sản xuất quy mô 100 sản phẩm?

Chi phí mẫu thử nghiệm đơn chiếc khoảng $420.000\text{ VNĐ}$. Khi sản xuất quy mô công nghiệp từ 100 sản phẩm trở lên (đặt gia công mạch in SMT và ép khuôn vỏ nhựa ABS), giá thành phần cứng tối ưu xuống chỉ còn khoảng $260.000 - 290.000\text{ VNĐ/bộ}$, mang lại hiệu quả kinh tế vượt trội.


Kết luận

Đề tài tốt nghiệp "Thiết kế và thi công thiết bị đo nhiệt độ cơ thể con người bằng hồng ngoại sử dụng công nghệ IoTs" đã giải quyết trọn vẹn và xuất sắc bài toán đo lường thân nhiệt không tiếp xúc phục vụ y tế công cộng. Bằng việc kết hợp chính xác giữa cảm biến bức xạ hồng ngoại y tế chuyên dụng MLX90614, vi điều khiển Wi-Fi ESP8266 và hệ thống quản trị dữ liệu đám mây đa kênh, công trình không chỉ đảm bảo các chỉ tiêu khắt khe về độ chính xác sinh học ($\text{MAE} = 0.042^\circ\text{C}$, thời gian đo $< 1.5\text{s}$) mà còn mở ra hướng tiếp cận mới trong việc số hóa dữ liệu y tế dự phòng với chi phí chế tạo cực kỳ tối ưu. Đây là nền tảng kỹ thuật vững chắc, có tính ứng dụng thực tiễn cao, sẵn sàng thương mại hóa và chuyển giao phục vụ cộng đồng trong kỷ nguyên Chuyển đổi số Y tế 4.0.