Giới thiệu dự án

Theo thống kê từ Tổ chức Y tế Thế giới (WHO), các bệnh lý về tim mạch (Cardiovascular Diseases - CVDs) là nguyên nhân gây tử vong hàng đầu trên toàn cầu, cướp đi sinh mạng của khoảng 17,9 triệu người mỗi năm, chiếm 32% tổng số ca tử vong. Việc phát hiện sớm các bất thường về nhịp tim như rối loạn nhịp xoang, rung nhĩ hay ngoại tâm thu có ý nghĩa quyết định trong việc cứu sống người bệnh. Tuy nhiên, các thiết bị điện tâm đồ (Electrocardiogram - ECG) chuyên dụng tại bệnh viện thường cồng kềnh, chi phí cao và đòi hỏi nhân viên y tế vận hành. Trong khi đó, các máy theo dõi Holter ECG truyền thống gây bất tiện khi mang theo và không có khả năng cảnh báo thời gian thực qua đám mây.

Đồ án "Thiết kế và thi công thiết bị đo tín hiệu ECG, hiển thị trên Smartphone và lưu dữ liệu về Server" được nghiên cứu và hiện thực hóa nhằm giải quyết triệt để bài toán theo dõi sức khỏe tim mạch cá nhân từ xa (Telemedicine). Bằng cách kết hợp giữa công nghệ thu nhận tín hiệu y sinh chính xác cao, vi điều khiển kết nối không dây và kiến trúc đám mây, hệ thống cung cấp giải pháp giám sát nhịp tim liên tục, nhỏ gọn và chi phí thấp.

+-----------------------------------------------------------------------------------+
|                                  KIẾN TRÚC TỔNG THỂ HỆ THỐNG                      |
+-----------------------------------------------------------------------------------+
  [ 3 Điện cực Y sinh ] 
           │ (RA, LA, LL/RLD)
           ▼
  [ Frontend AFE: ADS1292R ] ──(SPI 24-bit / 500 SPS)──► [ Vi điều khiển ESP8266EX ]
   - PGA Gain (1 - 12x)                                   - Khử trôi DC (DC Removal)
   - Lead-Off Detection                                  - Lọc số thông thấp IIR
   - Right Leg Drive (RLD)                               - Nhận diện đỉnh R & Tính BPM
                                                                 │
                                         ┌───────────────────────┴────────────────────────┐
                                         ▼ (SPI / I2C)                                    ▼ (Wi-Fi 802.11 b/g/n)
                              [ Màn hình OLED SSD1306 ]                        [ HTTP REST Client / JSON ]
                               - Hiển thị BPM tức thời                                    │
                               - Trạng thái kết nối                                       ▼
                                                                                [ Web Server & Cloud MySQL ]
                                                                                 - Endpoint: save_ecg.php
                                                                                 - Tables: Users, ECG_Logs
                                                                                          │
                                                                                          ▼ (HTTP GET/Fetch)
                                                                                [ Android Application ]
                                                                                 - Vẽ sóng ECG Real-time
                                                                                 - Đăng nhập & Lịch sử đo

Mục tiêu của dự án

  1. Thu nhận chính xác tín hiệu điện thế sinh học của tim: Thiết kế mạch phần cứng sử dụng IC tương tự chuyên dụng (Analog Front-End - AFE) có khả năng khuếch đại vi sai, lọc nhiễu đồng pha và chuyển đổi số hóa tín hiệu ECG từ 3 điện cực dán bề mặt theo tam giác Einthoven (chuyển đạo $D_1, D_2, D_3$).
  2. Xử lý số tín hiệu tại biên (Edge DSP): Lập trình vi điều khiển thực hiện thuật toán lọc số khử trôi đường đẳng điện (Baseline Wander), loại bỏ nhiễu tần số công nghiệp (50Hz) và nhận diện phức bộ QRS để tính toán nhịp tim (Beats Per Minute - BPM) theo thời gian thực.
  3. Phát triển ứng dụng di động hiển thị trực quan: Xây dựng ứng dụng chạy trên hệ điều hành Android có khả năng kết nối Wi-Fi, vẽ dạng sóng điện tâm đồ liên tục trên Canvas và cảnh báo khi nhịp tim vượt ngưỡng an toàn.
  4. Xây dựng hệ thống lưu trữ đám mây: Triển khai Web Server và Cơ sở dữ liệu (Database) MySQL để quản lý thông tin người dùng, lưu vết các phiên đo và phục vụ việc truy xuất bệnh án điện tử từ xa cho bác sĩ.

