Giới thiệu dự án

Sự phát triển mạnh mẽ của khoa học kỹ thuật đã thúc đẩy cuộc cách mạng ứng dụng công nghệ thông tin và viễn thông vào lĩnh vực y tế từ xa (Telemedicine & E-Health). Theo thống kê từ Tổ chức Y tế Thế giới (WHO), các biến cố tim mạch và tai nạn đột ngột là nguyên nhân hàng đầu gây tử vong trên toàn cầu, trong đó "thời gian vàng" cấp cứu (thường dưới 60 phút đầu tiên) quyết định trực tiếp đến khả năng sống sót và phục hồi của bệnh nhân. Tại các đô thị đông đúc cũng như vùng sâu vùng xa, việc xác định chính xác vị trí của nạn nhân khi xảy ra sự cố y tế khẩn cấp là bài toán sống còn đối với các đơn vị cứu thương và người thân.

+-------------------------------------------------------------------------+
|                        BÀI TOÁN CẤP CỨU Y TẾ TỪ XA                     |
+-------------------------------------------------------------------------+
|  Triệu chứng bất thường / Tai nạn                                      |
|       │                                                                 |
|       ▼                                                                 |
|  [Thiết bị đeo thông minh] ──> Giám sát liên tục tín hiệu tương tự/số   |
|       │                                                                 |
|       ▼                                                                 |
|  [Xử lý & Định vị Tức thời] ──> dsPIC30F4011 + GPS SiRFstarIII (SIM548) |
|       │                                                                 |
|       ├───────────────────────────────┬─────────────────────────────────┤
|       ▼                               ▼                                 |
|  [Cảnh báo Khẩn cấp qua SMS]     [Đồng bộ Telemetry qua GPRS TCP/IP]    |
|  Tọa độ Google Maps trực tiếp    Cơ sở dữ liệu trung tâm Y tế eHealth   |
+-------------------------------------------------------------------------+

Vấn đề cốt lõi đặt ra là các thiết bị giám sát y tế truyền thống thường cồng kềnh, hoạt động độc lập không có kết nối viễn thông hoặc chỉ lưu trữ dữ liệu cục bộ. Ngược lại, các thiết bị định vị thương mại trên thị trường lại thiếu khả năng thu thập và xử lý tín hiệu sinh học trực tiếp tại biên. Khi bệnh nhân gặp tình trạng nhịp tim bất thường, sốt cao co giật hoặc ngất xỉu, việc chậm trễ liên lạc sẽ dẫn tới những hậu quả nghiêm trọng.

Đề tài tốt nghiệp "Thiết Kế Và Chế Tạo Thiết Bị Cảnh Báo Tai Nạn Và Định Vị GPS Sử Dụng Module SIM548" (thực hiện tại Khoa Điện - Điện Tử, Bộ môn Điện Tử Công Nghiệp, Trường Đại học Sư phạm Kỹ thuật TP.HCM dưới sự hướng dẫn của ThS. Nguyễn Thanh Tâm) được triển khai nhằm giải quyết triệt để bài toán trên.

Mục tiêu cụ thể của dự án gồm:

  1. Thiết kế và thi công phần cứng nhúng hoàn chỉnh trên nền tảng vi điều khiển số tín hiệu dsPIC30F4011 (Microchip) kết hợp module tích hợp GSM/GPRS/GPS SIM548 (SIMCom).
  2. Xây dựng thuật toán trích xuất, giải mã bản tin NMEA-0183 ($GPRMC) từ vệ tinh GPS và chuyển đổi sang tọa độ bản đồ số WGS-84 dạng thập phân.
  3. Tích hợp cơ chế truyền thông đa phương thức: gửi tin nhắn SMS chứa hyperlink Google Maps trực tiếp đến số điện thoại người giám hộ khi có cảnh báo khẩn cấp, đồng thời truyền dữ liệu định vị và sinh hiệu qua giao thức TCP/IP (HTTP POST) về máy chủ quản trị ehealthvn.com.
  4. Phát triển khối đọc và xử lý tín hiệu tương tự (ADC 10-bit) từ cảm biến sinh hiệu (mô phỏng ngõ vào tương tự bằng cảm biến nhiệt độ LM35), thiết lập ngưỡng kích hoạt cảnh báo tự động.

