Bối cảnh và vấn đề nghiên cứu
Trong quá trình hiện đại hóa y tế và sự phát triển của chuyên ngành Kỹ thuật Y sinh, các thiết bị điện tử y sinh đóng vai trò thiết yếu trong việc chẩn đoán và điều trị. Việc kết nối thiết bị y tế với máy tính cho phép bác sĩ giám sát tình trạng bệnh nhân liên tục, hỗ trợ phát hiện sớm các biến đổi sinh lý bất thường để xử lý kịp thời, đồng thời giảm thiểu sai sót do công tác ghi chép thủ công. Trong các thông số sinh tồn cơ bản, nhịp tim và dạng sóng điện tâm đồ (ECG) là chỉ số quan trọng hàng đầu phản ánh tình trạng hoạt động của hệ tim mạch. Xu hướng ứng dụng giải pháp Internet of Things (IoT) mở ra khả năng thu thập thông số sức khỏe và kết nối mạng từ xa, tuy nhiên việc triển khai thực tế tại Việt Nam vào thời điểm nghiên cứu vẫn còn tương đối mới mẻ.
Văn bản đồ án điểm qua các nghiên cứu tiền đề về theo dõi sức khỏe từ xa và chỉ ra các hạn chế kỹ thuật:
- Nghiên cứu trong nước của Phạm Thái Bình và Tiết Xuân Sang sử dụng vi điều khiển MSP430G2553 kết hợp module RF HM-TRP 433 để đọc dữ liệu cảm biến nhịp tim, sau đó truyền số liệu qua tin nhắn SMS. Hạn chế của giải pháp này là giới hạn số lượng người tiếp cận thông tin, quá trình thu thập và gửi dữ liệu không diễn ra đồng thời, đồng thời phát sinh chi phí viễn thông định kỳ.
- Nghiên cứu quốc tế của tác giả J.Gázquez sử dụng hệ thống cảm biến không dây kết nối Bluetooth để giám sát sức khỏe bệnh nhân và đưa dữ liệu lên web. Giải pháp này gặp nhược điểm cự ly kết nối ngắn, dễ suy hao tín hiệu và chịu ảnh hưởng nhiễu khi gặp vật cản.
Để giải quyết các vấn đề trên, đề tài thực hiện xây dựng hệ thống sử dụng board máy tính nhúng Raspberry Pi làm trung tâm giao tiếp, kết nối mạch đo nhịp tim chuyên dụng, lưu trữ dữ liệu vào hệ quản trị cơ sở dữ liệu và hiển thị trực quan dạng đồ thị thời gian thực trên giao diện web.
Mục tiêu nghiên cứu:
- Thiết kế bộ đo thông số nhịp tim và truyền dữ liệu thu thập được lên máy chủ trung tâm (Raspberry Pi).
- Xây dựng và cấu hình máy chủ dịch vụ web (web server) trực tiếp trên máy chủ Raspberry Pi.
- Cung cấp dữ liệu nhịp tim bệnh nhân liên tục theo thời gian thực dưới dạng đồ thị trực quan trên giao diện trang web.
Nhiệm vụ và nội dung nghiên cứu:
- Tìm hiểu nguyên lý và thiết kế chế tạo khối đo nhịp tim.
- Nghiên cứu ngôn ngữ lập trình Python, các ngôn ngữ phát triển web (HTML, PHP, JavaScript) và thiết kế giao diện trang web giám sát.
- Thu thập dữ liệu nhịp tim đo được từ module cảm biến đưa lên Raspberry Pi.
- Tìm hiểu hệ quản trị cơ sở dữ liệu MySQL, xây dựng cơ sở dữ liệu lưu trữ thông số nhịp tim trên Raspberry Pi và xuất dữ liệu ra web dưới dạng đồ thị.
- Vận hành thử nghiệm toàn bộ hệ thống và tiến hành cân chỉnh thông số mạch.
- Đánh giá kết quả thực hiện của mô hình.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Tín hiệu xung mạch đập của tim người và mô hình phần cứng - phần mềm giám sát thông số nhịp tim.
- Phạm vi nghiên cứu: Giới hạn ở việc thu nhận nhịp tim bằng phương pháp quang học tại đầu ngón tay trong dải tần số sinh lý của người bình thường và vận động viên (40 - 160 nhịp/phút); dữ liệu được truyền nhận và quản lý trong mạng nội bộ kết nối trực tiếp giữa mạch đo, kit Raspberry Pi và máy tính giám sát.
Cơ sở lý thuyết và phương pháp
Cơ sở sinh lý tim và tín hiệu điện tim (ECG)
Tim người hoạt động như hai hệ thống bơm song song gồm hai tâm nhĩ tiếp nhận máu và hai tâm thất đẩy máu đi nuôi cơ thể, phối hợp thông qua hệ thống van tim (van ba lá, van hai lá, van động mạch phổi và van động mạch chủ). Hoạt động co bóp cơ học được khởi phát bởi xung điện sinh học phát đi từ nút xoang nhĩ (SA node, kích thước khoảng $3 \times 10\text{ mm}$, tốc độ dẫn truyền khoảng $30\text{ cm/s}$ trong mô nhĩ), truyền đến nút nhĩ thất (AV node, gây trễ khoảng $100\text{ ms}$ để đồng bộ buồng tim), qua bó His và mạng Purkinje để khử cực tâm thất.
Hoạt động điện màng tế bào cơ tim gắn liền với sự dịch chuyển của các ion $\text{Na}^+$, $\text{K}^+$, $\text{Ca}^{2+}$, tạo nên điện thế nghỉ xấp xỉ $-90\text{ mV}$. Quá trình biến thiên điện thế trải qua các pha: pha 0-1 khử cực nhanh khi $\text{Na}^+$ thâm nhập mạnh làm điện thế tăng vọt lên $+20\text{ mV}$ (tạo đỉnh sóng R); pha 2 dòng $\text{Ca}^{2+}$ vào chậm; pha 3 tái cực nhanh với sự mở kênh $\text{K}^+$; pha 4 phân cực trở lại nhờ bơm $\text{Na}^+/\text{K}^+\text{-ATPase}$. Chu kỳ trơ của tim gồm giai đoạn trơ tuyệt đối (APR) và trơ tương đối (RRP). Dạng sóng ECG chuẩn gồm sóng P (khử cực nhĩ, thời gian khoảng $0{,}08 - 0{,}11\text{ s}$), đoạn PR ($0{,}12 - 0{,}20\text{ s}$), phức bộ QRS (khử cực thất, thời gian $0{,}05 - 0{,}10\text{ s}$, sóng Q rộng không quá $0{,}03\text{ s}$, đỉnh R không vượt quá $22\text{ mm}$, sóng S sâu không quá $6\text{ mm}$), đoạn ST và sóng T (tái cực thất). Tín hiệu ECG chuẩn có phổ tần số từ $0{,}05\text{ Hz}$ đến $100\text{ Hz}$, trong đó dải tần chẩn đoán thông thường nằm trong khoảng $0{,}5\text{ Hz}$ đến $80\text{ Hz}$.
| Đối tượng |
Nhịp tim trung bình trong 1 phút (nhịp/phút) |
| Trẻ em dưới 1 tuổi |
100 – 160 |
| Trẻ từ 1 đến 10 tuổi |
70 – 120 |
| Người từ 10 tuổi trở lên |
60 – 120 |
| Vận động viên thể thao |
40 – 60 |
| Dải biến thiên |
Dải tần số |
Chu kỳ |
Biểu hiện sinh lý |
| ULF (Ultra Low Frequency) |
$0 - 0{,}003\text{ Hz}$ |
$> 5\text{ giờ}$ |
Mức tiêu thụ oxy trong hoạt động thể lực |
| VLF (Very Low Frequency) |
$0{,}04\text{ Hz}$ |
$> 25\text{ giây}$ |
Cơ chế điều hòa thần kinh giao cảm/phó giao cảm lên thân nhiệt |
| LF (Low Frequency) |
$0{,}15\text{ Hz}$ |
$> 6\text{ giây}$ |
Hoạt động giao cảm, phản xạ thụ thể áp lực và điều hòa huyết áp |
| HF (High Frequency) |
$0{,}5\text{ Hz}$ |
$2 - 6\text{ giây}$ |
Hoạt động phó giao cảm trong điều hòa hô hấp |
Nguyên lý đo nhịp tim bằng phương pháp thể tích quang học (PPG)
Khi tim co bóp, áp suất và thể tích máu tuần hoàn qua các mao mạch động mạch thay đổi theo chu kỳ, kéo theo sự thay đổi mật độ hấp thụ ánh sáng của mô sống. Tín hiệu quang truyền qua ngón tay gồm hai thành phần:
- Thành phần một chiều (DC): Đặc trưng cho cường độ ánh sáng cố định hấp thụ bởi cấu trúc mô, xương và máu tĩnh mạch.
- Thành phần xoay chiều (AC): Đặc trưng cho sự biến thiên thể tích máu trong lòng động mạch đồng bộ với chu kỳ co bóp của tim. Tín hiệu AC có tần số trùng khớp với tần số nhịp tim, được tách riêng bằng mạch lọc loại bỏ DC để xử lý.
Phương pháp nghiên cứu và công nghệ sử dụng
- Phương pháp phân tích, tính toán giải tích mạch điện: Xác định tần số cắt của mạch lọc RC bậc một tích cực và hệ số khuếch đại mạch khuếch đại thuật toán (Op-amp) nhiều tầng.
- Phương pháp thực nghiệm kỹ thuật: Thi công mạch in PCB thực tế, nạp chương trình vi điều khiển, đo kiểm thông số điện áp bằng thiết bị chuyên dụng và chạy thử nghiệm hệ thống.
- Phương pháp phát triển phần mềm: Ứng dụng ngôn ngữ Python trên môi trường Linux Raspbian; sử dụng hệ quản trị CSDL quan hệ MySQL; xây dựng ứng dụng web tương tác dựa trên Apache, PHP, JavaScript và HTML.
Thiết kế và triển khai
Hệ thống được thiết kế theo cấu trúc module hóa phân tầng, gồm khối thu nhận tín hiệu nhịp tim, khối xử lý cục bộ, khối điều khiển trung tâm và khối máy chủ hiển thị.
[Ngón tay bệnh nhân]
[Khối cảm biến quang (LED IR + Photo Diode)]
[Khối lọc & Khuếch đại 2 tầng (LM324: K=10.201, 0.7 - 2.7 Hz)]
[Khối xử lý trung tâm (PIC16F877A - Chuyển đổi ADC)]
[Khối điều khiển trung tâm (Raspberry Pi 2 Model B - Raspbian Wheezy)]
[Khối hiển thị (Trình duyệt Web máy tính: HTML/JS Chart, chu kỳ 10s)]
Thiết kế phần cứng và tính toán mạch đo nhịp tim
Mạch thu nhận tín hiệu nhịp tim gồm cảm biến quang, tầng khuếch đại lọc tín hiệu và vi điều khiển:
- Khối cảm biến: Sử dụng một LED phát hồng ngoại bước sóng $5\text{ mm}$ và một Photo Diode thu hồng ngoại $5\text{ mm}$. Dòng phân cực qua LED phát được chọn là $I = 20\text{ mA}$, điện áp sụt trên LED là $V_{D1} = 2\text{ V}$. Với nguồn cấp $V_{CC} = 5\text{ V}$, sụt áp trên điện trở hạn dòng là $V_{R1} = 5\text{ V} - 2\text{ V} = 3\text{ V}$, tính toán điện trở: $R = 3\text{ V} / (20 \times 10^{-3}\text{ A}) = 150,\Omega$ (sử dụng điện trở $100,\Omega$ ghép nối tiếp với một biến trở để hiệu chỉnh). Tín hiệu từ Photo Diode được định mức tải qua điện trở $R_3 = 33\text{ k}\Omega$.
- Khối lọc và khuếch đại: Tần số nhịp tim dao động từ $40$ đến $160$ nhịp/phút, quy đổi ra dải tần tương ứng $0{,}7\text{ Hz} < f_{tim} < 2{,}7\text{ Hz}$. Mạch sử dụng IC LM324 chứa 4 bộ khuếch đại thuật toán (Op-amp):
- Tầng lọc thông cao: Mạch RC gồm $R_3, C_6$ có tần số cắt $f_1 = \frac{1}{2\pi R_3 C_6} = 0{,}7\text{ Hz} \Rightarrow R_3 C_6 \approx 0{,}23$. Chọn $C_6 = 4{,}7,\mu\text{F}$ suy ra $R_3 \approx 48\text{ k}\Omega$, tác giả lựa chọn giá trị chuẩn là $47\text{ k}\Omega$.
- Tầng lọc thông thấp: Mạch RC gồm $R_5, C_7$ có tần số cắt $f_2 = \frac{1}{2\pi R_5 C_7} = 2{,}7\text{ Hz} \Rightarrow R_5 C_7 \approx 0{,}06$. Chọn $C_7 = 100\text{ nF}$ suy ra $R_5 = 680\text{ k}\Omega$.
- Hệ số khuếch đại: Mỗi tầng Op-amp được thiết kế với độ khuếch đại $K_1 = K_2 = 101$. Tổng hệ số khuếch đại hai tầng mắc nối tiếp đạt:
$$K = K_1 \times K_2 = 101 \times 101 = 10.201\text{ lần}$$
Biên độ tín hiệu ban đầu từ vài milivolt ($\text{mV}$) sau hai tầng được nâng lên mức vài volt ($\text{V}$). Đèn LED báo xung tín hiệu sử dụng trở phân cực $R_{10} = 330,\Omega$.
- Khối xử lý trung tâm mạch đo: Sử dụng vi điều khiển PIC16F877A đảm nhiệm đọc tín hiệu, thực hiện biến đổi ADC và điều khiển hoạt động đo.
- Khối nguồn: Nguồn cấp toàn mạch sử dụng pin $9\text{ V}$, phối hợp IC ổn áp LM7805 hạ áp và cấp nguồn $+5\text{ V}$ ổn định cho vi điều khiển và các tầng khuếch đại.
| Thông số linh kiện |
Giá trị tính toán/lựa chọn |
Chức năng kỹ thuật |
| LED phát hồng ngoại |
Bước sóng hồng ngoại, $\varnothing 5\text{ mm}$ |
Phát xạ quang qua mao mạch ngón tay |
| Photo Diode |
Bước sóng hồng ngoại, $\varnothing 5\text{ mm}$ |
Cảm nhận biến thiên cường độ ánh sáng |
| Điện trở phân cực LED |
$150,\Omega$ ($100,\Omega$ + biến trở) |
Định dòng phát $20\text{ mA}$ tại áp rơi $2\text{ V}$ |
| Điện trở tải cảm biến ($R_3$) |
$33\text{ k}\Omega$ |
Chuyển đổi dòng quang điện thành điện áp |
| Tụ lọc thông cao ($C_6$) |
$4{,}7,\mu\text{F}$ (đi kèm $R = 47\text{ k}\Omega$) |
Cắt tần thấp $f_1 = 0{,}7\text{ Hz}$, chặn dòng DC |
| Tụ lọc thông thấp ($C_7$) |
$100\text{ nF}$ (đi kèm $R = 680\text{ k}\Omega$) |
Cắt tần cao $f_2 = 2{,}7\text{ Hz}$, triệt nhiễu cao tần |
| IC khuếch đại |
LM324 (4 Op-amp tích hợp) |
Khuếch đại hai tầng nối tiếp với $K = 10.201$ |
| Vi điều khiển module |
PIC16F877A |
Lấy mẫu tín hiệu và chuyển đổi tín hiệu tương tự sang số |
| Nguồn cấp và ổn áp |
Pin $9\text{ V}$ + IC 7805 |
Tạo điện áp ổn định $+5\text{ V}$ nuôi hệ thống |
Phần cứng máy tính điều khiển trung tâm
Kit Raspberry Pi đảm nhận thu nhận dữ liệu từ vi điều khiển qua chân giao tiếp, lưu vào cơ sở dữ liệu và vận hành web server:
- Vi xử lý SoC: Broadcom BCM2836 lõi tứ ARM Cortex-A7, tốc độ $900\text{ MHz}$.
- Bộ nhớ RAM: $1\text{ GB}$ (Hynix hoặc Samsung).
- Bộ xử lý đồ họa GPU: Broadcom VideoCore IV $250\text{ MHz}$, hỗ trợ OpenGL ES 2.0.
- Kết nối và ngoại vi: Cổng mạng Ethernet 10/100 Mbps, 40 chân GPIO (gồm 8 chân GPIO chuẩn, 2 bus SPI), ngõ ra HDMI, cổng RCA, cổng Audio $3{,}5\text{ mm}$, khe cắm thẻ nhớ microSD.
- Nguồn cấp: $5\text{ V}$ qua cổng Micro USB, dòng định mức $600\text{ mA}$ (công suất $3{,}0\text{ W}$).
Triển khai phần mềm và dịch vụ mạng
- Hệ điều hành: Sử dụng phiên bản Raspbian Wheezy cài đặt trên thẻ nhớ microSD. Cấu hình IP tĩnh cho Raspberry Pi bằng cách chỉnh sửa tham số
ip=X... tại tệp cmdline.txt. Kết nối điều khiển từ xa thông qua giao thức SSH bằng phần mềm PuTTY (cổng kết nối mặc định 22, tài khoản pi, mật khẩu raspberry). Điều khiển giao diện đồ họa thông qua phần mềm Xming trên máy tính với tính năng X11 Forwarding và lệnh khởi động startlxde.
- Cơ sở dữ liệu MySQL: Thiết lập CSDL mang tên
hb trên Raspberry Pi, gồm hai bảng lưu trữ:
- Bảng
nt: Lưu trữ dữ liệu đo, gồm trường time (kiểu dữ liệu time, thuộc tính NOT NULL) và trường heartrate (kiểu dữ liệu int(11), thuộc tính NOT NULL).
- Bảng
account: Lưu thông tin xác thực quản trị, gồm trường id (kiểu int(11), NOT NULL, khóa chính Primary Key, tự động tăng Auto_increment), trường username (kiểu varchar(30)) và trường password (kiểu varchar(30)).
- Lập trình thu thập dữ liệu (Python): Kết nối MySQL từ script Python thông qua thư viện
MySQLdb với cú pháp MySQLdb.connect("localhost", "root", "mysql", "hb"). Đọc thông số nhịp tim từ module phần cứng (hàm analog_read), lấy mốc thời gian hệ thống bằng hàm NOW(), sau đó dùng đối tượng con trỏ cursor.execute() để chèn bản ghi vào bảng nt. Tần suất đọc và ghi dữ liệu được duy trì trung bình 1 lần/giây nhờ hàm trễ thời gian time.sleep().
- Máy chủ Web và giao diện hiển thị:
- Vận hành dịch vụ web Apache, xử lý backend bằng ngôn ngữ PHP kết hợp hàm
mysql_connect(), mysql_select_db() và thực thi truy vấn SELECT * FROM nt.
- Trích xuất dữ liệu bản ghi thành mảng bằng
mysql_fetch_array(), chuyển đổi cấu trúc mảng sang định dạng JSON thông qua cú pháp json_encode($row).
- Frontend sử dụng HTML, CSS, JavaScript và thư viện vẽ đồ thị để biểu diễn nhịp tim dưới dạng đồ thị đường (Line Chart). Trang web được thiết lập tự động làm mới để cập nhật dữ liệu liên tục sau mỗi chu kỳ $10.000\text{ ms}$ ($10\text{ giây}$) bằng hàm
window.setInterval("reFresh()", 10000).
- Cấu trúc giao diện web gồm 2 trang: Trang đăng nhập xác thực tài khoản từ bảng
account và Trang chủ hiển thị biểu đồ diễn tiến nhịp tim.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 trình bày tính cấp thiết của đề tài trong bối cảnh phát triển của kỹ thuật y sinh và giải pháp công nghệ IoT. Tác giả dẫn chứng hai công trình nghiên cứu tiêu biểu liên quan đến việc giám sát sức khỏe từ xa (đề tài dùng MSP430 và RF HM-TRP 433 gửi SMS của Phạm Thái Bình - Tiết Xuân Sang; đề tài dùng mạng cảm biến không dây Bluetooth của J.Gázquez), từ đó làm rõ lý do lựa chọn kit Raspberry Pi làm trung tâm thu thập dữ liệu và kết nối web server. Chương này công bố 3 mục tiêu cụ thể, 6 nội dung nghiên cứu chi tiết, xác định 3 giới hạn phạm vi của đề tài và trình bày sơ đồ bố cục tổng thể gồm 6 chương.
Chương 2: Cơ sở lý thuyết
Chương 2 cung cấp nền tảng lý thuyết toàn diện phục vụ việc xây dựng hệ thống:
- Trình bày tổng quan về ngôn ngữ lập trình Python (lịch sử do Guido van Rossum phát triển năm 1990, kiến trúc CPython, cơ chế thụt lề quản lý khối lệnh, các cấu trúc điều khiển).
- Trình bày các công nghệ lập trình web bao gồm HTML (chuẩn hóa bởi W3C năm 1994, hệ thống các thẻ cấu trúc cơ bản), máy chủ HTTP Apache mã nguồn mở, ngôn ngữ PHP xử lý kịch bản phía máy chủ, ngôn ngữ truy vấn cơ sở dữ liệu có cấu trúc SQL và ngôn ngữ lập trình JavaScript kết hợp thư viện jQuery.
- Khái quát nguyên lý vận hành của Web Server dựa trên giao thức truyền vận HTTP giữa máy khách và máy chủ.
- Trình bày lý thuyết sinh lý tim, cơ chế dẫn truyền điện học của nút SA, nút AV, mạng Purkinje; phân tích quá trình vận chuyển ion qua màng tế bào cơ tim tạo điện thế nghỉ $-90\text{ mV}$; định nghĩa các chuyển đạo ECG (3 chuyển đạo song cực DI-DIII, 3 chuyển đạo đơn cực chi aVR, aVL, aVF với điện trở $5000,\Omega$, 6 chuyển đạo trước tim V1-V6); mô tả hình thái các sóng P, Q, R, S, T, U; tổng hợp số liệu nhịp tim trung bình theo lứa tuổi và các dải tần số biến thiên nhịp tim (ULF, VLF, LF, HF).
Chương 3: Tính toán và thiết kế
Chương 3 trình bày quy trình thiết kế cấu trúc hệ thống và tính toán các linh kiện phần cứng:
- Xây dựng sơ đồ khối tổng thể của toàn hệ thống (gồm khối nguồn, khối thu tín hiệu nhịp tim, khối điều khiển trung tâm, khối truyền thông, khối hiển thị) và sơ đồ khối chức năng chi tiết của khối thu tín hiệu nhịp tim.
- Thuyết minh lựa chọn phần cứng: phân tích thông số kỹ thuật của board mạch Raspberry Pi 2 Model B; chọn cặp LED phát - Photo Diode hồng ngoại cho khối cảm biến; chọn vi điều khiển PIC16F877A cho khối xử lý tín hiệu cục bộ; chọn IC LM324 cho khối lọc và khuếch đại; chọn IC ổn áp 7805 kết hợp nguồn pin $9\text{ V}$.
- Trình bày các bước thiết lập phần mềm: chọn hệ điều hành Raspbian Wheezy; hướng dẫn quy trình kết nối không cần màn hình qua giao thức SSH bằng PuTTY, gán IP tĩnh qua tệp
cmdline.txt và chuyển hướng môi trường đồ họa bằng phần mềm Xming với lệnh startlxde.
- Thực hiện tính toán giá trị linh kiện: tính điện trở hạn dòng LED phát ($150,\Omega$), điện trở tải cảm biến ($33\text{ k}\Omega$); thiết kế mạch lọc thông dải $0{,}7\text{ Hz} - 2{,}7\text{ Hz}$ với $C_6 = 4{,}7,\mu\text{F}$, $R_3 = 47\text{ k}\Omega$ (thông cao) và $C_7 = 100\text{ nF}$, $R_5 = 680\text{ k}\Omega$ (thông thấp); xác lập hệ số khuếch đại qua hai tầng đạt $K = 10.201$ lần; thuyết minh nguyên lý quang thể tích tách thành phần AC và DC qua ngón tay.
Chương 4: Thi công hệ thống
Chương 4 mô tả chi tiết quá trình hiện thực hóa mô hình từ sơ đồ thiết kế đến sản phẩm vật lý:
- Trình bày lưu đồ thuật toán chi tiết của chương trình đo nhịp tim.
- Thiết kế layout và gia công mạch in PCB thực tế cho khối đo tín hiệu nhịp tim, kèm hình ảnh mô phỏng 3D.
- Ghi nhận thông số đo kiểm điện áp thực tế tại các điểm kiểm tra trên mạch sau khi nạp chương trình.
- Quy trình cài đặt và cấu hình cơ sở dữ liệu MySQL: xây dựng CSDL
hb gồm cấu trúc bảng nt và bảng account; giải thích kiểu dữ liệu int(11), varchar(30) và thuộc tính khóa chính tự tăng auto_increment.
- Lập trình nhúng Python giao tiếp MySQL qua module
MySQLdb, sử dụng hàm NOW() và đối tượng cursor để ghi dữ liệu.
- Viết mã nguồn PHP kết nối CSDL bằng
mysql_connect(), trích xuất bản ghi bằng mysql_query(), chuyển định dạng sang JSON bằng json_encode() để truyền vào JavaScript.
- Thiết kế giao diện hai trang web: trang đăng nhập người dùng và trang chủ vẽ biểu đồ dạng đường, tích hợp cơ chế làm mới định kỳ mỗi $10\text{ giây}$.
Chương 5: Kết quả, nhận xét và đánh giá
Chương 5 báo cáo kết quả hoạt động thực tế của mô hình:
- Trưng bày hình ảnh phần cứng hoàn chỉnh sau thi công, gồm kit Raspberry Pi, module mạch đo nhịp tim và khối nguồn cung cấp.
- Ghi nhận kết quả thu thập dữ liệu: hàm Python
heartrate = analog_read(23) đọc tín hiệu từ module mạch đo nhịp tim của đối tượng người bình thường ở trạng thái nghỉ ngơi, giá trị hiển thị dao động ổn định trong khoảng $60 - 100\text{ nhịp/phút}$.
- Đánh giá tần suất lấy mẫu và đẩy số liệu vào CSDL MySQL được duy trì trung bình 1 lần/giây.
- Đánh giá giao diện trang web hiển thị biểu đồ thời gian thực, xác nhận hệ thống hoạt động ổn định và cập nhật đồ thị theo đúng chu kỳ định trước.
Chương 6: Kết luận và hướng phát triển
Chương 6 đúc kết toàn bộ khối lượng công việc đã hoàn thành:
- Khẳng định hệ thống đã đáp ứng các mục tiêu đề ra về mặt thiết kế mạch đo, thu nhận dữ liệu, lưu trữ cơ sở dữ liệu và hiển thị giám sát trên giao diện web.
- Tổng hợp các ưu điểm về tính gọn nhẹ, tiết kiệm chi phí, hiển thị thời gian thực trực quan và chỉ ra các mặt hạn chế còn tồn tại.
- Đề xuất các giải pháp kỹ thuật cụ thể nhằm mở rộng và hoàn thiện hệ thống trong các giai đoạn nghiên cứu tiếp theo.
Kết quả và đóng góp
Kết quả đo kiểm thực nghiệm
Quá trình đo kiểm các thông số điện áp trên phần cứng thực tế đạt được các mốc giá trị:
- Điện áp thành phần một chiều (DC) của tín hiệu nhịp tim sau cảm biến: khoảng $1{,}8\text{ V}$.
- Điện áp thành phần xoay chiều (AC) của tín hiệu nhịp tim khi chưa khuếch đại: dao động ở mức vài milivolt ($\text{mV}$).
- Điện áp sau khi qua tầng khuếch đại thứ nhất: đạt mức vài trăm milivolt ($\text{mV}$).
- Điện áp sau khi qua tầng khuếch đại thứ hai để cấp vào chân vi điều khiển: đạt dải điện áp từ $2{,}5\text{ V}$ đến $3{,}8\text{ V}$.
- Kết quả thu thập dữ liệu nhịp tim trên người bình thường ở trạng thái nghỉ ngơi: giá trị đo được nằm trong khoảng $60 - 100\text{ nhịp/phút}$.
- Tốc độ cập nhật dữ liệu: script Python ghi dữ liệu vào CSDL MySQL trên Raspberry Pi với chu kỳ trung bình $1\text{ lần/giây}$; giao diện đồ thị trang web tự động làm mới dữ liệu sau mỗi $10.000\text{ ms}$ ($10\text{ giây}$).
Giải pháp và đóng góp kỹ thuật của đề tài
- Xây dựng thành công mô hình tích hợp đồng bộ giữa phần cứng đo tín hiệu y sinh với máy tính nhúng Raspberry Pi, biến board mạch nhúng thành một trạm máy chủ cơ sở dữ liệu và web server độc lập tại chỗ.
- Khắc phục nhược điểm của giải pháp truyền tin nhắn SMS trong nghiên cứu của Phạm Thái Bình và Tiết Xuân Sang: loại bỏ chi phí cước viễn thông phát sinh liên tục, cho phép dữ liệu được ghi nhận đồng thời với quá trình thu thập và không bị giới hạn số lượng thiết bị truy cập theo dõi.
- Khắc phục nhược điểm của giải pháp truyền thông Bluetooth trong nghiên cứu của J.Gázquez: dữ liệu được số hóa và đưa lên nền tảng mạng IP thông qua máy chủ web, giúp vượt qua rào cản hạn chế về cự ly kết nối vật lý và hiện tượng suy hao khi gặp chướng ngại vật của sóng Bluetooth ngắn mạch.
Hạn chế và hướng nghiên cứu tiếp
Theo công bố của nhóm tác giả trong văn bản, đồ án còn tồn tại các hạn chế kỹ thuật:
- Hệ thống chỉ mới thu thập duy nhất thông số nhịp tim, chưa tích hợp kết hợp được với các thiết bị đo lường những thông số sinh tồn y tế khác (như nhiệt độ cơ thể, huyết áp).
- Hệ thống chưa có khả năng phân tích để chẩn đoán tình trạng bệnh lý của bệnh nhân thông qua dữ liệu nhịp tim và dạng sóng thu nhận được.
- Phạm vi kết nối còn bị hạn chế, chủ yếu vận hành trong cấu hình mạng nội bộ xác định.
Các định hướng nghiên cứu tiếp theo được tác giả đề xuất:
- Mở rộng phần cứng để tích hợp thêm các cảm biến đo thông số sinh tồn y tế khác nhằm xây dựng hệ thống theo dõi sức khỏe toàn diện.
- Phát triển các giải pháp thuật toán chuyên sâu để phân tích dữ liệu nhịp tim, hỗ trợ đưa ra các nhận định và cảnh báo bệnh lý tim mạch tự động.
- Nâng cấp hạ tầng truyền thông và cấu hình máy chủ để mở rộng phạm vi kết nối, hỗ trợ giám sát bệnh nhân từ xa qua môi trường mạng diện rộng Internet.
Giá trị tham khảo
Đồ án là tài liệu tham khảo hữu ích cho sinh viên, học viên và kỹ sư thuộc các ngành:
- Công nghệ Kỹ thuật Điện tử - Truyền thông, Kỹ thuật Y sinh, Kỹ thuật Máy tính và Hệ thống Nhúng - IoT.
- Người thực hiện các đề tài nghiên cứu về thiết kế mạch lọc - khuếch đại xử lý tín hiệu tương tự (analog) cho các cảm biến sinh học biên độ cực nhỏ.
- Người nghiên cứu về ứng dụng hệ điều hành Linux nhúng (Raspbian) trên Raspberry Pi làm máy chủ dịch vụ mạng tại chỗ.
Các nội dung có giá trị tham khảo kỹ thuật cao trong văn bản gồm:
- Phương pháp tính toán thông số chi tiết cho mạch lọc dải thông tần số cực thấp ($0{,}7\text{ Hz} - 2{,}7\text{ Hz}$) và tính toán hệ số khuếch đại lớn ($K = 10.201$) sử dụng IC Op-amp LM324.
- Quy trình cấu hình và quản trị Raspberry Pi không cần màn hình hiển thị phụ trợ (headless) thông qua cáp mạng RJ45, giao thức SSH, thiết lập IP tĩnh trong
cmdline.txt và chuyển hướng đồ họa qua Xming.
- Kiến trúc tích hợp chuỗi luân chuyển dữ liệu hoàn chỉnh từ vi điều khiển cục bộ, script Python thu thập dữ liệu, hệ quản trị cơ sở dữ liệu quan hệ MySQL đến máy chủ web Apache/PHP xuất định dạng JSON cho biểu đồ JavaScript hiển thị thời gian thực.
Câu hỏi thường gặp
1. Mạch đo nhịp tim trong đồ án sử dụng dải tần số cắt là bao nhiêu và được tính toán như thế nào?
Mạch đo được thiết kế để bắt dải tần số nhịp tim người từ $40$ đến $160\text{ nhịp/phút}$, tương ứng với dải tần số $0{,}7\text{ Hz} < f_{tim} < 2{,}7\text{ Hz}$. Tác giả sử dụng IC LM324 thiết lập hai bộ lọc:
- Bộ lọc thông cao ($R_3, C_6$) có tần số cắt $f_1 = 0{,}7\text{ Hz}$ với công thức $f_1 = \frac{1}{2\pi R_3 C_6} = 0{,}7\text{ Hz}$, chọn tụ $C_6 = 4{,}7,\mu\text{F}$ và điện trở $R_3 = 47\text{ k}\Omega$.
- Bộ lọc thông thấp ($R_5, C_7$) có tần số cắt $f_2 = 2{,}7\text{ Hz}$ với công thức $f_2 = \frac{1}{2\pi R_5 C_7} = 2{,}7\text{ Hz}$, chọn tụ $C_7 = 100\text{ nF}$ và điện trở $R_5 = 680\text{ k}\Omega$.
2. Tổng hệ số khuếch đại của mạch đo là bao nhiêu và mức điện áp ngõ ra thực tế đạt mức nào?
Mạch sử dụng 2 tầng khuếch đại Op-amp mắc nối tiếp, mỗi tầng có độ khuếch đại $K_1 = K_2 = 101$. Tổng hệ số khuếch đại toàn mạch đạt:
$$K = K_1 \times K_2 = 101 \times 101 = 10.201\text{ lần}$$
Khi kiểm tra thực tế, tín hiệu AC ban đầu ở mức vài milivolt ($\text{mV}$) sau tầng 1 đạt mức vài trăm milivolt, và sau tầng 2 đạt mức $2{,}5\text{ V} - 3{,}8\text{ V}$ trước khi đưa vào vi điều khiển PIC16F877A.
3. Cơ sở dữ liệu MySQL trên Raspberry Pi được tổ chức với cấu trúc bảng như thế nào?
Cơ sở dữ liệu mang tên hb gồm hai bảng:
- Bảng
nt: Chứa dữ liệu đo, gồm trường time (kiểu time, không nhận giá trị Null) và trường heartrate (kiểu int(11), không nhận giá trị Null).
- Bảng
account: Chứa thông tin đăng nhập, gồm trường id (kiểu int(11), không nhận Null, là khóa chính Primary Key, tự động tăng Auto_increment), trường username (kiểu varchar(30)) và trường password (kiểu varchar(30)).
4. Nhóm tác giả thực hiện kết nối và điều khiển Raspberry Pi từ máy tính bằng phương thức nào khi không có màn hình phụ?
Nhóm tác giả nối máy tính với Raspberry Pi qua dây cáp mạng RJ45, đặt IP máy tính ở chế độ động và thiết lập IP tĩnh cho Raspberry Pi bằng cách thêm tham số ip=X... vào cuối tệp cmdline.txt trên thẻ nhớ microSD. Sau đó, tác giả sử dụng phần mềm PuTTY để mở phiên làm việc dòng lệnh qua giao thức SSH (cổng 22, tài khoản pi, mật khẩu raspberry), đồng thời chạy phần mềm Xming trên máy tính và kích hoạt tính năng X11 Forwarding trong PuTTY để khởi động giao diện màn hình máy tính nhúng bằng lệnh startlxde.
5. Dữ liệu nhịp tim được cập nhật lên Raspberry Pi và hiển thị trên giao diện web với tần suất bao lâu?
Trong script Python, thông số nhịp tim được đọc từ chân tín hiệu và ghi vào CSDL MySQL trên Raspberry Pi với chu kỳ trung bình $1\text{ lần/giây}$ thông qua việc sử dụng hàm trễ time.sleep(). Trên giao diện trang web, hàm JavaScript window.setInterval("reFresh()", 10000) được thiết lập để tự động tải lại và cập nhật đồ thị dạng đường sau mỗi chu kỳ $10.000\text{ ms}$ ($10\text{ giây}$).
Kết luận
Đồ án tốt nghiệp "Ứng dụng Raspberry Pi giám sát nhịp tim thông qua trang web" đã thiết kế và thi công hoàn chỉnh mô hình phần cứng thu nhận nhịp tim bằng phương pháp thể tích quang học với hệ số khuếch đại $10.201$ lần trong dải thông $0{,}7 - 2{,}7\text{ Hz}$. Nghiên cứu đã tích hợp thành công bo mạch máy tính nhúng Raspberry Pi 2 Model B chạy hệ điều hành Raspbian Wheezy để thực hiện việc tiếp nhận dữ liệu nhịp tim, lưu trữ tự động vào hệ quản trị cơ sở dữ liệu MySQL và trực quan hóa dữ liệu qua máy chủ web Apache. Kết quả thực nghiệm cho thấy hệ thống hoạt động ổn định, đo được nhịp tim người nghỉ ngơi trong dải $60 - 100\text{ nhịp/phút}$ và tự động làm mới đồ thị giám sát trên trình duyệt định kỳ mỗi $10\text{ giây}$.