TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Thiết kế máy đo huyết áp tự động tích hợp gửi lưu liệu lên smartphone DƯƠNG HỒNG NGUYÊN Ngành Kỹ thuật Y sinh Giảng viên hướng dẫn: TS Nguyễn Việt Dũng Viện: Điện tử - Viễn thông HÀ NỘI, 2021 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Thiết kế máy đo huyết áp tự động tích hợp gửi lưu liệu lên smartphone DƯƠNG HỒNG NGUYÊN Ngành Kỹ thuật Y sinh Giảng viên hướng dẫn: TS Nguyễn Việt Dũng Viện: Điện tử - Viễn thông HÀ NỘI, 2021 Chữ ký GVHD CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn: Dương Hồng Nguyên Đề tài luận văn: Thiết kế máy đo huyết áp tự động tích hợp gửi lưu liệu lên smartphone Chuyên ngành: Kỹ thuật Y sinh Mã số SV: CB190190 Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 22/04/2021 với nội dung sau: - Trích dẫn nguồn hình khơng tự vẽ - Tài liệu tham khảo cần trích dẫn đầy đủ luận văn - Bổ sung đầy đủ danh mục từ viết tắt - Hình 16,17 nên vẽ đậm nét rõ ràng, tăng kích thước chữ hình Ngày Giáo viên hướng dẫn tháng năm 2021 Tác giả luận văn CHỦ TỊCH HỘI ĐỒNG LỜI CẢM ƠN Để hồn thành luận văn này, tơi xin bày tỏ lòng biết ơn tới TS Nguyễn Việt Dũng – người định hướng, trực tiếp dẫn dắt cố vấn cho suốt thời gian thực nghiên cứu thiết kế thực đề tài Xin chân thành cảm ơn thầy, cô giảng viên môn Công nghệ Điện tử Kỹ thuật Y sinh, viện Điện tử Viễn thông, trường Đại học Bách khoa Hà Nội giảng dạy truyền đạt kiến thức hữu ích ngành kỹ thuật y sinh nói chung kiến thức cần thiết để thực luận văn nói riêng, đồng thời ln bày tỏ quan điểm, nhận xét, đóng góp giúp tơi hướng suốt thời gian nghiên cứu thực đề tài luận văn thạc sĩ Hà Nội, ngày tháng năm 2021 Học viên Dương Hồng Nguyên Tóm tắt nội dung luận văn Những năm gần đây, số lượng bệnh nhân mắc bệnh tăng huyết áp gia tăng ngày nhanh dần có xu hướng trẻ hố người mắc bệnh Mặc dù việc đo huyết áp cá nhân chuyện dễ ràng, nhiên để theo dõi đánh giá kết đo huyết áp lại vấn đề lớn người: thói quen, bất tiện, kiến thức bệnh lý… Vì vậy, đề tài hướng đến nghiên cứu thiết kế thiết bị đo huyết áp ứng dụng kèm giúp người theo dõi huyết áp cách dễ ràng, thuận tiện, có hiệu đánh giá, chẩn đốn cao Đề tài thiết kế máy đo huyết áp tự động phương pháp dao động ký với khả kết nối ứng dụng điện thoại Với mong muốn thiết kế có độ xác tương đương với thiết bị đo huyết áp có thị trường Kết nghiên cứu tiền đề cho sản phẩm với tính hỗ trợ chẩn đoán lâm sàng tốt phân tích bệnh lý liên quan đến huyết áp, hỗ trợ kết nối người dùng với chuyên gia y tế để người dùng nhận tư vấn, giải đáp thắc mắc, thăm khám từ xa In recent years, the number of patients suffering from hypertension is increasing rapidly and tends to rejuvenate for those infected Although measuring blood pressure is very easy, but the monitoring and evaluating the blood pressure measurements is a big problem for everyone: due to habit, inconvenience, knowledge about pathology, Therefore, the topic focuses on researching and designing blood pressure measuring devices with accompanying applications to help people monitor blood pressure easily, conveniently and low cost, high diagnosis efficency The topic of designing automatic blood pressure device by the method of oscillometric with the ability to connect to apps on the Android smartphones With the desire to design with accuracy equivalent to the commercial blood pressure devices The research results will be the premise for products with better clinical diagnostic support such as analysis of blood pressure-related diseases, and support to connect users with medical experts for users HỌC VIÊN Ký ghi rõ họ tên Dương Hồng Nguyên MỤC LỤC CHƯƠNG 1: GIỚI THIỆU CHUNG 1.1 Đặt vấn đề 1.1.1 Thực trạng bệnh tăng huyết áp 1.1.2 Mục tiêu đề tài 1.1.3 Định hướng sản phẩm nghiên cứu 1.2 Huyết áp 1.2.1 Sự hình thành huyết áp 1.2.2 Các yếu tố ảnh hưởng đến huyết áp 1.3 Các phương pháp đo huyết áp 1.3.1 Phương pháp đo trực tiếp 1.3.2 Phương pháp đo huyết áp gián tiếp 1.3.3 Các nghiên cứu phát triển đo huyết áp khơng vịng bít 12 1.4 Phương pháp dao động ký để đo huyết áp 15 1.4.1 Nguyên lý đo huyết áp kỹ thuật dao động ký 15 1.4.2 Q trình đo xử lý tín hiệu huyết áp không xâm lấn 18 1.4.3 Các thành phần nhiễu trình đo huyết áp 20 CHƯƠNG 2: THIẾT KẾ THIẾT BỊ ĐO HUYẾT ÁP VÀ ỨNG DỤNG KẾT NỐI 21 2.1 Đề xuất yêu cầu thiết kế sản phẩm 21 2.2 Thiết kế thiết bị đo huyết áp 21 2.2.1 Sơ đồ khối lưu đồ hoạt động thiết bị đo huyết áp 21 2.2.2 Khối nguồn 22 2.2.3 Khối động van khí vịng bít 23 2.2.4 Khối khuếch đại tin hiệu 25 2.2.5 Khối lọc tín hiệu 25 2.2.6 Khối vi xử lý 27 2.2.7 Khối giao tiếp 28 2.2.8 Khối cảm biến 29 2.2.9 Thiết kế hoàn thiện 33 2.3 Thiết kế ứng dụng điều khiển 35 2.3.1 Ngôn ngữ sử dụng 35 2.3.2 Thiết kế ứng dụng 36 i 2.3.2.1 Các hình hiển thị đo huyết áp 36 2.3.2.2 Quy trình đo huyết áp ứng dụng 36 CHƯƠNG 3: KẾT QUẢ THỬ NGHIỆM 39 3.1 Thiết lập quy trình thử nghiệm 39 3.2 Kết thử nghiệm 40 3.3 Đánh giá 41 KẾT LUẬN 43 PHỤ LỤC 47 ii DANH MỤC HÌNH ẢNH Hình 1: Biểu đồ thống kê tình hình bệnh nhân tăng huyết áp Việt Nam qua năm[3] Hình 2: Chỉ số huyết áp bình thường theo tuổi[3] Hình 3:Huyết áp áp lực cần thiết tác động lên thành động mạch để đưa máu từ tim đến nuôi dưỡng mô thể Hình 4: Minh hoạ phương pháp đo huyết áp trực tiếp qua đường động mạch tĩnh mạch cánh tay Hình 5: Dạng sóng âm phương pháp đo huyết áp âm Korotkoff Hình 6: Kỹ thuật đo huyết áp phương pháp dao động ký 10 Hình 7: Đo huyết áp sử dụng kỹ thuật siêu âm Doppler 10 Hình 8: Hình ảnh minh hoạ nguyên lý đo huyết áp với phương pháp đo vịng bít ngón tay 11 Hình 9: Hệ thống cảm biến đeo Shuzo trình tập thể dục 13 Hình 10: Máy theo dõi huyết áp HeartGuide OMRON 14 Hình 11: Máy theo dõi huyết áp Echolabs 15 Hình 12:Biên độ xung áp lực vịng bít 16 Hình 13:Quá trình xả khí theo bước vịng bít, với bước xả khí thu tín hiệu xung 17 Hình 14: Đường bao xung phương pháp xác định huyết áp theo phân tích độ cao phân tích độ dốc 18 Hình 15: Sơ đồ khối q trình đo xử lý tín hiệu huyết áp 19 Hình 16: Sơ đồ khối thiết bị đo huyết áp đề xuất 22 Hình 17: Lưu đồ hoạt động thiết bị 22 Hình 18: IC LM7805 IC ICL7660s 23 Hình 19:Sơ đồ nguyên lý khối nguồn 23 Hình 20: Khối động cơ, van khí vịng bít sử dụng thiết kế 23 Hình 21: Mạch giao tiếp tải 24 Hình 22: Sơ đồ nguyên lý khối khuếch đại tín hiệu 25 iii Hình 23: IC INA118 để khuếch đại tín hiệu thu 25 Hình 24: Sơ đồ nguyên lý khối lọc tín hiệu 26 Hình 25: Arduino Nano 27 Hình 26: Sơ đồ chân tín hiệu module Arduino nano 28 Hình 27: Module thu phát bluetooth HC- 06 29 Hình 28: Cảm biến 2SMPP-02 OMRON 30 Hình 29: Hình ảnh minh hoạ kế cấu cảm biển áp suất 2SMPP-02 31 Hình 30: Hình ảnh nguyên lý tác động áp lực lên bề mặt cảm điện trở áp điện 31 Hình 31: Sơ đồ chân sơ đồ mạch điện tương đương cảm biến áp suất 2SMPP-02 .32 Hình 32: Sơ đồ mạch điện tương đương cảm biến 2SMPP-02 cấp nguồn 32 Hình 33: Sơ đồ nguyên lý tổng thể thiết kế thiết bị đo huyết áp 33 Hình 34: Thiết kế thực thử nghiệm board test 33 Hình 35: Dạng sóng tín hiệu áp lực thụ sau xử lý nhiễu khuếch đại 34 Hình 36: Thiết kế mạch in sản phẩm trước hàn linh kiện kết nối khối 34 Hình 37: Hình ảnh Mạch thiết kế sau hàn linh kiện kết nối khối 34 Hình 38: Hình ảnh sản phẩm hoàn thiện 35 Hình 39:Màn hình kết nối thiết bị đo huyết áp 36 Hình 40: Lưu đồ thuật toán điều khiển lưu trữ kết đo huyết áp ứng dụng 37 Hình 41: Màn hình kết đo thực tế ứng dụng điện thoại 38 Hình 42: Máy đo huyết áp OMRON HEM-8712 39 Hình 43: Thiết lập thử nghiệm đánh giá thiết bị 40 iv DANH MỤC BẢNG BIỂU Bảng 1: Biến động huyết áp hệ mạch người trường thành Bảng 2: So sánh phương pháp đo huyết áp 11 Bảng 3: Yếu tố lỗi phương pháp đo huyết áp 12 Bảng 4: Bảng thông số kỹ thuật module Arduino nano 27 Bảng 5: Bảng thông số kỹ thuật cảm biến áp suất 2SMPP-02 OMRON 30 Bảng 6: Bảng thông số kỹ thuật máy đo huyết áp OMRON HEM-8712 39 Bảng 7: Bảng kết đánh giá thiết bị thiết kế 40 v Đề tài hi vọng tiếp tục phát triển tiếp tục thiết bị ứng dụng đo huyết áp để thiết bị ứng dụng thương mại hố tương lai Đóng góp phần vào việc kiểm soát điều trị bệnh tăng huyết áp nói riêng kiểm sốt số huyết áp sức khoẻ cá nhân nói chung Một lần nữa, Học viên xin chân thành cảm ơn TS Nguyễn Việt Dũng tận tình giúp đỡ em nghiên cứu 44 Tài liệu tham khảo [1] https://tuoitre.vn/theo-doi-huyet-ap-tai-nha-la-tu-cuu-ban-than2019052815355362.htm [2] https://baomoi.com/tang-huyet-ap-la-ke-giet-nguoi-thamlang/c/38165149.epi [3] https://www.vietnamplus.vn/tang-huyet-ap-la-nguyen-nhan-hang-dau-danden-ty-le-tu-vong/640561.vnp [4] https://www.vinmec.com/vi/tin-tuc/thong-tin-suc-khoe/huyet-ap-la-gi/ [5] https://vi.wikipedia.org/wiki/Huy%E1%BA%BFt_%C3%A1p [6] https://minhkhangmedical.com/wp-content/uploads/2020/10/Art-line.jpg [7] dieutri.vn/sinhlynguoi/do-huyet-ap-tam-thu-va-tam-truong-tren-lam-sang [8] Noninvasive Blood Pressure Measurement © D J McMahon 2014 rev 141018 [9] Brachial-to-radial systolic blood pressure amplification in patients with type diabetes mellitus - Rachel Climie, Dean Picone Journal of Human Hypertension 30 DOI:10.1038/jhh.2015.101 [10] Continuous noninvasive pulse wave analysis using finger cuff technologies for arterial blood pressure and cardiac output monitoring in perioperative and intensive care medicine: a systematic review and meta-analysis, Bernd Saugel, Phillip Hoppe , Julia Y Nicklas, DOI:doi.org/10.1016/j.bja.2020.03.013 [11] https://healthplus.vn/tim-hieu-chi-so-huyet-ap-binh-thuong-theo-do-tuoid64328.html [12] Design and Implementation of a Non-invasive and Cuff-less Arterial Blood Pressure Monitoring System Mojtaba Jafari Tadi Cardiology Conference 2017 Computing in 2017 DOI: 10.22489/CinC.2017.325- 471 [13] Design and Implementation of a Low-Cost Blood Pressure Measuring Device - Muhibul Haque Bhuyan, 10th International Conference on Electrical and Computer Engineering 20-22 December, 2018, Dhaka, Bangladesh DOI: 10.1109/ICECE.2018.8636728 45 [14] A Systematic Review of Wearable Sensors and IoT-Based Monitoring Applications for Older Adults – a Focus on Ageing Population and Independent, Living Mirza Mansoor Baig, Journal of Medical Systems, 2019 https://doi.org/10.1007/s10916-019-1365-7 [15] Recent Research and Developing Trends of Wearable Sensors for Detecting Blood Pressure, Toshiya Arakawa , Sensors 2018, 10.3390/s18092772 [16] Datasheet cảm biến áp suất 2SMPP-02 MEMS Gauge Pressure Sensor: https://components.omron.com/product-detail?partNumber=2SMPP-02 [17] https://nshopvn.com/product/module-thu-phat-bluetooth-hc-06/ [18] http://arduino.vn/bai-viet/273-arduino-nano-nho-tien-loi-mang-tren-minhtinh-hoa-cua-arduino-uno 46 PHỤ LỤC A Code lập trình thiết bị đo huyết áp #include #include #include #define inflate1 #define inflate2 #define deflate #define meas_sys #define meas_pul #define meas_dia #define send_result #define stops // cac chan su dung arduino int rxPin = 2; int txPin = 3; int adc0 = A4; //ADC0 ADC tin hieu int adc1 = A5; //ADC1 la ADC trigger int motor = 7; int valve = 9; int buzz = 8; // cac bien su dung thuong xuyen chuong trinh const float DC_gain = 251; int measurement_state = stops; static char c; int count_sys = 0, count_rate = 0, count_dias = 0; // cac co` su dung chuong trinh unsigned long previousMillis = 0, timerate = 0; float TH_sys, TH_rate, TH_dias, TH_inits; 47 static float DC_trig = 0; static float DC_mmHG = 0; // cac bien luu ket qua chunog trinh static float sysVal = 0, diaVal = 0, pulVal = 0; // cac function chuong trinh float cal_adc_mmHG(int n_time); float cal_adc_trig(int n_time); void do_inflate1(); void do_inflate2(); void do_deflate(); void do_meas_sys(); void do_meas_pul(); void do_meas_dia(); void do_stop(); void do_stop_emergency(); void softBuzz(); void longBuzz(); void sendValue(int i); void sendSYSDIAPUL(int sys, int dia, int pul); SoftwareSerial hc06(rxPin, txPin); void setup() { // put your setup code here, to run once: Serial.begin(9600); delay(50); hc06.begin(9600); 48 delay(50); TH_inits = cal_adc_trig(20); pinMode(motor, OUTPUT); pinMode(buzz, OUTPUT); digitalWrite(motor, LOW); analogWrite(valve, 250); delay(50); analogWrite(valve, 0); sendValue((int)0); softBuzz(); } void loop() { // put your main code here, to run repeatedly: if (hc06.available() > 0) { c = hc06.read(); switch(c) { case 'v': measurement_state = inflate1; break; case 'm': measurement_state = stops; break; } c = ' '; } //======================== switch(measurement_state) { case inflate1: 49 do_inflate1(); break; case inflate2: do_inflate2(); break; case deflate: do_deflate(); break; case meas_sys: do_meas_sys(); break; case meas_pul: do_meas_pul(); break; case meas_dia: do_meas_dia(); break; case send_result: do_stop(); break; case stops: do_stop_emergency(); break; } } void do_inflate1(){ 50 Serial.println("==========Bat Dau Do==========="); digitalWrite(motor, HIGH); analogWrite(valve, 255); measurement_state = inflate2; } void do_inflate2(){ if ( (unsigned long)(millis() - previousMillis) >= 500) { previousMillis = millis(); DC_mmHG = cal_adc_mmHG(10); Serial.print("mmHG: "); Serial.println(DC_mmHG); sendValue((int)DC_mmHG); if (DC_mmHG >= 150) { measurement_state = deflate; } } } void do_deflate() { Serial.println("==========Bat Dau Xa?==========="); digitalWrite(motor, LOW); analogWrite(valve, 249); TH_sys = 2700.0; TH_rate = 2650.0; TH_dias = 3500.0; Serial.print("TH_init = "); Serial.print(TH_inits); Serial.print("\t"); Serial.print("TH_sys = "); 51 Serial.print(TH_sys); Serial.print("\t"); Serial.print("TH_rate = "); Serial.print(TH_rate); Serial.print("\t"); Serial.print("TH_dias = "); Serial.println(TH_dias); measurement_state = meas_sys; } void do_meas_sys() { if ((unsigned long)(millis() - previousMillis) >= 200) { previousMillis = millis(); DC_trig = cal_adc_trig(10); sysVal = cal_adc_mmHG(10); Serial.print("mmHg: "); Serial.println(sysVal); if (DC_trig >= TH_sys){ while(1) { DC_trig = cal_adc_trig(5); if (DC_trig = 2){ sysVal = cal_adc_mmHG(10); Serial.print("Gia tri huyet ap tam thu SYS bang (mmHg) = "); Serial.println(sysVal); measurement_state = meas_pul; } } } void do_meas_pul() { if ((unsigned long)(millis() - previousMillis) >= 80) { previousMillis = millis(); DC_trig = cal_adc_trig(10); if (DC_trig >= TH_rate) { while(1) { DC_trig = cal_adc_trig(10); pulVal = cal_adc_mmHG(10); if (DC_trig = 100) { previousMillis = millis(); DC_trig = cal_adc_trig(10); diaVal = cal_adc_mmHG(10); Serial.print("mmHg: "); Serial.println(diaVal); if (DC_trig >= TH_dias){ while(1) { DC_trig = cal_adc_trig(10); if (DC_trig = 5){ diaVal = cal_adc_mmHG(10); Serial.print("Gia tri huyet ap tam truong DIA bang (mmHg) = "); Serial.println(diaVal); measurement_state = send_result; } } } void do_stop() { Serial.println("============Gui Ket Qua=========="); Serial.print("SYS= "); Serial.println(sysVal); Serial.print("DIA= "); Serial.println(diaVal); Serial.print("PUL= "); Serial.println(pulVal); delay(1500); sendSYSDIAPUL((int)sysVal, (int)diaVal, (int)pulVal); Serial.println("============Ket Thuc=========="); sysVal = 0; diaVal = 0; pulVal = 0; count_sys = 0; count_rate = 0; count_dias = 0; timerate = 0; 55 longBuzz(); delay(500); //sendSYSDIAPUL(0, 0, 0); measurement_state = stops; } void do_stop_emergency() { digitalWrite(motor, LOW); analogWrite(valve, 0); sysVal = 0; diaVal = 0; pulVal = 0; count_sys = 0; count_rate = 0; count_dias = 0; timerate = 0; } float cal_adc_mmHG(int n_time) { float adc_total = 0; for (int i = 0; i < n_time; i++) { int temp = analogRead(adc0); adc_total += temp; delay(5); } adc_total = (float)(adc_total/(float)n_time); float DC_voltage = (float)(((float)adc_total)/1023*5000); 56 float pressure = (DC_voltage/DC_gain)*8.952; return pressure; } float cal_adc_trig(int n_time) { float adc_total = 0; for (int i = 0; i < n_time; i++) { int temp = analogRead(adc1); adc_total += temp; delay(5); } adc_total = (float)(adc_total/(float)n_time); float DC_voltage = (float)(((float)adc_total)/1023*5000); return DC_voltage; } void longBuzz() { digitalWrite(buzz, HIGH); delay(500); digitalWrite(buzz, LOW); delay(500); digitalWrite(buzz, HIGH); delay(500); digitalWrite(buzz, LOW); delay(1000); } void softBuzz() { digitalWrite(buzz, HIGH); delay(50); digitalWrite(buzz, LOW); 57 delay(100); digitalWrite(buzz, HIGH); delay(50); digitalWrite(buzz, LOW); delay(100); } void sendValue(int i) { String datos1 = (String)i + "," + (String)i + "," + (String)i; //Serial.println(datos1); hc06.print(datos1); } void sendSYSDIAPUL(int sys, int dia, int pul) { String datos = (String) sys + "," + (String) dia + "," + (String) pul; hc06.print(datos);} 58 ... cứu thiết kế thiết bị đo huyết áp ứng dụng kèm giúp người theo dõi huyết áp cách dễ ràng, thuận tiện, có hiệu đánh giá, chẩn đo? ?n cao Đề tài thiết kế máy đo huyết áp tự động phương pháp dao động. .. 2.3.2 Thiết kế ứng dụng 2.3.2.1 Các hình hiển thị đo huyết áp Các hình ứng dụng đo huyết áp thiết kế Hình 39 Hình 39: Màn hình kết nối thiết bị đo huyết áp 2.3.2.2 Quy trình đo huyết áp ứng dụng Lưu. .. Phương pháp đo huyết áp gián tiếp Các phương pháp đo huyết áp tuyền thống thực đo huyết áp động mạch cánh tay Thiết bị đo huyết áp cổ tay ngón tay trở nên phổ biến hơn, nhiên huyết áp tâm thu