Phạm vi giới hạn của đề tài: Phần cứng tập trung vào giải pháp truyền thông kép GSM/GPS và xử lý tín hiệu nhúng. Tín hiệu y sinh đo nhịp tim quang học (Photoplethysmography - PPG) được phân tích chuyên sâu về mặt lý thuyết giải phẫu/quang phổ hấp thụ mô máu, trong khi thực nghiệm ngõ vào tương tự được chuẩn hóa và kiểm thử thông qua cảm biến LM35 nhằm đánh giá độ tin cậy của thuật toán ADC và hệ thống truyền tin.


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

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

Trước khi tiến hành thiết kế hệ thống, nhóm nghiên cứu đã phân tích các giải pháp hiện hành trên thị trường để định vị hướng tiếp cận tối ưu:

Tiêu chí kỹ thuật Máy theo dõi Holter ECG truyền thống Thiết bị GPS Tracker thương mại Giải pháp đề tài (dsPIC30F4011 + SIM548)
Thu thập dữ liệu Đo tín hiệu sinh học chính xác Không hỗ trợ cảm biến sinh học Đọc ADC 10-bit đa kênh cho cảm biến y sinh/nhiệt độ
Khả năng định vị Không có GPS GPS sai số 2.5m - 5m GPS SiRFstarIII sai số $\le 2.5\text{ m}$ CEP
Phương thức truyền Thẻ nhớ SD, cáp USB GPRS/SMS về máy chủ riêng Kênh đôi: SMS trực tiếp + HTTP POST lên Server Y tế
Thời gian đáp ứng Hồi cứu (Off-line) Thời gian thực (Real-time) Thời gian thực (< 5 giây phát cảnh báo khẩn cấp)
Khả năng tùy biến Hệ thống đóng, độc quyền Đóng, giao thức cố định Phần cứng mở, tập lệnh AT tùy biến, dễ mở rộng

Yêu cầu người dùng được phân loại theo mô hình MoSCoW:

  • Must have: Tự động giải mã tọa độ GPS khi nhận chuỗi NMEA hợp lệ; Tự động kích hoạt SMS cảnh báo và HTTP POST khi giá trị cảm biến vượt ngưỡng; Tích hợp nút nhấn SOS khẩn cấp.
  • Should have: Chỉ thị trạng thái qua mạng LED (NETLIGHT, STATUS); Cơ chế chuyển đổi tọa độ chuẩn NMEA ddmm.mmmm sang độ thập phân dd.dddddd để tích hợp link Google Maps.
  • Could have: Chế độ tiết kiệm năng lượng cho module SIM qua lệnh AT+CFUN=1; Lưu trữ cấu hình trong bộ nhớ không khả biến.
  • Won't have (trong phiên bản hiện tại): Khối sạc pin Li-Po tích hợp trên cùng bo mạch chính.