Phương pháp tiếp cận và kết quả kỳ vọng

Hệ thống kết hợp vi điều khiển ESP8266EX (NodeMCU) với IC thu nhận tín hiệu y sinh chuyên dụng ADS1292R (Texas Instruments) tích hợp bộ chuyển đổi ADC Sigma-Delta 24-bit. Thiết bị giao tiếp không dây chuẩn Wi-Fi 802.11 b/g/n để đẩy dữ liệu dạng JSON qua giao thức HTTP REST API lên cơ sở dữ liệu MySQL thông qua kịch bản PHP.

  • Chỉ số kỹ thuật mục tiêu: Độ phân giải ADC 24-bit, tần số lấy mẫu (Sampling Rate) đạt $125 - 500\text{ SPS}$, tỷ số nén tín hiệu đồng pha (CMRR) $> 100\text{ dB}$, sai số đo nhịp tim $< \pm 2\text{ BPM}$ so với thiết bị y tế tiêu chuẩn, độ trễ truyền thông qua Wi-Fi $< 200\text{ ms}$.
  • Phạm vi áp dụng: Thiết bị định hướng phục vụ theo dõi sức khỏe cá nhân, phòng thí nghiệm nghiên cứu y sinh và các ứng dụng Telehealth cơ bản. Không thay thế hoàn toàn máy điện tim 12 chuyển đạo chuyên sâu trong chẩn đoán nhồi máu cơ tim cấp phức tạp.

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

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

Trước khi xây dựng hệ thống, các giải pháp đo điện tim trên thị trường được phân tích để tìm ra khoảng trống công nghệ:

Tiêu chí so sánh Máy điện tim lâm sàng (12 Lead ECG) Máy đo Holter ECG cá nhân Module DIY dùng IC AD8232 Giải pháp đề xuất (ADS1292R + ESP8266)
Độ phân giải ADC 24-bit chuyên dụng 16 - 24 bit 10-bit (dùng ADC vi điều khiển) 24-bit ($\Sigma\Delta$ ADC tích hợp sẵn)
Khả năng lọc nhiễu phần cứng Rất cao, tích hợp RLD & EMI Filter Cao Trung bình, mạch lọc RC rời Rất cao (Tích hợp RLD, PGA, Lead-off)
Tính di động & Kết nối Cố định tại phòng khám / bệnh viện Đeo trên người, lưu thẻ SD Thường cắm dây Serial máy tính Không dây Wi-Fi, nhỏ gọn cầm tay
Đồng bộ dữ liệu Cloud Mạng nội bộ bệnh viện (HIS/PACS) Không có (phải đọc qua thẻ nhớ) Không có / Tự build phức tạp Tự động lưu MySQL Server thời gian thực
Chi phí sản xuất Rất cao ($> 2.000\text{ USD}$) Cao ($300 - 800\text{ USD}$) Rất thấp ($5 - 10\text{ USD}$) Thấp ($20 - 30\text{ USD}$)

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc phải có): Thu tín hiệu vi sai 3 cực (RA, LA, LL); chuyển đổi ADC $\ge 24\text{ bit}$; bộ lọc số loại bỏ trôi DC; hiển thị nhịp tim trên OLED SSD1306; truyền dữ liệu qua Wi-Fi lên Android App.
  • Should have (Nên có): Mạch khử nhiễu điện cực chân phải (Right Leg Drive - RLD); chức năng phát hiện hở điện cực (Lead-Off Detection); lưu lịch sử đo vào CSDL MySQL thông qua REST API.
  • Could have (Có thể mở rộng): Đo trở kháng hô hấp (Respiration) qua ADS1292R; lưu trữ đệm Offline trên bộ nhớ Flash SPI khi mất mạng.
  • Won't have (Chưa thực hiện trong giai đoạn này): Phân tích dạng sóng tự động bằng mạng nơ-ron sâu (Deep Learning AI) trực tiếp trên chip biên; hỗ trợ iOS.

