Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 86 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
86
Dung lượng
4,87 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN – ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN, ĐIỆN TỬ CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ ĐỀ TÀI: NGHIÊN CỨU THIẾT KẾ, CHẾ TẠO HỆ THỐNG GIÁM SÁT SỨC KHỎE BỆNH NHÂN COVID - 19 TẠI NHÀ Người hướng dẫn: TS Nguyễn Linh Nam Sinh viên thực hiện: Huỳnh Thiên Phú Rah Lan Tiê Trần Minh Tuấn Mã sinh viên: 1811505120140 1811505120155 1811505120160 Lớp: 18D3 Đà Nẵng, 06/2022 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN – ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN, ĐIỆN TỬ CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ ĐỀ TÀI: NGHIÊN CỨU THIẾT KẾ, CHẾ TẠO HỆ THỐNG GIÁM SÁT SỨC KHỎE BỆNH NHÂN COVID -19 TẠI NHÀ Người hướng dẫn: TS Nguyễn Linh Nam Sinh viên thực hiện: Huỳnh Thiên Phú Rah Lan Tiê Trần Minh Tuấn Mã sinh viên: 1811505120140 1811505120155 1811505120160 Lớp: 18D3 Đà Nẵng, 06/2022 TÓM TẮT Tên đề tài :Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID - 19 nhà Sinh viên thực hiện: Huỳnh Thiên Phú Mã sinh viên: 1811505120140 Lớp:18D3 Sinh viên thực hiện: Rah Lan Tiê Mã sinh viên: 1811505120155 Lớp:18D3 Sinh viên thực hiện: Trần Minh Tuấn Mã sinh viên: 1811505120160 Lớp:18D3 Bài trình bày việc nhóm thực thiết kế, chế tạo hệ thống giám sát sức khỏe cho bệnh nhân mắc COVID - 19 điều trị nhà Qua hệ thống giám sát giúp giúp đội ngũ bác sỹ quản lý (giám sát), thân người nhà theo dõi số sức khỏe như: nhịp tịm, nhiệt độ, nồng độ oxy máu Từ đưa cảnh báo thích hợp cho việc điều trị Hệ thống giám sát sức khỏe bệnh nhân COVID - 19 nhà gồm: hình LCD, web lưu giữ số sức khỏe (ThingSpeak), ứng dụng điện thoại để thông báo số sức khỏe (Blynk) Mục đích tiêu chí đề tài ứng dụng thành tựu IOT vào việc chăm sóc sức khỏe bệnh nhân COVID - 19, giúp giám sát đưa biện pháp chữa trị hiệu Bên cạnh giảm áp lực cho sở y tế có nhiều ca mắc Tiết kiệm thời gian khám, bệnh viện, thời gian chờ đợt làm thủ tục, tiết kiệm chi phí lại, cảnh báo tình trạng sức khỏe kịp thời có ý nghĩa cần thiết số chăm sóc sức khỏe vượt mức cho phép thơng báo tức thời đến y bác sĩ để kịp hỗ trợ LỜI NÓI ĐẦU Để hồn thiện tốt đồ án tốt nghiệp, nhóm xin gửi lời cảm ơn chân thành đến thầy cô Khoa Điện – Điện Tử trường Đại Học Sư Phạm Kỹ Thuật - Đại họ Đà Nẵng giúp đỡ tạo điều kiện thuận lợi tốt cho nhóm để hồn thành thực tốt đề tài Và đặc biệt nhóm xin gửi lời cảm ơn chân thành sâu sắc đến thầy Nguyễn Linh Nam trực tiếp hướng dẫn chi tiết tận tình giúp đỡ tạo điều kiện tốt để em nắm bắt hiểu rõ công đoạn cần phải làm đồ án giới thiệu cho chúng em học hỏi khoa học kinh nghiệm làm việc từ hồn thành tốt đề tài Cuối nhóm xin cảm ơn chân thành đến gia đình bạn bè, ln chỗ dựa nguồn động viên tinh thần nhóm gặp khó khắn học tập q trình nghiên cứu để hồn thành đề tài tốt nghiệp Nhóm xin chân thành cảm ơn người! I CAM ĐOAN Nhóm xin cam đoan đề tài tốt nghiệp nhóm tự thực không chép lấy ý tưởng cá nhân hay tổ chức đơn vị Những số liệu kết nghiên cứu thiết kế đồ án hồn tồn trung thực xác nhóm tự nghiên cứu tự làm không trùng hay lặp lại cá nhân hay đơn vị Những số liệu thông số đồ án chưa sử dụng để báo cáo hay bảo vệ đồ án khác Những thông tin liệu, hình ảnh nêu trích dẫn đồ án rõ tên nguồn gốc rõ ràng, phép công bố đơn vị tổ cức chủ quản nắm quyền sở hữu Mọi hướng dẫn, giúp đỡ phục vụ cho việc thực đồ án trình bày rõ ràng gửi lời cảm ơn đến tất Những lời cam đoan hồn tồn xác trung thực, có phát giác hay tranh chấp nhóm xin chịu hoàn toàn trách nhiệm Sinh viên thực {Chữ ký, họ tên sinh viên} II MỤC LỤC Nhận xét người hướng dẫn Nhận xét người phản biện Tóm tắt Trang LỜI NĨI ĐẦU i CAM ĐOAN ii MỤC LỤC iii DANH SÁCH CÁC BẢNG, HÌNH VẼ vi DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT viii MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý chọn đề tài 1.1.1 Tính cấp thiết đề tài 1.1.2 Cơng nghệ IOT có lợi ích thiết thực chăm sóc sức khỏe 1.2 Giới thiệu tổng quan đề tài CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÁC CÔNG NGHỆ 12 2.1 Khái niệm IOT 12 2.1.1 IOT gì? 12 2.1.2 Ứng dụng IOT 12 2.1.3 IOMT gì? 14 2.2 Khái quát Websever 14 2.3 Khái niệm ThingSpeak 15 2.4 Các lý thuyết liên quan Board Arduino Uno 15 2.4.1 Giới thiệu chung Arduino 15 2.4.2 Mạch điều khiển Arduino Uno .16 2.5 Cơ sở lý thuyết linh kiện sử dụng đề tài 19 III 2.5.1 Module ESP8266 V1 19 2.5.2 Cảm biến nhiệt độ hồng ngoại không tiếp xúc MLX90614 21 2.5.3 Cảm biến nhịp tim dạng quang (Pulse Sensor) 23 2.5.4 Module Max30102 – E12 .24 2.5.5 Màn hình LCD 25 2.6 Công nghệ ứng dụng IOT Blynk 27 2.6.1 Blynk gì? 27 2.6.2 Xây dựng Blynk hoạt động 27 2.6.3 Cách hoạt động Blynk 28 CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 29 3.1 Sơ đồ khối hệ thống 29 3.1.1 Chức hệ thống .29 3.1.2 Nguyên lý hoạt động hệ thống .29 3.2 Các kết nối hệ thống 30 3.2.1 Kết nối board Arduino Uno Module Wifi ESP8266 V1 30 3.2.2 Kết nối Arduino với cảm biến MLX90614 35 3.2.3 Kết nối Arduino với cảm biến nhịp tim Pulse sensor 36 3.3 Kết nối Arduino với hình LCD (LCD + Module IIC) 38 3.4 Xây dựng sở liệu web (ThingSpeak) 39 3.5 Thiết kế ứng dụng giám sát Blynk 41 3.6 Lưu đồ thuật toán hệ thống 45 3.7 Thiết kế board mạch 46 3.7.1 Giới thiệu phần mềm Altium designer 46 3.7.2 Thiết kế phần mạch 47 3.8 Thi công hệ thống giám sát sức khỏe bệnh nhân COVID – 19 nhà 48 3.9 Kết kiểm thử 51 3.9.1 Khảo sát giá trị đo cảm biến đo nhiệt độ .51 3.9.2 Khảo sát giá trị đo cảm biến đo nhịp tim .53 3.9.3 Khảo sát giá trị đo cảm biến đo nồng độ oxy máu .55 3.10 Kết đạt 57 KẾT LUẬN 58 TÀI LIỆU THAM KHẢO 60 IV Tên đề tài: Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID – 19 nhà KẾT LUẬN Kết luân: - Hoàn thành tốt thành tốt mục tiêu đề đề tài - Chế tạo hệ thống giám sát ổn định Khả truyền liệu lên web ứng dụng smartphone ổn định - Hệ thống giám sát sức khỏe cho bệnh nhân COVID – 19 có tính ứng dụng cao vào thời điểm này, ứng dụng nhiều thành tựu công nghệ IOT - Hệ thống giúp giảm tải sở bệnh viện giảm chi phí khám bệnh cho bệnh nhân với khả giám sát qua mạng internet Xây dựng webserver ứng dụng Blynk đơn giản để giám sát - Ưu điểm - Thiết kế, xây dựng hệ thống giám sát sức khỏe qua internet - Dễ dàng sử dụng dùng cho lứa tuổi - Giao tiếp điều khiển nhiều thiết bị qua Arduino - Giám sát sức khỏe người thân xa - Hiển thị thông số web (ThingSpeak), hình LCD thiết bị ứng dụng điện thoại Nhược điểm - Độ truyền liệu phụ thuộc nhiều vào điều kiện mạng Internet - Dữ liệu truyền lên đơi cịn bị gián đoạn - Dữ liệu từ board lên webserver lâu phải 16 giây truyền - Cảnh báo số sức khỏe người bệnh thị ứng dụng dụng Blynk Hướng phát triển đề tài Do thời gian thực hạn chế so với lượng kiến thức mà em phải tìm hiểu khơng tránh khỏi việc có sai sót q trình hoạt động thiết bị Để sản phẩm hoàn thiện hơn, thời gian tới em phát triển đề tài cách đầu tư 58 Sinh viên thực hiện: Huỳnh Thiên Phú – Rah Lan Tiê – Trần Minh Tuấn Người hướng dẫn: TS Nguyễn Linh Nam Tên đề tài: Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID – 19 nhà nhiều vào loại cảm biến tốt có nhiều chức ứng dụng cao cảm biến đề tài cảm biến đo lượng đường huyết máu, cảm biến đo huyết áp,….Để tăng khả ứng dụng hệ thống em cài đặt thêm chế độ báo động điện thoại, báo động chổ số cảm biến vượt ngưỡng bình thường Với hướng phát triển nêu với ý tưởng nhận xét khác thầy cô giáo, em cố gắng để phát triển dự án nữa, khắc phục hạn chế cịn tồn dự án, để thiết bị đưa vào sử dụng thiết bị phổ biến nhà 59 Sinh viên thực hiện: Huỳnh Thiên Phú – Rah Lan Tiê – Trần Minh Tuấn Người hướng dẫn: TS Nguyễn Linh Nam Tên đề tài: Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID – 19 nhà TÀI LIỆU THAM KHẢO [1] ThS.BS Hoàng Thi Thúy (2022) Góc thắc mắc: Covid tồn mơi trường bên ngồi, https://medlatec.vn/tin-tuc/goc-thac-mac-covid-ton-tai-bao-lau-trong-moi-truong-benngoai-s194-n27440 [2] Cổng thơng tin điện tử Bộ y tế (2022) Bản tin phòng chống dịch COVID-19 ngày 26/4 y tế, https://moh.gov.vn/tin-tong-hop/-/asset_publisher/k206Q9qkZOqn/content/ban-tinphong-chong-dich-covid-19-ngay-26-4-cua-bo-y-te? [3] Tạp chí số & kiện (2021) Tác động dịch COVID-19 đến lao động, việc làm nước quý III năm 2021, http://consosukien.vn/tac-dong-cua-dich-covid-19-den-tinh-hinh-lao-dong-viec-lamquy-iii-nam-2021i.htm [4] Tạp chí số & kiện (2021) Tác động dịch COVID-19 đến lao động, việc làm nước quý III năm 2021, http://consosukien.vn/tac-dong-cua-dich-covid-19-den-tinh-hinh-lao-dong-viec-lamquy-iii-nam-2021i.htm [5] Dương Hải (2020) Bộ y tế khuyến cáo “5K” chung sống an toàn với dịch bệnh, https://suckhoedoisong.vn/bo-y-te-khuyen-cao-5k-chung-song-an-toan-voi-dich-benh169179605.htm [6] Dương Hải (2020) Bộ y tế khuyến cáo “5K” chung sống an toàn với dịch bệnh, https://suckhoedoisong.vn/bo-y-te-khuyen-cao-5k-chung-song-an-toan-voi-dich-benh169179605.htm 60 Sinh viên thực hiện: Huỳnh Thiên Phú – Rah Lan Tiê – Trần Minh Tuấn Người hướng dẫn: TS Nguyễn Linh Nam Tên đề tài: Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID – 19 nhà [7] TS.BS Huỳnh Tấn Tiến (2022) Hiểu thêm di chứng hậu COVID – 19, tìm cách vượt qua, https://hcdc.vn/category/tai-lieu-truyen-thong/hieu-them-ve-di-chung-hau-covid19cung-tim-cach-vuot-qua-842b86822d452cd0004d5398726e2d9b.html [8] Nguyễn Thanh Vĩnh (2020) Những lợi ích thiết thực IOT chăm sóc sức khỏe, https://congluan.vn/nhung-loi-ich-thiet-thuc-cua-iot-trong-cham-soc-suc-khoepost95638.html [9] Nguyễn Thanh Vĩnh (2020) Những lợi ích thiết thực IOT chăm sóc sức khỏe, https://congluan.vn/nhung-loi-ich-thiet-thuc-cua-iot-trong-cham-soc-suc-khoepost95638.html [10] Nguyễn Thanh Vĩnh (2020) Những lợi ích thiết thực IOT chăm sóc sức khỏe, https://congluan.vn/nhung-loi-ich-thiet-thuc-cua-iot-trong-cham-soc-suc-khoepost95638.html [11] Nguyễn Thanh Vĩnh (2020) Những lợi ích thiết thực IOT chăm sóc sức khỏe, https://congluan.vn/nhung-loi-ich-thiet-thuc-cua-iot-trong-cham-soc-suc-khoepost95638.html [12] ITNavi (2021) IOT gì? Những điều bạn cần biết kỹ sư IOT, https://itnavi.com.vn/blog/iot-la-gi# [13] ITNavi (2021) IOT gì? Những điều bạn cần biết kỹ sư IOT, https://itnavi.com.vn/blog/iot-la-gi# [14] GiangPTH (2018) Web Server gì?Tìm hiểu chế vận hành web server, 61 Sinh viên thực hiện: Huỳnh Thiên Phú – Rah Lan Tiê – Trần Minh Tuấn Người hướng dẫn: TS Nguyễn Linh Nam Tên đề tài: Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID – 19 nhà https://bizflycloud.vn/tin-tuc/tat-tat-kien-thuc-co-ban-ve-web-server-ban-phai-biet20180515115521302.htm# [15] Hiên (2012) Giới thiệu Arduino, https://mrhien.info/blog/gioi-thieu-ve-arduino/# [16] Hiên (2012) Giới thiệu Arduino, https://mrhien.info/blog/gioi-thieu-ve-arduino/# [17] Hiên (2012) Giới thiệu Arduino, https://mrhien.info/blog/gioi-thieu-ve-arduino/# [18] Ngơ Huỳnh Ngọc Khánh Arduino UNO R3 gì?, http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi [19] Ngô Huỳnh Ngọc Khánh Arduino UNO R3 gì?, http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi [20] Ngơ Huỳnh Ngọc Khánh Arduino UNO R3 gì?, http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi [21] Ngơ Huỳnh Ngọc Khánh Arduino UNO R3 gì?, http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi [22] Ngơ Huỳnh Ngọc Khánh Arduino UNO R3 gì?, http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi [23] Ngơ Huỳnh Ngọc Khánh Arduino UNO R3 gì?, http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi 62 Sinh viên thực hiện: Huỳnh Thiên Phú – Rah Lan Tiê – Trần Minh Tuấn Người hướng dẫn: TS Nguyễn Linh Nam Tên đề tài: Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID – 19 nhà [24] Long Phan (2022) Cảm biến nhiệt độ hồng ngoại không tiếp xúc MLX90614, https://blog.mecsu.vn/cam-bien-nhiet-do-hong-ngoai-khong-tiep-xuc-mlx90614/ [24] Long Phan (2022) Cảm biến nhiệt độ hồng ngoại không tiếp xúc MLX90614, https://blog.mecsu.vn/cam-bien-nhiet-do-hong-ngoai-khong-tiep-xuc-mlx90614/ [25] Long Phan (2022) Cảm biến nhiệt độ hồng ngoại không tiếp xúc MLX90614, https://blog.mecsu.vn/cam-bien-nhiet-do-hong-ngoai-khong-tiep-xuc-mlx90614/ [26] Long Phan (2022) Cảm biến nhiệt độ hồng ngoại không tiếp xúc MLX90614, https://blog.mecsu.vn/cam-bien-nhiet-do-hong-ngoai-khong-tiep-xuc-mlx90614/ [27] Long Phan (2022) Cảm biến nhiệt độ hồng ngoại không tiếp xúc MLX90614, https://blog.mecsu.vn/cam-bien-nhiet-do-hong-ngoai-khong-tiep-xuc-mlx90614/ [28] Giải pháp điện tử xây dựng thơng tin (2019), Blynk gì, http://iottuonglai.com/blynk-la-gi.html [29] Giải pháp điện tử xây dựng thông tin (2019), Blynk gì, http://iottuonglai.com/blynk-la-gi.html [30] Giải pháp điện tử xây dựng thơng tin (2019), Blynk gì, http://iottuonglai.com/blynk-la-gi.html [31] Giải pháp điện tử xây dựng thông tin (2019), Blynk gì, http://iottuonglai.com/blynk-la-gi.html [32] Thinhspaek (2021), Thinhspeak ứng dụng, 63 Sinh viên thực hiện: Huỳnh Thiên Phú – Rah Lan Tiê – Trần Minh Tuấn Người hướng dẫn: TS Nguyễn Linh Nam Tên đề tài: Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID – 19 nhà https://thingspeak.com/ [33] Thinhspaek (2021), Thinhspeak ứng dụng, https://thingspeak.com/ [34] Thinhspaek (2021), Thinhspeak ứng dụng, https://thingspeak.com/ [35] Thinhspaek (2021), Thinhspeak ứng dụng, https://thingspeak.com/ 64 Sinh viên thực hiện: Huỳnh Thiên Phú – Rah Lan Tiê – Trần Minh Tuấn Người hướng dẫn: TS Nguyễn Linh Nam PHỤ LỤC CODE ESP8266 #include #include SoftwareSerial esp(5, 4); #define BLYNK_TEMPLATE_ID "TMPLyxCpbwZW" #define BLYNK_DEVICE_NAME "giam sat suc khoe" //#define BLYNK_AUTH_TOKEN "CkL7Vi-iggOWWY3YT5WdZoE4qL1TrkUh" #define BLYNK_FIRMWARE_VERSION "0.1.0" #define BLYNK_PRINT Serial //#define BLYNK_DEBUG #define APP_DEBUG // Uncomment your board, or configure a custom board in Settings.h //#define USE_SPARKFUN_BLYNK_BOARD #define USE_NODE_MCU_BOARD //#define USE_WITTY_CLOUD_BOARD //#define USE_WEMOS_D1_MINI #include "BlynkEdgent.h" const char* ssid1 = "……"; // your wireless network name (SSID) const char* password1 = "……"; // your Wi-Fi network password WiFiClient client; // ThingSpeak Settings //const int channelID = YOUR - CHANNEL - ID; // String writeAPIKey = "5PHPEG85SLDX4Z0F"; // write API key for your ThingSpeak Channel const char* server1 = "api.thingspeak.com"; int bom = 0; void setup() { Serial.begin(115200); delay(100); esp.begin(115200); WiFi.begin(ssid1, password1); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(100); } pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); BlynkEdgent.begin(); } void loop() { BlynkEdgent.run(); String data_ = ""; String nhip_tim = ""; String nhiet_co = ""; String nong_do = ""; while (esp.available()) { char t = esp.read(); data_ += t; } if (data_ != "") { nhip_tim = data_.substring(0, data_.indexOf("a")); nhiet_co = data_.substring(data_.indexOf("a") + 1, data_.indexOf("b")); nong_do = data_.substring(data_.indexOf("b") + 1, data_.indexOf("c")); if (nhiet_co.toInt() > 38 || (nong_do.toInt() < 90 && nong_do.toInt() > 10)) { Blynk.virtualWrite(V3, 1); } else { Blynk.virtualWrite(V3, 0); } Blynk.virtualWrite(V0, nhip_tim); Blynk.virtualWrite(V1, nhiet_co); Blynk.virtualWrite(V2, nong_do); Serial.println(data_ + " " + nhip_tim + " " + nhiet_co + " " + nong_do); } //esp.print(bom); if (client.connect(server1, 80)) // "184.106.153.149" or api.thingspeak.com { String postStr = writeAPIKey; postStr += "&field1="; postStr += nhip_tim; postStr += "&field2="; postStr += nhiet_co; postStr += "&field3="; postStr += nong_do; postStr += "\r\n\r\n"; client.print("POST /update HTTP/1.1\n"); client.print("Host: api.thingspeak.com\n"); client.print("Connection: close\n"); client.print("X-THINGSPEAKAPIKEY: " + writeAPIKey + "\n"); client.print("Content-Type: application/x-www-form-urlencoded\n"); client.print("Content-Length: "); client.print(postStr.length()); client.print("\n\n"); client.print(postStr); } client.stop(); delay(100); } CODE ARDUINO #include "MAX30102.h" #include "Pulse.h" #include #include #define USE_ARDUINO_INTERRUPTS true // Set-up low-level interrupts for most acurate BPM math #include // Includes the PulseSensorPlayground Library PulseSensorPlayground pulseSensor; SoftwareSerial ardui(6, 5); LiquidCrystal_I2C lcd(0x27, 16, 2); #include Adafruit_MLX90614 mlx = Adafruit_MLX90614(); //#include //#include //#include #ifndef cbi #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) #endif #ifndef sbi #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) #endif MAX30102 sensor; Pulse pulseIR; Pulse pulseRed; MAFilter bpm; #define LED LED_BUILTIN #define OPTIONS const int PulseWire = 0; const int LED13 = 13; int Threshold = 750; // 'S' Signal pin connected to A0 // The on-board Arduino LED // Determine which Signal to "count as a beat" and which to ignore const uint8_t spo2_table[184] PROGMEM = { 95, 95, 95, 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98, 98, 97, 97, 97, 97, 96, 96, 96, 96, 95, 95, 95, 94, 94, 94, 93, 93, 93, 92, 92, 92, 91, 91, 90, 90, 89, 89, 89, 88, 88, 87, 87, 86, 86, 85, 85, 84, 84, 83, 82, 82, 81, 81, 80, 80, 79, 78, 78, 77, 76, 76, 75, 74, 74, 73, 72, 72, 71, 70, 69, 69, 68, 67, 66, 66, 65, 64, 63, 62, 62, 61, 60, 59, 58, 57, 56, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 31, 30, 29, 28, 27, 26, 25, 23, 22, 21, 20, 19, 17, 16, 15, 14, 12, 11, 10, 9, 7, 6, 5, 3, 2, }; int getVCC() { #if defined( AVR_ATmega1284P ) ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); // For ATmega1284 #else ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); // For ATmega328 #endif delay(2); ADCSRA |= _BV(ADSC); // Convert while (bit_is_set(ADCSRA, ADSC)); uint8_t low = ADCL; unsigned int val = (ADCH 255) ? 255 : waveval; wavep = (wavep + 1) % MAXWAVE; } void scale() { uint8_t maxw = 0; uint8_t minw = 255; for (int i = 0; i < MAXWAVE; i++) { maxw = waveform[i] > maxw ? waveform[i] : maxw; minw = waveform[i] < minw ? waveform[i] : minw; } uint8_t scale8 = (maxw - minw) / + 1; //scale * to preserve precision uint8_t index = wavep; for (int i = 0; i < MAXWAVE; i++) { disp_wave[i] = 31 - ((uint16_t)(waveform[index] - minw) * 8) / scale8; index = (index + 1) % MAXWAVE; } } private: uint8_t waveform[MAXWAVE]; uint8_t disp_wave[MAXWAVE]; uint8_t wavep = 0; } wave; int beatAvg; int SPO2, SPO2f; int voltage; bool filter_for_graph = false; bool draw_Red = false; uint8_t pcflag = 0; uint8_t istate = 0; uint8_t sleep_counter = 0; void setup(void) { Serial.begin(115200); ardui.begin(115200); pinMode(LED, OUTPUT); mlx.begin(); lcd.init(); lcd.clear(); lcd.backlight(); // filter_for_graph = EEPROM.read(OPTIONS); // draw_Red = EEPROM.read(OPTIONS + 1); pulseSensor.analogInput(PulseWire); pulseSensor.blinkOnPulse(LED13); // Blink on-board LED with heartbeat pulseSensor.setThreshold(Threshold); if (pulseSensor.begin()) { Serial.println("PulseSensor object created!"); } delay(3000); if (!sensor.begin()) { while (1); } sensor.setup(); } long lastBeat = 0; //Time of the last beat long displaytime = 0; //Time of the last display update bool led_on = false; void loop() { sensor.check(); long now = millis(); //start time of this cycle if (!sensor.available()) return; uint32_t irValue = sensor.getIR(); uint32_t redValue = sensor.getRed(); sensor.nextSample(); if (irValue < 5000) { voltage = getVCC(); delay(200); beatAvg = 0; SPO2f = 0; } else { sleep_counter = 0; int16_t IR_signal, Red_signal; bool beatRed, beatIR; if (!filter_for_graph) { IR_signal = pulseIR.dc_filter(irValue) ; Red_signal = pulseRed.dc_filter(redValue); beatRed = pulseRed.isBeat(pulseRed.ma_filter(Red_signal)); beatIR = pulseIR.isBeat(pulseIR.ma_filter(IR_signal)); } else { IR_signal = pulseIR.ma_filter(pulseIR.dc_filter(irValue)) ; Red_signal = pulseRed.ma_filter(pulseRed.dc_filter(redValue)); beatRed = pulseRed.isBeat(Red_signal); beatIR = pulseIR.isBeat(IR_signal); } wave.record(draw_Red ? -Red_signal : -IR_signal ); if (draw_Red ? beatRed : beatIR) { long btpm = 60000 / (now - lastBeat); if (btpm > && btpm < 200) beatAvg = bpm.filter((int16_t)btpm); lastBeat = now; digitalWrite(LED, HIGH); led_on = true; long numerator = (pulseRed.avgAC() * pulseIR.avgDC()) / 256; long denominator = (pulseRed.avgDC() * pulseIR.avgAC()) / 256; int RX100 = (denominator > 0) ? (numerator * 100) / denominator : 999; SPO2f = (10400 - RX100 * 17 + 50) / 100; if ((RX100 >= 0) && (RX100 < 184)) SPO2 = pgm_read_byte_near(&spo2_table[RX100]); } if (now - displaytime > 50) { displaytime = now; wave.scale(); } } if (led_on && (now - lastBeat) > 25) { digitalWrite(LED, LOW); led_on = false; } int myBPM = pulseSensor.getBeatsPerMinute(); if (myBPM != 0) { if (SPO2f == 0) { beatAvg = myBPM; } } // Calculates BPM // Constantly test to see if a beat happened else { // Constantly test to see if a beat happened beatAvg = 0; } if(beatAvg>90){ beatAvg=89; } lcd.setCursor(0, 0); //Set cursor to character on line lcd.print("BMP " + (String)beatAvg + " "); lcd.setCursor(8, 0); //Set cursor to character on line lcd.print("SPO2 " + (String)SPO2f + " "); lcd.setCursor(0, 1); //Set cursor to character on line lcd.print("nhiet do: " + (String)mlx.readObjectTempC()); Serial.println((String)beatAvg + " " + (String)SPO2f + " " + (String)mlx.readObjectTempC() + " "); ardui.print((String)beatAvg + "a" + (String)mlx.readObjectTempC() + "b" + (String)SPO2f + "c"); delay(100); //Serial.println(mlx.readObjectTempC()); } ... tài: Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID – 19 nhà Đề tài: Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID - 19 nhà Đề tài tập trung nghiên. .. tài: Nghiên cứu thiết kế, chế tạo hệ thống giám sát sức khỏe bệnh nhân COVID – 19 nhà - Nghiên cứu kiến thức số sức khỏe để đưa kết luận xác tình trạng sức khỏe người dùng Phạm vi nghiên cứu - Hệ. .. thực thiết kế, chế tạo hệ thống giám sát sức khỏe cho bệnh nhân mắc COVID - 19 điều trị nhà Qua hệ thống giám sát giúp giúp đội ngũ bác sỹ quản lý (giám sát) , thân người nhà theo dõi số sức khỏe