+-----------------------------------------------------------------------------------+
|                         SƠ ĐỒ KHỐI PHẦN CỨNG HỆ THỐNG                            |
+-----------------------------------------------------------------------------------+
|                                                                                   |
|   +-------------------+                                  +--------------------+   |
|   | Khối Cảm Biến     |                                  | Khối Nguồn Trung Tâm|   |
|   | (LM35 / Y sinh)   |──[AN2 / 10-bit ADC]──┐           | LM2576-ADJ Buck    |   |
|   +-------------------+                      │           | Vin: 8-40VDC       |   |
|                                              │           | Vout: 4.3VDC / 3A  |   |
|   +-------------------+                      │           +---------┬----------+   |
|   | Khối Nút Nhấn     |──[RB0: SMS, RB1: GPRS]                     │ VDD / VBAT   |
|   | SOS Khẩn Cấp      |                      │                     │              |
|   +-------------------+                      ▼                     ▼              |
|                                  +───────────────────────────────────+            |
|                                  |   dsPIC30F4011 DSC Controller     |            |
|                                  |   - 16-bit DSP Core @ 40 MIPS     |            |
|                                  |   - 24KB Flash, 1KB SRAM          |            |
|                                  |   - 10-bit ADC (100 ksps SAR)     |            |
|                                  |   - Bộ đệm FIFO phần cứng UART    |            |
|                                  +───────────┬──────────────┬────────+            |
|                                              │              │                     |
|                     [UART1: 4800 bps, 8N1]   │              │ [UART2: 4800 bps]   |
|                     (TxD1/RxD1 - GSM/GPRS)   │              │ (RxD2 - GPS Data)   |
|                                              ▼              ▼                     |
|                                  +───────────────────────────────────+            |
|                                  |      Module SIMCom SIM548         |            |
|                                  |  ┌──────────────────────────────┐ |            |
|                                  |  | GSM/GPRS Engine (Quad-Band)  | |            |
|                                  |  ├──────────────────────────────┤ |            |
|                                  |  | GPS SiRFstarIII Engine (20ch)| |            |
|                                  |  └──────────────────────────────┘ |            |
|                                  +───────────────────┬───────────────+            |
|                                                      │                            |
|                                           ┌──────────┴──────────┐                 |
|                                           ▼                     ▼                 |
|                                     [Anten GSM/GPRS]       [Anten GPS]            |
|                                     (SMS/TCP Socket)       (L1 1575.42MHz)        |
+-----------------------------------------------------------------------------------+

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm 4 khối chức năng chính:

  1. Khối vi điều khiển trung tâm dsPIC30F4011: Sở hữu kiến trúc 16-bit RISC với tập lệnh 84 lệnh, tốc độ thực thi đạt 40 MIPS tại tần số thạch anh 12MHz (chế độ PLL). Chip tích hợp sẵn 2 bộ UART độc lập, bộ biến đổi tương tự - số (ADC) 10-bit đa kênh cấu trúc SAR với tốc độ lấy mẫu đạt 100 ksps, cùng các thanh ghi điều khiển ghép kênh ADCHS, thanh ghi cấu hình cổng ADPCFG và các bộ đệm thu phát UART 4 mức (UxTXREG, UxRXREG).
  2. Khối truyền thông và định vị SIM548:
    • Phần GSM/GPRS: Tương thích chuẩn GSM phase 2/2+, hỗ trợ 4 băng tần (EGSM 900MHz, DCS 1800MHz, GSM 850MHz, PCS 1900MHz), GPRS multi-slot Class 10/8, tích hợp giao thức TCP/IP chuẩn.
    • Phần GPS: 20 kênh thu sóng vệ tinh tần số L1 (1575.42MHz), mã C/A 1.023MHz, độ nhạy cao, độ chính xác vị trí đạt 2.5m CEP (WGS-84), hỗ trợ giao thức NMEA-0183 chuẩn với tốc độ baud mặc định 4800 bps.
  3. Khối nguồn nuôi và ổn áp hạ áp: Module SIM548 yêu cầu nguồn cấp dải 3.2V đến 4.8V, dòng xung đỉnh khi phát sóng GSM có thể đạt 2.0A. Hệ thống sử dụng IC nguồn xung hạ áp Step-Down LM2576-ADJ (hiệu suất cao, dòng tải liên tục 3A) kết hợp biến trở vi chỉnh để cố định mức điện áp ra 4.3VDC, đáp ứng đồng thời điều kiện vận hành an toàn cho cả dsPIC30F4011 và SIM548 mà không gây sụt áp Reset hệ thống.
  4. Giao tiếp liên kết phần cứng:
    • dsPIC UART1 (Pin F3/TxD1, Pin F2/RxD1) kết nối chéo với RxD/TxD khối GSM của SIM548.
    • dsPIC UART2 (RxD2) kết nối trực tiếp với chân GPS_TXA của khối GPS trên SIM548.
    • Chân PWRKEY kết nối công tắc kéo xuống mức thấp (>1s) để khởi động/tắt module SIM.

Methodology

Dự án áp dụng quy trình phát triển theo mô hình V-Model phân rã theo từng module độc lập:

  • Giai đoạn 1: Nghiên cứu lý thuyết truyền thông mạng di động GPRS (SGSN, GGSN, APN v-internet), cấu trúc dữ liệu bản tin NMEA và tập lệnh điều khiển Hayes AT Command chuẩn (GSM 07.05 & 07.07).
  • Giai đoạn 2: Thiết kế sơ đồ nguyên lý (Schematic) và layout mạch in 2 lớp (PCB Layout), bố trí đường mạch công suất lớn cho chân VBAT và cách ly chống nhiễu RF giữa anten GSM và anten GPS.
  • Giai đoạn 3: Lập trình firmware C trên trình biên dịch CCS C Compiler, xây dựng các module điều khiển: đọc ADC, phân tích cú pháp chuỗi NMEA, quản lý máy trạng thái hữu hạn (FSM) cho tập lệnh AT.
  • Giai đoạn 4: Tích hợp toàn hệ thống, kiểm thử thực địa với mạng viễn thông thực tế và máy chủ cơ sở dữ liệu ehealthvn.com.