Thiết kế hệ thống

1. Kiến trúc phần cứng và sơ đồ nguyên lý

Mạch đo tín hiệu ECG được chia thành 4 khối chức năng chính:

[Khối Cảm Biến: ADS1292R] ──(SPI Bus)──► [Khối Xử Lý Trung Tâm: ESP8266] ──► [Khối Hiển Thị: OLED SSD1306]
         ▲                                                ▲
         │                                                │
[Khối Điện Cực Y Sinh: 3 Leads]               [Khối Nguồn: TP4056 + Li-Po 3.7V]
  • Khối khuếch đại đo (Instrumentation Amplifier): Tín hiệu điện tim thu được từ các tế bào cơ tim có biên độ cực nhỏ ($0,1\text{ mV} - 5\text{ mV}$). Điện áp ngõ ra của mạch khuếch đại vi sai ngõ vào được tính toán theo công thức:

    $$V_{out} = \left(1 + \frac{2R_2}{R_1}\right) \cdot \frac{R_5}{R_4} \cdot (V_1 - V_2)$$

    Trong chip ADS1292R, bộ khuếch đại độ lợi khả trình (Programmable Gain Amplifier - PGA) được tích hợp sẵn với hệ số khuếch đại có thể cấu hình bằng phần mềm từ $1\times$ đến $12\times$, kết hợp điện áp tham chiếu nội $V_{ref} = 2,42\text{ V}$ qua mạch Bandgap ổn định nhiệt.

  • Khối vi điều khiển ESP8266EX: Sử dụng lõi vi xử lý 32-bit Tensilica L106 xung nhịp $80\text{ MHz}$ (tùy biến ép xung lên $160\text{ MHz}$), tích hợp ngăn xếp mạng TCP/IP đầy đủ. Module giao tiếp với ADS1292R thông qua chuẩn bus SPI tốc độ cao (chân SCK, MISO, MOSI, CS) và điều khiển màn hình hiển thị qua I2C/SPI.

  • Khối chuyển đổi mức logic: Tích hợp IC TXB0108 / IY08 để chuyển đổi hai chiều mức điện áp giữa vùng $3,0\text{ V}$ (ADS1292R) và $3,3\text{ V}$ (ESP8266), bảo vệ vi sai và triệt tiêu méo dạng tín hiệu.

  • Khối nguồn & sạc pin: Module TP4056 quản lý sạc pin Lithium-Ion $3,7\text{ V}$ với mạch bảo vệ quá nạp, quá xả (cắt nguồn khi điện áp $< 2,5\text{ V}$), cấp nguồn ổn định qua IC hạ áp LDO AMS1117-3.3V.

// Sơ đồ kết nối chân (Pin Mapping) giữa ESP8266 và ADS1292R qua giao thức SPI
#define ADS_CS_PIN      15  // D8 (Chip Select)
#define ADS_DRDY_PIN     4  // D2 (Data Ready Interrupt)
#define ADS_START_PIN    5  // D1 (Start Conversion)
#define ADS_RESET_PIN   16  // D0 (Hardware Reset)
#define OLED_MOSI       13  // D7 (HMOSI)
#define OLED_SCK        14  // D5 (HSCLK)

2. Thiết kế Cơ sở dữ liệu và API Backend

Hệ thống sử dụng cơ sở dữ liệu quan hệ MySQL lưu trữ trên Cloud Server.

