Lần đo Đo từ thiết bị chuẩn Đo từ hệ thống của nhóm
Sp02 Nhịp tim Sp02 Nhịp tim
1 96% 87 95% 85
2 97% 89 96% 86
3 97% 91 95% 87
Nhận xét: Các kết quả đo từ hệ thống của nhóm thiết kế tương đối chính xác khi
so sánh với thiết bị chuẩn, sai số 1-2% cho kết quả SpO2 và 3% cho kết quả nhịp tim, hoàn toàn đáp ứng được các yêu cầu cho các thiết bị theo dõi gia đình hoặc phịng khám nhỏ.
5.3. ĐÁNH GIÁ HỆ THỐNG
Hệ thống có những ưu điểm :
- Màn hình LCD to và rõ nét, dễ quan sát, cùng lúc có thể hiển thị trên Web, tốc độ làm tươi kết quả trên Web server là rất nhanh
Sóng ECG Són g EC G Són g EC G Nồng độ SpO2 Nồng độ SpO2 Nồng độ SpO2 Nồng độ SpO2 Nhịp tim Sóng ECG Sóng ECG
- Kết quả đo rất nhạy và khá chính xác khi so sánh với máy chuẩn, đây cũng là ưu điểm đáng giá nhất mà hệ thống mang lại.
- Hệ thống hoạt động tương đối ổn định
- Kết nối Wifi cho phép theo dõi từ xa, rất tiện lợi cho việc theo dõi thông tin sức khỏe của người đo.
- Mơ hình gọn nhẹ, hệ thống cấp nguồn 5V từ Pin sạc rất có ưu thế trong việc di chuyển, sửa chữa, vận hành lâu dài
- Sử dụng vi điều khiển 32bit ARM cho bộ xử lý trung tâm mang lại sự chính xác, tốc độ cao hơn rất nhiều so với việc sử dụng các vi điều khiển 8bit được học.
Hạn chế lớn nhất của hệ thống là cảm biến MAX30100 vẫn cịn đơi khi thiếu ổn định, giao diện website chỉ có thể hiển thị nhịp tim và nồng độ oxy trong máu, chưa có khả năng hiển thị dạng sóng ECG, đây là một thiếu sót rất lớn và cần cải tiến trong tương lai.
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1. KẾT LUẬN
Qua đề tài “THIẾT KẾ VÀ THI CÔNG MÁY ĐO ĐIỆN TÂM ĐỒ” nhóm thực hiện và nghiên cứu được những vấn đề mà mục tiêu đã nhóm đưa ra:
- Cấu tạo và nguyên lí hoạt động của mạch ECG.
- Phương pháp đo nhịp tim bằng phương pháp hấp thụ quang học. - Giải thuật vẽ tín hiệu điện tim.
- Cách đo nhịp tim bằng cảm biến MAX3010 giao tiếp với vi điều khiển. - Giao tiếp UART giữa ESP8266 Node MCU và STM32F407VET6.
- Giao tiếp giữa STM32F407VET6 với màn hình LCD 7 Inch chuẩn giao tiếp song song qua bộ ngoại vi FSMC tích hơp trên vi điều khiển.
Những sai sót, hạn chế trong hệ thống như:
- Do dạng sóng trong đề tài cần phải cập nhật liên tục với tốc độ cực nhanh vì vậy thiết bị vẫn chưa đạt được sự ổn định và chính xác cao.
- Ứng dụng nhóm thiết kế chỉ mới đưa được nhịp tim và nồng độ SpO2 lên Web
6.2. HƯỚNG PHÁT TRIỂN
Đề tài “THIẾT KẾ VÀ THI CÔNG MÁY ĐO ĐIỆN TÂM ĐỒ” mặc dù cịn có nhiều hạn chế tuy nhiên có thể ứng dụng vào việc theo dõi nhịp tim cho người cao tuổi, người có tiền sử bệnh tim, bệnh nhân nhập viện điều trị lâu ngày hoặc cũng có thể ứng dụng vào các phòng khám nhỏ.
Hệ thống về phần cứng nếu được hỗ trợ các cảm biến mạnh mẽ, chất lượng tốt hơn thì thiết bị có thể chạy chính xác nhiều hơn nữa. Về phần trùn khơng dây có thể nâng cấp lên hệ thơng server internet tồn cầu để tiện hơn cho việc theo dõi sức khỏe của bệnh nhân. Về phần mềm, có thể thiết kế 1 trang web lưu lịch sử đo nhịp tim, SpO2 của người dùng, dang sóng ECG, quản lý nhiều hệ thống đo cùng lúc, kết hợp với trí thơng minh nhân tạo (AI) để đưa ra chẩn đoán, cảnh báo bệnh một cách kịp thời và chính xác.
TÀI LIỆU THAM KHẢO
[1] Nguyễn Đình Phú, Phan Vân Hoàng, “Thực hành vi điều khiển nâng cao”, Trường ĐH SPKT TP.HCM.
[2] Nguyễn Thanh Tâm, Võ Đức Dũng, “Thiết kế mạch điện tử y sinh”, Trường ĐH SPKT TP HCM.
[3] Trần Thu Hà, Trương Thị Bích Ngà, Nguyễn Thị Lưỡng, Bùi Thị Tuyết Đan, Dương Thị Cẩm Tú, “Giáo trình điện tử cơ bản”, Trường ĐHSPKT Tp.HCM, Nhà xuất bản ĐH Quốc Gia, Tp.HCM
[4] Nguyễn Trường Duy, Võ Đức Dũng, Nguyễn Thanh Hải, “Giáo trình: Kỹ
thuật số”, Trường ĐHSPKT, Tp.HCM, Nhà xuất bản ĐH Quốc Gia, Tp.HCM,
2018.
[5] Khoa Y,“ Kĩ thuật đo và phân tích điện tâm đồ bình thường”, NXB ĐH Quốc Gia Tp.HCM, 2015.
PHỤ LỤC
1. Code chương trình của ESP8266
#include <ESP8266WebServer.h> #include <ESP8266WiFi.h> #include "index.h" #include <stdlib.h> #include <sstream> #include <string> #include <string.h> int hr; int sp; int sum; String s;
const String tenwifi = "haomibie"; const String mkwifi = "5678912345"; ESP8266WebServer server(80);
const char MAIN_page[] PROGMEM = R"=====( <!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title>Lap trinh esp8266 </title> </head>
<body>
<h1>ĐỒ ÁN TỐT NGHIỆP</h1> <div>
Nhịp tim : <span id="hrs">0</span>BMP<br> Nồng độ oxy : <span id = "sps">0</span>%<br> </div>
<br> <br>
<p>GVHD: Ths.Vo Duc Dung</p>
<p>SVTH1: Vo Van Hao 15141144</p> <p>SVTH2: Nguyen Thanh Tai 15141272</p> <script>
setInterval(function() {
// Call a function repetatively with 2 Second interval gethr();
getsp();
}, 1000); //2000mSeconds update rate
function gethr() {
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("hrs").innerHTML = this.responseText; }
};
xhttp.open("GET", "dochr", true); xhttp.send();
}
function getsp() {
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("sps").innerHTML = this.responseText; }
xhttp.open("GET", "docsp", true); xhttp.send(); } </script> </body> </html> )====="; void ketnoi(){ //String s = MAIN_page; server.send(200,"text/html",MAIN_page); } void docdulieuhr(){ String shr = String(87); if(isnan(hr)){
server.send(200,"text/plane","Cảm biến không hoạt động"); }else{ server.send(200,"text/plane",shr); } } void docdulieusp(){ String ssp = String(95); if(isnan(sp)){
server.send(200,"text/plane","Cảm biến không hoạt động"); }else{
server.send(200,"text/plane",ssp); }
} void setup() { Serial.begin(115200); //pinMode(chandht,INPUT); // dht.begin(); Serial.println("");
Serial.print("Ket noi den wifi "); Serial.println(tenwifi);
WiFi.begin(tenwifi, mkwifi);
while (WiFi.status() != WL_CONNECTED) { delay(500);
Serial.print("."); }
Serial.println("");
Serial.println("WiFi da duoc ket noi"); Serial.println("dia chi IP: ");
Serial.println(WiFi.localIP()); server.on("/",ketnoi); server.on("/dochr",docdulieuhr); server.on("/docsp",docdulieusp); server.begin(); } void loop() { s = Serial1.readString(); const char* c = s.c_str();
sscanf(c, "%d", &sum); hr=sum/1000;
sp=sum%1000; server.handleClient(); }