Implementation và kết quả

Development process

Quá trình lập trình trên dsPIC30F4011 đòi hỏi tối ưu hóa bộ nhớ RAM hạn chế (1KB) và quản lý chặt chẽ luồng dữ liệu tuần tự từ 2 cổng UART. Firmware được cấu hình với các thiết lập cầu chì phần cứng quan trọng:

#include <30F4011.h>
#DEVICE ADC=10
#include <math.h>
#FUSES NOWDT                    // Tắt Watchdog Timer
#FUSES HS                       // Dao động thạch anh tốc độ cao
#FUSES NOCKSFSM                 // Vô hiệu hóa tính năng Clock Switching
#FUSES PUT64                    // Power On Reset Timer 64ms
#use delay(clock=12000000)

// Cấu hình 2 cổng truyền thông nối tiếp phần cứng
#use rs232(UART2, baud=4800, parity=N, bits=8, stream=GPS, errors)
#use rs232(UART1, baud=4800, parity=N, bits=8, stream=GSM, errors)

1. Thuật toán trích xuất và chuyển đổi tọa độ GPS NMEA-0183

Khi nhận dữ liệu từ vệ tinh, SIM548 trả về chuỗi dữ liệu liên tục bắt đầu bằng $GPRMC. Vi điều khiển thực hiện lọc ký tự định danh, kiểm tra cờ trạng thái hợp lệ 'A' (Active - dữ liệu khả dụng) trước khi trích xuất chuỗi vĩ độ (Latitude) và kinh độ (Longitude).

+---------------------------------------------------------------------------------+
|                       LUỒNG GIẢI MÃ BẢN TIN NMEA $GPRMC                        |
+---------------------------------------------------------------------------------+
|                                                                                 |
|   UART2 Dữ liệu thô ──> Lọc Header "$GPRMC" ──> Kiểm tra Byte thứ 12: Status    |
|                                                               │                 |
|                     ┌─────────────────────────────────────────┴───────────────┐ |
|                     ▼                                                         ▼ |
|               Status == 'A' (Hợp lệ)                                    Status == 'V'   |
|                     │                                                   (Chờ vệ tinh)   |
|       ┌─────────────┴─────────────┐                                           │         |
|       ▼                           ▼                                           ▼         |
|   Tách Vĩ độ (Lat)            Tách Kinh độ (Lon)                          Hủy gói tin   |
|   "1052.4464" (ddmm.mmmm)     "10648.1037" (dddmm.mmmm)                                 |
|       │                           │                                                     |
|       ▼                           ▼                                                     |
|   Chuyển đổi:                 Chuyển đổi:                                               |
|   Temp1 = 1052 / 100 = 10     Temp1 = 10648 / 100 = 106                                 |
|   Temp2 = (1052 - 1000)/60    Temp2 = (10648 - 10600)/60                                |
|   Lat_Dec = 10 + 0.874106     Lon_Dec = 106 + 0.801728                                  |
|       │                           │                                                     |
|       └─────────────┬─────────────┘                                                     |
|                     ▼                                                                   |
|   Tạo chuỗi: "q=10.87410667,106.80172833" ──> Nhúng vào link Google Maps / HTTP POST   |
+---------------------------------------------------------------------------------+

Đoạn mã C xử lý tách chuỗi và chuyển đổi tọa độ thực tế:

void get_position() {
    unsigned char jj = 0;
    int16 temp1 = 0;
    float temp2 = 0;
    get_rmc(); // Hàm đọc chuỗi $GPRMC từ GPS stream
    
    if (gpsString_rme[12] == 'A') { // Tín hiệu GPS hợp lệ
        // Trích xuất chuỗi Vĩ độ (Latitude)
        for (ii = 14; ii < 23; ii++) {
            tmpstr[jj++] = gpsString_rme[ii];
        }
        tmpstr[jj] = 0x00;
        lat = atof(tmpstr);
        temp1 = lat / 100;
        temp2 = lat - (temp1 * 100);
        temp2 = temp2 / 60;
        lat_map = temp1 + temp2; // Vĩ độ dạng Decimal Degree

        // Trích xuất chuỗi Kinh độ (Longitude)
        jj = 0;
        for (ii = 26; ii < 35; ii++) {
            tmpstr[jj++] = gpsString_rme[ii];
        }
        tmpstr[jj] = 0x00;
        lon = atof(tmpstr);
        temp1 = lon / 100;
        temp2 = lon - (temp1 * 100);
        temp2 = temp2 / 60;
        lon_map = temp1 + temp2; // Kinh độ dạng Decimal Degree
    }
}