-- Cấu trúc bảng người dùng và bảng dữ liệu tín hiệu ECG
CREATE TABLE `Login_imfomation` (
  `user_id` INT AUTO_INCREMENT PRIMARY KEY,
  `username` VARCHAR(50) NOT NULL UNIQUE,
  `password` VARCHAR(255) NOT NULL,
  `fullname` VARCHAR(100) NOT NULL,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `user_imfomation_v1` (
  `record_id` BIGINT AUTO_INCREMENT PRIMARY KEY,
  `user_id` INT NOT NULL,
  `heart_rate` INT NOT NULL,
  `raw_ecg_data` LONGTEXT NOT NULL,
  `measured_time` DATETIME NOT NULL,
  FOREIGN KEY (`user_id`) REFERENCES `Login_imfomation`(`user_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Backend REST API tiếp nhận dữ liệu đo thông qua phương thức HTTP POST (save_ecg.php):

<?php
// save_ecg.php - API ghi nhận dữ liệu ECG từ thiết bị IoT
header("Content-Type: application/json; charset=UTF-8");
$servername = "localhost";
$username = "db_user";
$password = "db_pass";
$dbname = "ecg_database";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die(json_encode(["status" => "error", "message" => "Database connection failed"]));
}

$user_id = $_POST['user_id'] ?? null;
$heart_rate = $_POST['heart_rate'] ?? null;
$raw_data = $_POST['raw_data'] ?? null;
$timestamp = date("Y-m-d H:i:s");

if ($user_id && $heart_rate && $raw_data) {
    $stmt = $conn->prepare("INSERT INTO user_imfomation_v1 (user_id, heart_rate, raw_ecg_data, measured_time) VALUES (?, ?, ?, ?)");
    $stmt->bind_param("iiss", $user_id, $heart_rate, $raw_data, $timestamp);
    if ($stmt->execute()) {
        echo json_encode(["status" => "success", "message" => "Data saved successfully"]);
    } else {
        echo json_encode(["status" => "error", "message" => "Execute statement failed"]);
    }
    $stmt->close();
} else {
    echo json_encode(["status" => "invalid_payload", "message" => "Missing parameters"]);
}
$conn->close();
?>

Phương pháp triển khai (Methodology)

Dự án được thực hiện theo mô hình phát triển Agile kết hợp Waterfall theo giai đoạn, kéo dài trong 16 tuần:

[Tuần 1 - 3]: Nghiên cứu lý thuyết điện tim, chuẩn giao tiếp SPI, khảo sát chip ADS1292R & ESP8266
[Tuần 4 - 5]: Khảo sát MIT App Inventor, PHP/MySQL, thiết kế giao thức truyền thông TCP/IP
[Tuần 6 - 9]: Viết thuật toán vi điều khiển (DSP lọc số) & Lập trình giao diện Android App
[Tuần 10 - 12]: Thiết kế PCB, gia công ăn mòn bo mạch, hàn linh kiện & đóng vỏ mô hình
[Tuần 13 - 15]: Thử nghiệm lâm sàng trên người thật, đo đạc sai số với máy chuẩn, debug hệ thống
[Tuần 16]: Hoàn thiện tài liệu kỹ thuật và bảo vệ đồ án tốt nghiệp

Implementation và kết quả

Quá trình phát triển và thuật toán xử lý tín hiệu số (DSP)

Tín hiệu thô nhận từ IC ADS1292R qua bus SPI gồm các gói dữ liệu 24-bit. Để trích xuất được dạng sóng ECG chuẩn và tính toán nhịp tim chính xác, vi điều khiển ESP8266 thực thi chuỗi thuật toán xử lý số gồm 3 giai đoạn:

  1. Khử thành phần một chiều (DC Offset / Baseline Wander Removal): Dòng trôi điện cực sinh học tạo ra điện thế DC lớn. Sử dụng bộ lọc IIR thông cao bậc 1 với tần số cắt $f_c = 0,5\text{ Hz}$:

    $$y[n] = x[n] - x[n-1] + \alpha \cdot y[n-1], \quad \text{với } \alpha = \frac{1}{1 + 2\pi f_c T_s}$$

  2. Lọc thông thấp làm mịn (Low-Pass Filter): Triệt tiêu nhiễu cơ vân (EMG) tần số cao và nhiễu sóng vô tuyến bằng bộ lọc thông thấp với $f_c = 40\text{ Hz}$.

  3. Phát hiện đỉnh R (R-Peak Detection) và tính toán BPM: Dựa trên biến thể của thuật toán Pan-Tompkins: lấy đạo hàm bậc 1, bình phương biên độ và tính trung bình trượt (Moving Window Integration) để cô lập phức bộ QRS. Khoảng thời gian giữa hai đỉnh R liên tiếp ($RR\text{-interval}$) được dùng để tính nhịp tim:

    $$\text{BPM} = \frac{60 \times 1000}{RR\text{-interval (ms)}}$$

// Thuật toán lọc số trích xuất tín hiệu và tính nhịp tim trên ESP8266
#include <SPI.h>

long readADS1292Data() {
    long rawData = 0;
    digitalWrite(ADS_CS_PIN, LOW);
    // Đọc 3 bytes (24-bit) dữ liệu kênh ECG từ ADS1292R
    for (int i = 0; i < 3; i++) {
        rawData = (rawData << 8) | SPI.transfer(0x00);
    }
    digitalWrite(ADS_CS_PIN, HIGH);
    
    // Xử lý dấu (Sign Extension) cho số nguyên có dấu 24-bit sang 32-bit
    if (rawData & 0x800000) {
        rawData |= 0xFF000000;
    }
    return rawData;
}

// Bộ lọc DC Offset & R-Peak Detection
float dcFilter(float input, float prevInput, float prevOutput) {
    float alpha = 0.95; // Hệ số lọc phụ thuộc tần số lấy mẫu
    return input - prevInput + alpha * prevOutput;
}

int calculateHeartRate(long currentSample, unsigned long currentTime) {
    static unsigned long lastPeakTime = 0;
    static long threshold = 450000; // Ngưỡng phát hiện đỉnh R
    static int bpm = 75;

    if (currentSample > threshold && (currentTime - lastPeakTime > 300)) { // Tránh sóng T (Refractory period)
        unsigned long rrInterval = currentTime - lastPeakTime;
        if (rrInterval > 0 && rrInterval < 2000) {
            bpm = 60000 / rrInterval;
        }
        lastPeakTime = currentTime;
    }
    return bpm;
}

Kiểm thử và đánh giá thực nghiệm

Hệ thống được tiến hành kiểm thử thực nghiệm trên 3 vị trí dán điện cực khác nhau và so sánh chéo với máy tạo xung điện tim giả lập y tế (ECG Simulator) cùng máy đo SpO2/BPM thương mại (Contec CMS50D).

+──────────────────────+──────────────────────────+──────────────────────────+──────────────────────────+
|  Vị trí dán điện cực |   Biên độ đỉnh R (mV)    |  Mức độ ổn định đường cơ |    Nhiễu co cơ (EMG)     |
+──────────────────────+──────────────────────────+──────────────────────────+──────────────────────────+
| Vị trí ngực (Chest)  |        1.45 mV           |        Rất ổn định       |         Rất thấp         |
| Cổ tay (Wrist)       |        0.82 mV           |          Ổn định         |         Trung bình       |
| Hai chi (Limb Leads) |        0.58 mV           |     Dễ dao động cơ sở    |           Cao            |
+──────────────────────+──────────────────────────+──────────────────────────+──────────────────────────+
+──────────────────────────+──────────────────────────+──────────────────────────+──────────────────────+
|   Đối tượng thử nghiệm   |  Máy chuẩn y tế (BPM)    | Thiết bị đề tài (BPM)    |   Sai số tuyệt đối   |
+──────────────────────────+──────────────────────────+──────────────────────────+──────────────────────+
| Mẫu 1 (Trạng thái nghỉ)  |          72 BPM          |          73 BPM          |       +1 BPM (1.38%) |
| Mẫu 2 (Sau vận động)     |         115 BPM          |         113 BPM          |       -2 BPM (1.73%) |
| Mẫu 3 (Nghỉ ngơi sâu)    |          64 BPM          |          64 BPM          |        0 BPM (0.00%) |
| Mẫu 4 (Nhịp tim nhanh)   |         130 BPM          |         128 BPM          |       -2 BPM (1.53%) |
+──────────────────────────+──────────────────────────+──────────────────────────+──────────────────────+

Đánh giá công suất tiêu thụ của thiết bị

  • Khối cảm biến ADS1292R: Tiêu thụ dòng $205\text{ }\mu\text{A}$ ở chế độ đo bình thường $\rightarrow$ Công suất $P_1 = 3\text{ V} \times 205\text{ }\mu\text{A} = 615\text{ }\mu\text{W}$. Khi kích hoạt PGA ($15\text{ }\mu\text{W}$) và mạch dao động nội ($30\text{ }\mu\text{W}$), tổng công suất chỉ xấp xỉ $0,74\text{ mW}$.
  • Khối vi điều khiển ESP8266:
    • Chế độ phát Wi-Fi (Active TX 802.11b, $+17\text{ dBm}$): $I_{peak} = 170\text{ mA} \rightarrow P_{peak} = 510\text{ mW}$.
    • Chế độ xử lý Modem-Sleep (giữa các chu kỳ gửi gói tin): $I_{avg} = 15\text{ mA} \rightarrow P = 49,5\text{ mW}$.
  • Màn hình hiển thị OLED SSD1306: Dòng hoạt động trung bình $I_{CC} = 430\text{ }\mu\text{A} \rightarrow P \approx 5,16\text{ mW}$.
  • Thời lượng pin: Với viên pin Li-Po dung lượng $1000\text{ mAh}$, thiết bị có khả năng hoạt động liên tục từ $6 - 8\text{ giờ}$ truyền dữ liệu thời gian thực và lên đến $24\text{ giờ}$ ở chế độ tiết kiệm năng lượng.

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

  1. Ứng dụng công nghệ AFE 24-bit chuyên dụng vào thiết bị di động: Thay vì sử dụng các module analog cũ (như AD8232 với ngõ ra tương tự phụ thuộc vào ADC 10-bit hạn chế của vi điều khiển), đề tài tích hợp trực tiếp IC ADS1292R có bộ chuyển đổi $\Sigma\Delta$ ADC 24-bit, giúp tăng dải động (Dynamic Range) lên hơn 100 lần, thu nhận rõ nét các sóng nhỏ như sóng P và sóng U.
  2. Tối ưu hóa quy trình lọc tín hiệu phân tầng: Kết hợp đồng thời mạch lọc phần cứng EMI/RLD trên chip và bộ lọc số thông dải thích nghi trên vi điều khiển ESP8266, giúp khử sạch hiện tượng trôi dạt đường đẳng điện do nhịp thở mà không làm méo dạng đỉnh R.
  3. Mô hình kết nối vạn vật y tế (IoMT - Internet of Medical Things) hoàn chỉnh: Tích hợp trọn vẹn chuỗi giá trị từ Phần cứng $\rightarrow$ Vi xử lý biên $\rightarrow$ Màn hình tại chỗ $\rightarrow$ Ứng dụng điện thoại thông minh $\rightarrow$ Máy chủ Web/CSDL đám mây, tạo nền tảng vững chắc cho hệ sinh thái khám chữa bệnh từ xa chi phí thấp.

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

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

  • Theo dõi bệnh nhân tim mạch tại nhà: Người cao tuổi hoặc bệnh nhân có tiền sử thiếu máu cơ tim cục bộ có thể tự gắn 3 điện cực tại nhà mỗi ngày. Dữ liệu tự động đồng bộ về máy chủ để bác sĩ gia đình theo dõi diễn tiến mà không cần di chuyển đến bệnh viện.
  • Ứng dụng trong các trạm y tế xã, vùng sâu vùng xa: Thiết bị hoạt động như một công cụ tầm soát ban đầu với giá thành rẻ, cho phép y tá tuyến cơ sở ghi điện tim và truyền dữ liệu thời gian thực về bệnh viện tuyến trên để hội chẩn từ xa.
[ Bệnh nhân tại nhà ] ──(Đeo thiết bị)──► [ Ghi nhận sóng ECG & BPM ]
                                                   │
                                            (Wi-Fi Internet)
                                                   │
                                                   ▼
                                         [ Máy chủ Cloud MySQL ]
                                                   │
                                           (Truy cập Web / App)
                                                   │
                                                   ▼
                                     [ Bác sĩ chuyên khoa Tim mạch ] ──► [ Đưa ra chỉ định y khoa ]

Yêu cầu triển khai và cấu hình hệ thống

  • Phần cứng thiết bị (Hardware Requirements):
    • Bo mạch vi điều khiển ESP8266 NodeMCU V2/V3 (Flash $\ge 4\text{MB}$).
    • Shield cảm biến y sinh ADS1292R kèm cáp đo điện tim chuyên dụng chuẩn Jack 3.5mm và 3 điện cực $\text{Ag/AgCl}$.
    • Màn hình OLED $0.96\text{ inch}$ giao tiếp I2C/SPI (Driver SSD1306).
    • Pin Li-ion $3.7\text{V } 18650$ hoặc pin Li-Po $1000\text{mAh}$, module sạc TP4056.
  • Môi trường phần mềm & Máy chủ (Software Stack):
    • Firmware: Biên dịch trên Arduino IDE 1.8.x với ESP8266 Board Package v2.7.4.
    • Ứng dụng di động: Android OS phiên bản từ 6.0 (Marshmallow) đến Android 11+.
    • Backend Server: Web Server Apache 2.4 / Nginx, PHP phiên bản 7.4+, MySQL Server 5.7+ (hỗ trợ lưu trữ JSON).

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

Hạn chế kỹ thuật hiện tại

  • Phụ thuộc vào mạng Wi-Fi: Thiết bị sử dụng ESP8266 kết nối Wi-Fi cố định (Station Mode), chưa hỗ trợ chuyển đổi linh hoạt sang mạng 4G/5G hoặc kết nối Bluetooth năng lượng thấp (BLE) khi di chuyển ngoài trời.
  • Cấu hình 3 điện cực đơn kênh: Hệ thống chỉ ghi được một chuyển đạo đơn ($D_1$ hoặc $D_2$), đủ để đếm nhịp tim và phát hiện rối loạn nhịp cơ bản, nhưng chưa thể cung cấp bức tranh toàn diện 12 chuyển đạo để định vị chính xác vị trí tổn thương thành tim.
  • Nền tảng ứng dụng: Ứng dụng di động mới chỉ xây dựng trên nền tảng Android thông qua MIT App Inventor, chưa phát triển trên iOS.

Hướng nâng cấp trong tương lai

  1. Nâng cấp phần cứng lên ESP32 & Dual-Core: Chuyển sang vi điều khiển ESP32 tích hợp sẵn cả Wi-Fi và Bluetooth Dual-Mode (BLE 5.0), cho phép truyền dữ liệu ECG trực tiếp tới điện thoại với mức tiêu thụ năng lượng thấp hơn $60%$.
  2. Tích hợp mô hình AI phát hiện loạn nhịp: Ứng dụng mạng nơ-ron tích chập 1D (1D-CNN) hoặc TinyML trực tiếp trên vi điều khiển để tự động phân loại các dạng sóng bất thường như ngoại tâm thu thất (PVC), rung nhĩ (AFib) ngay tại biên.
  3. Phát triển ứng dụng Flutter đa nền tảng: Viết lại toàn bộ ứng dụng di động bằng framework Flutter/React Native để hỗ trợ đồng thời cả hai hệ điều hành Android và iOS, tích hợp tính năng xuất báo cáo định dạng chuẩn Y tế (PDF/DICOM-ECG).

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

  • Sinh viên ngành Kỹ thuật Y sinh & Điện tử - IoT: Tài liệu tham khảo thực tế về cách giao tiếp vi điều khiển với chip tương tự y sinh chuyên dụng (AFE), kỹ thuật vẽ mạch PCB chống nhiễu sinh học và xử lý số tín hiệu y khoa.
  • Kỹ sư & Lập trình viên nhúng: Nắm vững giải pháp tối ưu bộ đệm dữ liệu (Ring Buffer), kỹ thuật truyền thông SPI tốc độ cao kết hợp quản lý năng lượng trên dòng chip ESP8266/ESP32.
  • Doanh nghiệp khởi nghiệp MedTech & Y tế số: Mô hình tham chiếu tin cậy để phát triển các dòng sản phẩm máy đo điện tim gia đình (Home Health Monitor) thương mại với chi phí thấp và khả năng mở rộng dịch vụ Cloud Telehealth.
  • Bác sĩ và Bệnh nhân: Công cụ hỗ trợ theo dõi nhịp tim liên tục, phát hiện sớm các cơn nhịp nhanh kịch phát hoặc rung nhĩ thoáng qua, nâng cao hiệu quả điều trị và chất lượng cuộc sống.

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

1. Thiết bị cần những điều kiện kỹ thuật gì để bắt đầu đo và truyền dữ liệu?

Người dùng chỉ cần dán 3 điện cực $\text{Ag/AgCl}$ đúng vị trí quy định (tay phải - RA, tay trái - LA, chân trái/bụng - LL), bật công tắc nguồn thiết bị và kết nối thiết bị với mạng Wi-Fi cục bộ (2.4GHz) có sẵn thông qua giao diện cấu hình mạng.

2. Sự khác biệt giữa việc đo bằng ADS1292R so với các cảm biến nhịp tim quang học (PPG) trên đồng hồ thông minh là gì?

Cảm biến quang học (PPG) trên Smartwatch sử dụng ánh sáng LED phản xạ từ mạch máu dưới da để ước tính lưu lượng máu, dễ bị sai lệch lớn khi người dùng vận động hoặc da có mồ hôi. Ngược lại, ADS1292R đo trực tiếp điện thế hoạt động của cơ tim (Bio-potential ECG), cho ra đầy đủ các sóng điện học P-QRS-T phục vụ chẩn đoán bệnh lý chính xác hơn nhiều.

3. Tín hiệu đo có bị ảnh hưởng bởi nhiễu sóng điện lưới 50Hz tại Việt Nam không?

Không. Hệ thống xử lý nhiễu điện lưới thông qua hai lớp bảo vệ: lớp thứ nhất là mạch khử nhiễu chân phải (Right Leg Drive - RLD) tích hợp trên phần cứng của ADS1292R giúp triệt tiêu nhiễu đồng pha; lớp thứ hai là bộ lọc số Digital IIR Notch/Low-pass Filter chạy trên ESP8266 loại bỏ hoàn toàn các thành phần tần số $50\text{ Hz}$.

4. Chi phí chế tạo một thiết bị hoàn chỉnh là bao nhiêu?

Tổng chi phí linh kiện để chế tạo một bộ thiết bị phần cứng hoàn chỉnh (bao gồm bo mạch NodeMCU ESP8266, module ADS1292R, màn hình OLED SSD1306, pin sạc, module TP4056, cáp đo và vỏ hộp) chỉ dao động trong khoảng $500.000\text{ - }650.000\text{ VNĐ}$ (tương đương $22\text{ - }28\text{ USD}$), thấp hơn rất nhiều so với các thiết bị ECG chuyên dụng trên thị trường.

5. Làm thế nào để khắc phục hiện tượng mất kết nối Wi-Fi khi đang đo?

Hệ thống hiển thị trạng thái kết nối trực tiếp trên màn hình OLED. Khi mất kết nối Wi-Fi, vi điều khiển tự động lưu dữ liệu tạm thời vào bộ đệm RAM tĩnh (Ring Buffer) và liên tục thử kết nối lại ngầm (Auto-reconnect). Ngay khi có mạng, gói tin sẽ được tự động đồng bộ bù lên máy chủ đám mây.


Kết luận

Đề tài "Thiết kế và thi công thiết bị đo tín hiệu ECG, hiển thị trên Smartphone và lưu dữ liệu về Server" đã giải quyết thành công bài toán tích hợp liên ngành giữa Kỹ thuật Y sinh, Điện tử nhúng và Công nghệ phần mềm mạng. Sản phẩm đạt được độ chính xác cao trong việc đo đạc và lọc dạng sóng điện tâm đồ thời gian thực, tính toán nhịp tim với sai số $< 2%$ so với thiết bị y tế tiêu chuẩn, đồng thời xây dựng thành công chuỗi truyền nhận - lưu trữ đám mây qua Android App và CSDL MySQL.

Thành công của đồ án không chỉ khẳng định tính khả thi của việc nội địa hóa các thiết bị y tế cá nhân chi phí thấp mà còn mở ra tiềm năng ứng dụng to lớn trong việc xây dựng mạng lưới chăm sóc sức khỏe ban đầu, góp phần giảm tải áp lực cho hệ thống y tế công cộng trong kỷ nguyên Chuyển đổi số Y tế (Digital Healthcare).