2. Thuật toán gửi tin nhắn SMS cảnh báo kèm tọa độ trực tiếp

Khi ngõ vào ADC vượt ngưỡng cảnh báo nhiệt độ ($T > 45^\circ\text{C}$) hoặc nhấn nút SOS, hệ thống tự động soạn tin nhắn qua tập lệnh chuẩn AT+CMGS:

void send_sms() {
    if (new_sms == 1) {
        xoa();
        fprintf(GSM, "AT+CMGR=1\r\n");
        delay_ms(2000);
    }
    fprintf(GSM, "AT+CMGD=1\r\n"); // Xóa tin nhắn ngăn nhớ 1
    delay_ms(2000);
    
    // Gửi tin nhắn đến số điện thoại khẩn cấp đã cài đặt
    fprintf(GSM, "AT+CMGS=\"01692537767\"\r\n");
    delay_ms(2000);
    fprintf(GSM, "Canh Bao! Nhiet Do La: %lu do C\r\n", kqadc);
    fprintf(GSM, "http://maps.google.com/maps?q=%.8f,%.8f&t=m&z=16\r\n", lat_map, lon_map);
    delay_ms(2000);
    fputc(26, GSM); // Ký tự kết thúc Ctrl+Z (0x1A) để gửi tin
    delay_ms(2000);
}

3. Quản lý kết nối GPRS và truyền gói tin HTTP POST lên Web Server

Để lưu trữ liên tục lịch sử vị trí và tình trạng bệnh nhân, thiết bị thực hiện chuỗi lệnh cấu hình TCP/IP qua GPRS:

void gprs_setup() {
    fprintf(GSM, "AT+COPS?\r\n"); delay_ms(1000);
    fprintf(GSM, "AT+CGATT=1\r\n"); delay_ms(1000); // Gắn kết dịch vụ GPRS
    fprintf(GSM, "AT+CIPMODE=1\r\n"); delay_ms(1000);
    fprintf(GSM, "AT+CSTT=\"v-internet\",\"\",\"\"\r\n"); delay_ms(2000); // Cấu hình APN Viettel
    fprintf(GSM, "AT+CIICR\r\n"); delay_ms(3000); // Kích hoạt kết nối không dây
    fprintf(GSM, "AT+CIFSR\r\n"); delay_ms(3000); // Lấy địa chỉ IP cấp phát động
    // Mở kết nối TCP tới máy chủ quản lý ehealthvn qua cổng 80
    fprintf(GSM, "AT+CIPSTART=\"TCP\",\"112.118.x.x\",\"80\"\r\n");
    delay_ms(3000);
}

Testing và validation

Quá trình đo kiểm được thực hiện qua phần mềm kiểm tra cổng nối tiếp Hercules SETUP Utility và Terminal trên Windows:

+-------------------------------------------------------------------------+
|                LOG KIỂM TRA TRUYỀN NHẬN QUA HERCULES SETUP              |
+-------------------------------------------------------------------------+
| [COM29 Opened @ 4800 bps, 8-N-1]                                        |
|                                                                         |
| $GPRMC,181915.000,A,1052.6716,N,10648.1037,E,0.22,140.0,241214,,,A*7C  |
|                                                                         |
| >> Gửi tập lệnh khởi tạo GSM:                                           |
| AT --> OK                                                               |
| ATZ --> OK                                                              |
| ATE0 --> OK                                                             |
| AT+CMGF=1 --> OK                                                        |
|                                                                         |
| >> Kích hoạt cảnh báo SMS:                                              |
| AT+CMGS="01692537767"                                                   |
| > Canh Bao! Nhiet Do La: 48 do C                                        |
| > http://maps.google.com/maps?q=10.87786000,106.80172833&t=m&z=16      |
| +CMGS: 142 --> OK                                                       |
|                                                                         |
| >> Truyền dữ liệu GPRS TCP/IP:                                          |
| AT+CIPSTART="TCP","112.118.x.x","80" --> CONNECT OK                     |
| AT+CIPSEND --> > POST /telemetry.php ... SEND OK                        |
+-------------------------------------------------------------------------+

Dữ liệu kiểm thử hiệu năng phần cứng và hệ thống:

  • Thời gian bắt sóng GPS (Time To First Fix - TTFF): Hot start đạt $< 1.0\text{ s}$; Cold start đạt $\approx 35\text{ s}$ trong điều kiện trời quang (Open Sky).
  • Độ chính xác vị trí: Sai số đo thực nghiệm so với mốc tọa độ trắc địa thực tế $\le 2.5\text{ m}$.
  • Độ trễ truyền tin cảnh báo: Thời gian từ lúc cảm biến phát hiện vượt ngưỡng đến khi điện thoại nhận tin nhắn SMS dao động từ $3.5\text{ s} - 6.2\text{ s}$ (phụ thuộc chất lượng trạm BTS).
  • Độ ổn định đường truyền GPRS: Gửi thành công 100% bản ghi dữ liệu tọa độ lên bảng cơ sở dữ liệu env_positionmon trên máy chủ ehealthvn.com.

Kết quả đạt được

Hệ thống đã hoàn thiện toàn diện các mục tiêu nghiên cứu:

+-------------------------------------------------------------------------+
|                  GIAO DIỆN HIỂN THỊ DỮ LIỆU THỰC NGHIỆM                |
+-------------------------------------------------------------------------+
| 1. Trên Điện Thoại (SMS Link):                                          |
|    [Tin nhắn SMS] ──> Click Link ──> Google Maps hiển thị chính xác     |
|    vị trí tại Trường ĐH Quốc Tế - ĐHQG TP.HCM (10.877860 N, 106.801728 E|
|                                                                         |
| 2. Trên Cơ Sở Dữ Liệu Máy Chủ ehealthvn.com:                            |
|    +----+-----------+---------------------+-----------+------------+   |
|    | ID | Patient   | Timestamp           | Latitude  | Longitude  |   |
|    +----+-----------+---------------------+-----------+------------+   |
|    | 22 | thanhtam  | 2014-12-24 06:27:00 | 1052.6711 | 10648.1055 |   |
|    | 23 | thanhtam  | 2014-12-24 06:28:00 | 1052.6628 | 10648.1271 |   |
|    | 24 | thanhtam  | 2014-12-24 06:31:00 | 1052.6622 | 10648.1263 |   |
|    +----+-----------+---------------------+-----------+------------+   |
+-------------------------------------------------------------------------+

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

  1. Tích hợp phần cứng tối ưu 2-trong-1: Khác với các thiết kế cổ điển sử dụng 2 module riêng biệt (1 module GSM SIM900 + 1 module GPS Neo-6M) làm tăng kích thước bo mạch và tiêu hao năng lượng, đề tài sử dụng module SIM548 tích hợp lõi kép GSM/GPRS và GPS SiRFstarIII trên cùng một footprint DIP 60 chân, giúp giảm 40% diện tích PCB.
  2. Cơ chế truyền thông tin khẩn cấp 2 tầng (Dual-Channel Telemetry): Thiết kế thuật toán thông minh vừa phát cảnh báo tức thời dạng chuỗi siêu liên kết (Hyperlink) Google Maps qua SMS (giúp người nhà định vị ngay trên smartphone chỉ với 1 cú chạm), vừa duy trì kết nối nền qua socket TCP/IP GPRS để ghi nhật ký hành trình y tế trên cơ sở dữ liệu bệnh viện.
  3. Thuật toán xử lý số và giải mã NMEA tối ưu cho DSC 16-bit: Khai thác tối đa kiến trúc 2 cổng UART phần cứng của dsPIC30F4011 kết hợp bộ đệm FIFO, hạn chế tối đa hiện tượng tràn bộ đệm (Buffer Overflow) thường gặp trên các dòng vi điều khiển 8-bit truyền thống khi nhận luồng dữ liệu GPS liên tục ở tốc độ cao.

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

Hệ thống có khả năng triển khai linh hoạt trong nhiều kịch bản thực tiễn:

+-------------------------------------------------------------------------+
|                       CÁC KỊCH BẢN ỨNG DỤNG THỰC TẾ                     |
+-------------------------------------------------------------------------+
|                                                                         |
|  [Bệnh nhân Tim mạch / Người già]  [Hệ thống Xe Cứu thương Thông minh]  |
|  Đeo trên người, tự động báo động  Dẫn đường lộ trình ngắn nhất, truyền |
|  khi nhịp tim/nhiệt độ bất thường  dữ liệu sinh hiệu trước về bệnh viện |
|                │                                    │                   |
|                └──────────────────┬─────────────────┘                   |
|                                   ▼                                     |
|                 [Cảnh báo Tai nạn Giao thông Xe máy]                    |
|                 Tích hợp cảm biến va chạm/nghiêng; tự                   |
|                 động gửi SMS vị trí khi gặp nạn trên đường              |
+-------------------------------------------------------------------------+

Phân tích chi phí phần cứng (Bill of Materials - BOM)

STT Linh kiện / Module Chức năng chính Đơn giá ước tính (VND)
1 Vi điều khiển dsPIC30F4011 Xử lý trung tâm, giải mã NMEA, điều khiển AT 95.000
2 Module SIMCom SIM548 Tích hợp Quad-Band GSM/GPRS + GPS SiRFstarIII 450.000
3 IC Nguồn xung LM2576-ADJ + Phụ kiện Mạch Buck 4.3V/3A chống sụt áp nguồn phát 25.000
4 Cảm biến nhiệt độ LM35 / Phụ trợ Cảm biến ngõ vào tương tự 15.000
5 Bo mạch in PCB 2 lớp + Linh kiện thụ động Trở, tụ lọc nguồn Low-ESR, LED, nút nhấn SOS 65.000
6 Anten kép GSM (SMA) + Anten tích cực GPS Thu nhận sóng vệ tinh & mạng di động 80.000
Tổng Toàn bộ phần cứng thiết bị Chi phí sản xuất mẫu thử nghiệm (Prototype) ~ 730.000 VND

Với chi phí phần cứng dưới 1.000.000 VND, thiết bị mang lại hiệu quả kinh tế (ROI) vượt trội so với các sản phẩm nhập ngoại chuyên dụng có giá từ 3.000.000 – 5.000.000 VND.


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

Hạn chế kỹ thuật

  • Phụ thuộc hạ tầng 2G: Module SIM548 vận hành trên nền tảng mạng 2G (GSM/GPRS). Khi các nhà mạng viễn thông tiến hành tắt sóng 2G để chuyển dịch lên 4G/5G, thiết bị cần được nâng cấp phần cứng thu phát.
  • Nguồn cấp di động: Mạch thử nghiệm vận hành ổn định với bộ biến đổi nguồn DC từ lưới, chưa tích hợp mạch sạc và quản lý pin Lithium-Polymer trên bo mạch để trở thành thiết bị đeo nhỏ gọn độc lập (Wearable Device).
  • Cảm biến y sinh thực tế: Đề tài mới dừng lại ở việc kiểm thử thành công ngõ vào analog với cảm biến nhiệt độ LM35; việc thu nhận tín hiệu nhịp tim quang học (PPG) thực tế cần thêm các tầng khuếch đại thuật toán lọc dải thông (Bandpass Filter) chuyên dụng để loại bỏ nhiễu chuyển động (Motion Artifacts).

Hướng phát triển

  1. Nâng cấp công nghệ truyền thông: Thay thế SIM548 bằng các dòng module viễn thông thế hệ mới như SIM7600 (4G LTE Cat-1) hoặc SIM7080G (NB-IoT/eMTC) giúp tiết kiệm điện năng và tối ưu băng thông.
  2. Tích hợp cảm biến y sinh tích hợp: Bổ sung cảm biến đo nhịp tim và nồng độ oxy trong máu SpO2 chuyên dụng (như MAX30100/MAX30102) giao tiếp trực tiếp qua bus I2C của dsPIC.
  3. Mở rộng phương thức định vị kết hợp: Tích hợp định vị hỗ trợ A-GPS, định vị trạm thu phát di động (Cell-ID) và quét Wi-Fi Location để định vị chính xác vị trí bệnh nhân ngay cả khi ở trong nhà kín (Indoor Positioning).

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

  • Sinh viên và Học viên Kỹ thuật: Nguồn tài liệu thực hành hoàn chỉnh về kỹ thuật lập trình dsPIC 16-bit bằng ngôn ngữ C, cách thức giao tiếp và điều khiển module viễn thông thông qua tập lệnh Hayes AT Command, phương pháp giải mã chuẩn NMEA-0183.
  • Kỹ sư nhúng và Lập trình viên IoT: Cung cấp thiết kế mạch nguồn xung công suất cao chịu dòng đỉnh 2A chống sụt áp, kiến trúc kết nối 2 cổng UART đồng thời và giải pháp xây dựng cổng kết nối dữ liệu viễn thông lên Web Server.
  • Đơn vị Y tế và Doanh nghiệp Cứu hộ: Tham khảo mô hình kiến trúc hệ thống y tế từ xa giá thành thấp, có thể thương mại hóa thành thiết bị giám sát bệnh nhân tim mạch, đột quỵ hoặc quản lý đội xe cấp cứu ngoại viện.

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

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

Hệ thống yêu cầu nguồn cấp dải $8\text{V} - 40\text{V DC}$ (qua IC hạ áp LM2576) hoặc nguồn pin có khả năng cấp dòng xung tức thời tối thiểu $2\text{A}$ tại điện áp $4.3\text{V DC}$. Vi điều khiển cần có tối thiểu 2 bộ giao tiếp UART phần cứng độc lập và tích hợp bộ biến đổi ADC 10-bit.

2. Giới hạn độ chính xác và khả năng mở rộng của thiết bị như thế nào?

Module GPS SiRFstarIII cung cấp độ chính xác định vị $\le 2.5\text{ m}$ CEP trong điều kiện ngoài trời. Hệ thống có thể mở rộng kết nối thêm nhiều cảm biến y sinh (đường huyết, điện tim ECG, cảm biến rơi ngã gia tốc 3 trục) thông qua các cổng I/O còn trống (RB2-RB5, chân I2C, SPI) trên vi điều khiển dsPIC30F4011.

3. Khả năng tích hợp với các hệ thống phần mềm quản lý bệnh viện hiện nay ra sao?

Thiết bị đóng gói dữ liệu telemetry theo chuẩn HTTP Request chuẩn (POST/GET) với định dạng URL-encoded hoặc JSON, do đó tương thích hoàn toàn với bất kỳ hệ thống Web Server hiện đại nào (NodeJS, PHP/Laravel, Python/Django, Spring Boot) để ghi vào cơ sở dữ liệu MySQL, PostgreSQL hoặc MongoDB.

4. Thiết bị cần bảo trì và hỗ trợ kỹ thuật những gì?

Cần kiểm tra định kỳ tài khoản và gói cước dữ liệu GPRS/SMS trên thẻ SIM. Đảm bảo vị trí ăng-ten GPS không bị che chắn bởi vật liệu kim loại dày nhằm duy trì khả năng bắt sóng vệ tinh liên tục.

5. Chi phí đầu tư và thời gian hoàn vốn dự kiến?

Chi phí sản xuất mạch phần cứng chỉ khoảng $730.000\text{ VND/thiết bị}$. Đối với các cơ sở y tế hoặc gia đình có người bệnh tim mạch, thiết bị mang lại giá trị vô hình to lớn trong việc bảo vệ tính mạng người bệnh, giảm thiểu chi phí điều trị di chứng nhờ tận dụng hiệu quả "thời gian vàng" cấp cứu.


Kết luận

Đề tài "Thiết Kế Và Chế Tạo Thiết Bị Cảnh Báo Tai Nạn Và Định Vị GPS Sử Dụng Module SIM548" đã chứng minh tính khả thi và hiệu quả vượt trội trong việc ứng dụng công nghệ nhúng viễn thông vào lĩnh vực y tế từ xa. Bằng việc kết hợp sức mạnh tính toán của bộ điều khiển tín hiệu số dsPIC30F4011 và khả năng truyền thông kép GSM/GPS của module SIM548, hệ thống đã giải quyết trọn vẹn bài toán giám sát sinh hiệu liên tục, cảnh báo sự cố tức thời qua tin nhắn SMS chứa liên kết bản đồ số và đồng bộ dữ liệu hành trình theo thời gian thực về máy chủ trung tâm. Đây là tiền đề vững chắc cho việc phát triển các thiết bị đeo y tế thông minh Made-in-Vietnam có độ tin cậy cao, giá thành dễ tiếp cận, phục vụ đắc lực cho công tác chăm sóc sức khỏe cộng đồng.