Nghiên cứu, xây dựng thiết bị theo dõi nhịp tim và nồng độ oxy trong máu sử dụng ESP32

52 202 3
Nghiên cứu, xây dựng thiết bị theo dõi nhịp tim và nồng độ oxy trong máu sử dụng ESP32

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MỤC LỤC LỜI NÓI ĐẦU 4 DANH MỤC HÌNH ẢNH 5 PHẦN 1: THỰC HÀNH 8 BÀI THỰC HÀNH 1: THIẾT KẾ MẠCH THEO SƠ ĐỒ 8 BÀI THỰC HÀNH 2: VIẾT PHẦN MỀM TẠI CHỖ CHO THIẾT BỊ 9 Bài 2.1: Bài điều khiển đơn giản: Viết chương trình cho mạch điều khiển bật tắt LED (Bóng đèn). 9 Bài 2.2: Bài giám sát đơn giản: Viết chương trình giám sát thông số cảm biến hiển thị lên LCD. 10 Bài 2.3: Bài toán giao tiếp: Viết chương trình kết nối ESP và Arduino thông qua giao tiếp UART. 12 BÀI THỰC HÀNH 3: ĐIỀU KHIỂN GIÁM SÁT QUA INTERNET 14 Bài 3.1: Điều khiển bật tắt LED và giám sát thông số cảm biến từ xa hiển thị trên ứng dụng. 14 PHẦN 2: BÁO CÁO MÔN HỌC 16 CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 16 1.1 Mục đích, yêu cầu 16 1.2 Sơ đồ khối, chức năng 16 1.3 Nguyên lý hoạt động của thiết bị 17 CHƯƠNG 2: TỔNG QUAN VỀ ESP32 21 2.1 Sơ lược về ESP32 21 2.2 Cấu hình ESP32 21 2.3 Sơ đồ chân, chức năng 24 CHƯƠNG 3: CÁC LINH KIỆN LIÊN QUAN, APPBLINK, WEBSERVER 30 3.1 Cảm biến nhịp tim MAX30100 30 3.2 Còi chip 35 3.3 LCD1602 36 3.4 AppBlynk 38 3.5 Webserver 39 CHƯƠNG 4: THIẾT KẾ, XÂY DỰNG THIẾT BỊ 41 4.1 Thiết kế mạch 41 4.2 Lưu đồ thuật toán 43 4.3 Mã nguồn 44   LỜI NÓI ĐẦU Ngày nay cùng với sự phát triển của nhanh chóng của khoa học kỹ thuật thì các lĩnh vực ứng dụng kỹ thuật công nghệ cao ngày càng phát triển và ngành Điện tử Viễn thông đang ngày càng khẳng định vai trò to lớn của mình. Trong cuộc sống hiện nay có rất nhiều yếu tố ảnh hưởng tới sức khỏe của con người, trong đó nhịp tim và lượng oxi trong máu có thể cho chúng ta dự đoán được tình hình sức khỏe của bản thân. Vì vậy việc theo dõi nhịp tim và lượng oxi trong máu là hết sức cần thiết. Vậy nên nhóm chúng em chọn đề tài: “Nghiên cứu, xây dựng thiết bị theo dõi nhịp tim và nồng độ oxy trong máu sử dụng ESP32”

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO MÔN HỌC Học phần: Phát triển hệ thống IoT Đề tài: “Nghiên cứu, xây dựng thiết bị theo dõi nhịp tim nồng độ oxy máu sử dụng ESP32” Giảng viên: Tô Thị Tuyết Nhung Hà Nội, tháng năm 2021 PHẦN NHẬN XÉT CỦA GIẢNG VIÊN MỤC LỤC LỜI NÓI ĐẦU .4 DANH MỤC HÌNH ẢNH PHẦN 1: THỰC HÀNH BÀI THỰC HÀNH 1: THIẾT KẾ MẠCH THEO SƠ ĐỒ BÀI THỰC HÀNH 2: VIẾT PHẦN MỀM TẠI CHỖ CHO THIẾT BỊ .9 Bài 2.1: Bài điều khiển đơn giản: Viết chương trình cho mạch điều khiển bật tắt LED (Bóng đèn) Bài 2.2: Bài giám sát đơn giản: Viết chương trình giám sát thơng số cảm biến hiển thị lên LCD 10 Bài 2.3: Bài tốn giao tiếp: Viết chương trình kết nối ESP Arduino thông qua giao tiếp UART 12 BÀI THỰC HÀNH 3: ĐIỀU KHIỂN GIÁM SÁT QUA INTERNET .14 Bài 3.1: Điều khiển bật tắt LED giám sát thông số cảm biến từ xa hiển thị ứng dụng .14 PHẦN 2: BÁO CÁO MÔN HỌC .16 CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 16 1.1 Mục đích, yêu cầu .16 1.2 Sơ đồ khối, chức 16 1.3 Nguyên lý hoạt động thiết bị 17 CHƯƠNG 2: TỔNG QUAN VỀ ESP32 21 2.1 Sơ lược ESP32 21 2.2 Cấu hình ESP32 21 2.3 Sơ đồ chân, chức 24 CHƯƠNG 3: CÁC LINH KIỆN LIÊN QUAN, APPBLINK, WEBSERVER .30 3.1 Cảm biến nhịp tim MAX30100 30 3.2 Còi chip .35 3.3 LCD1602 .36 3.4 AppBlynk .38 3.5 Webserver 39 CHƯƠNG 4: THIẾT KẾ, XÂY DỰNG THIẾT BỊ 41 4.1 Thiết kế mạch 41 4.2 Lưu đồ thuật toán 43 4.3 Mã nguồn .44 LỜI NÓI ĐẦU Ngày với phát triển nhanh chóng khoa học kỹ thuật lĩnh vực ứng dụng kỹ thuật cơng nghệ cao ngày phát triển ngành Điện tử Viễn thơng ngày khẳng định vai trị to lớn Trong sống có nhiều yếu tố ảnh hưởng tới sức khỏe người, nhịp tim lượng oxi máu cho dự đốn tình hình sức khỏe thân Vì việc theo dõi nhịp tim lượng oxi máu cần thiết Vậy nên nhóm chúng em chọn đề tài: “Nghiên cứu, xây dựng thiết bị theo dõi nhịp tim nồng độ oxy máu sử dụng ESP32” DANH MỤC HÌNH ẢNH Hình 1.1: Sơ đồ khối 17 Hình 1.2: Mơ tả đường chùm sáng xuất phát từ LED phát vào mao mạch phản xạ lại LED thu để đọc tín hiệu 19 Hình 1.3: Tiêu chuẩn nhịp tim 20 Hình 2.1: ESP32 21 Hình 2.2: Sơ đồ khối ESP32 .22 Hình 2.3: Sơ đồ chân ESP32 .24 Hình 3.1: Cảm biến MAX30100 .30 Hình 3.2: Sơ đồ nguyên lý cảm biến MAX30100 31 Hình 3.3: Sơ đồ khối mơ tả cách đơn giản hoạt động cảm biến 32 Hình 3.4: Hình vẽ mơ tả sơ đồ ngun lý hoạt động FIFO 33 Hình 3.5: Sơ đồ chân MAX30100 .34 Hình 3.6: Còi chip .35 Hình 3.7: LCD102 .36 Hình 3.8: Chu trình ghi liệu lên LCD1602A .37 Hình 3.9: Chu trình đọc liệu lên LCD1602A .37 Hình 3.10: LOGO AppBlynk 38 Hình 3.11: Thành phần tảng Blynk 39 Hình 3.12: Webserver 40 Hình 4.1: Mạch nguyên lý 41 Hình 4.2: Thiết kế mạch in Altium .41 Hình 4.3: Đi dây mặt sau mạch 42 Hình 4.4: Sắp xếp linh kiện mặt mạch .42 Hình 4.5: Lưu đồ thuật tốn 43 Hình 4.6: Kết 50 DANH MỤC BẢNG BIỂU Bảng 3.1: Chức chân MAX30100 32 PHẦN 1: THỰC HÀNH BÀI THỰC HÀNH 1: THIẾT KẾ MẠCH THEO SƠ ĐỒ Thiết kế mạch Proteus Các linh kiện sử dụng: - ESP-12F - Arduino R3 - Cảm biến nhiệt độ DHT11 - LCD1602A BÀI THỰC HÀNH 2: VIẾT PHẦN MỀM TẠI CHỖ CHO THIẾT BỊ Bài 2.1: Bài điều khiển đơn giản: Viết chương trình cho mạch điều khiển bật tắt LED (Bóng đèn) Sơ đồ đấu nối Mã nguồn #define LED // D1(gpio5) #define BUTTON //D2(gpio4) //Let's say you have your push button on pin int switchState = 0; // actual read value from pin4 int oldSwitchState = 0; // last read value from pin4 int lightsOn = 0; // is the switch on = or off = void setup() { pinMode(BUTTON, INPUT); // push button pinMode(LED, OUTPUT); // anything you want to control using a switch e.g a Led Hình 3.16: LOGO AppBlynk Blynk ứng dụng chạy tảng iOS Android để điều khiển giám sát thiết bị thông qua internet Blynk không bị ràng buộc với phần cứng cụ thể cả, thay vào đó, hỗ trợ phần cứng cho bạn lựa chọn Arduino, Raspberry Pi, ESP8266 nhiều module phần cứng phổ biến khác Hình 3.17: Thành phần tảng Blynk Nền tảng Blynk có ba phần chính: - Blynk App – Ứng dụng Blynk cho phép khởi tạo giao diện cho dự án - Blynk Server – Chịu trách nhiệm giao tiếp qua lại hai chiều điện thoại phần cứng Bạn sử dụng server Blynk bị giới 37 hạn điểm Enegry Trong hướng dẫn sau sử dụng Server riêng mình! Và bạn sử dụng - Blynk Library – Thư viện chứa tảng phổ biến, giúp việc giao tiếp phần cứng với Server dễ dàng 3.5 Webserver Hình 3.18: Webserver 38 CHƯƠNG 4: THIẾT KẾ, XÂY DỰNG THIẾT BỊ 4.1 Thiết kế mạch 4.1.1 Mạch nguyên lý Hình 4.19: Mạch nguyên lý 4.1.2 Thiết kế mạch in, dây, xếp linh kiện 39 Hình 4.20: Thiết kế mạch in Altium Hình 4.21: Đi dây mặt sau mạch 40 Hình 4.22: Sắp xếp linh kiện mặt mạch 4.2 Lưu đồ thuật tốn 41 Hình 4.23: Lưu đồ thuật tốn 4.3 Mã nguồn 42 #include #include #include "MAX30100_PulseOximeter.h" #include #define BLYNK_PRINT Serial #include #include #include #include #define REPORTING_PERIOD_MS 1000 char auth[] = "eMwhTSz5_T604cCKJseSdnm9_gXWJlFS"; char ssid[] = "Global B"; char password[] = "gb123456780"; WebServer server(80); //dat so cong may chu 80 LiquidCrystal lcd(23, 19, 18, 17, 16, 15); PulseOximeter pox; float BPM, SpO2; uint32_t tsLastReport = 0; int const buzzer = 13; void onBeatDetected() { Serial.println("Beat!"); } void setup() { lcd.begin(16, 2); // Print a message to the LCD lcd.print(" Phat trien HTN"); lcd.setCursor(0,1); lcd.print("Hoa Huyen Trang"); delay(2000); lcd.clear(); Serial.begin(115200); pinMode(buzzer, OUTPUT); pinMode(19, OUTPUT); Blynk.begin(auth, ssid, password); delay(100); Serial.println("Connecting to "); Serial.println(ssid); //connect to your local wi-fi network WiFi.begin(ssid, password); //check wi-fi is connected to wi-fi network while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected !"); Serial.print("Got IP: "); Serial.println(WiFi.localIP()); 43 server.on("/", handle_OnConnect); server.onNotFound(handle_NotFound); server.begin(); Serial.println("HTTP server started"); Serial.print("Initializing pulse oximeter "); if (!pox.begin()){ Serial.println("FAILED"); for (;;); }else{ Serial.println("SUCCESS"); pox.setOnBeatDetectedCallback(onBeatDetected); } pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA); // Register a callback for the beat detection digitalWrite(buzzer, LOW); } void loop() { pox.update(); server.handleClient(); Blynk.run(); BPM = pox.getHeartRate(); SpO2 = pox.getSpO2(); lcd.setCursor(0, 0); lcd.print("Nhip tim: "); lcd.print(BPM); lcd.setCursor(0, 1); lcd.print("SpO2: "); lcd.setCursor(10, 1); lcd.print(SpO2); lcd.print("%"); if (millis() - tsLastReport > REPORTING_PERIOD_MS) { Serial.print("Heart rate: "); Serial.println(BPM); Serial.print("bpm / SpO2: "); Serial.print(SpO2); Serial.println("%"); Serial.println("*********************************"); Serial.println(); Blynk.virtualWrite(V3, BPM); Blynk.virtualWrite(V4, SpO2); tsLastReport = millis(); } if(BPM >= 100){ 44 digitalWrite(buzzer, HIGH); /*lcd.clear(); lcd.print("Canh bao!!!!!"); lcd.noDisplay(); delay(500); lcd.display(); delay(500); lcd.clear();*/ }else{ digitalWrite(buzzer, LOW); } } void handle_OnConnect() { server.send(200, "text/html", SendHTML(BPM, SpO2)); } void handle_NotFound(){ server.send(404, "text/plain", "Not found"); } String SendHTML(float BPM,float SpO2){ String ptr = ""; ptr +=""; ptr +=""; ptr +="ESP Patient Health Monitoring"; ptr +=""; ptr +=""; ptr +=""; ptr +="html { font-family: 'Open Sans', sans-serif; display: block; margin: 0px auto; text-align: center;color: #444444;}"; ptr +="body{margin: 0px;} "; ptr +="h1 {margin: 50px auto 30px;} "; ptr +=".side-by-side{display: table-cell;vertical-align: middle;position: relative;}"; ptr +=".text{font-weight: 600;font-size: 19px;width: 200px;}"; ptr +=".reading{font-weight: 300;font-size: 50px;padding-right: 25px;}"; ptr +=".BPM reading{color: #FF0000;}"; ptr +=".SpO2 reading{color: #955BA5;}"; ptr +=".superscript{font-size: 17px;font-weight: 600;position: absolute;top: 10px;}"; ptr +=".data{padding: 10px;}"; ptr +=".container{display: table;margin: auto;}"; ptr +=".icon{width:65px}"; ptr +=""; ptr +=""; ptr +=""; ptr +="Thiết Bị Theo Dõi Nhịp Tim Và Oxy Trong Máu Sử Dụng ESP32"; ptr += "Phát Triển Ứng Dụng IoT"; ptr +=""; ptr +=""; ptr +=""; ptr +=""; ptr +=""; ptr +="Heart Rate"; ptr +=""; ptr +=(int)BPM; ptr +="BPM"; ptr +=""; ptr +=""; ptr +=""; ptr +=""; ptr +=""; ptr +="Blood Oxygen"; ptr +=""; ptr +=(int)SpO2; ptr +="%"; ptr +=""; ptr ptr ptr ptr ptr +="\n"; +="setInterval(loadDoc,1000);\n"; +="function loadDoc() {\n"; +="var xhttp = new XMLHttpRequest();\n"; +="xhttp.onreadystatechange = function() {\n"; 48 ptr ptr ptr ptr ptr ptr ptr } +="if (this.readyState == && this.status == 200) {\n"; +="document.body.innerHTML =this.responseText}\n"; +="};\n"; +="xhttp.open(\"GET\", \"/\", true);\n"; +="xhttp.send();\n"; +="}\n"; +="\n"; ptr +=""; ptr +=""; ptr +=""; return ptr; 4.4 Kết Hình 4.24: Kết 49 KẾT LUẬN Sau trình nghiên cứu học hỏi, giúp đỡ tận tình Tơ Thị Tuyết Nhung việc thực báo cáo môn học chúng em sau kết em đạt q trình làm báo cáo mơn học:  Hiểu rõ kiến trúc thành phần hệ thống IOT  Bổ sung thêm kiến thức chip nhúng, cảm biến  Tăng kỹ làm việc nhóm Từ kết đạt chúng em mong muốn phát triển khai thác thêm đề tài lớn IOT, để giải tốn, ứng dụng thực tế, thiết thực đời sống Mặc dù nhóm nỗ lực cố gắng để hồn thiện báo cáo môn học cách tốt nhất, chúng em khơng thể tránh khỏi sai sót trình làm báo cáo, mong nhận góp ý thầy bạn khoa để hồn thiện báo cáo mơn học tốt hơn… Cuối cũng, chúng em xin chân thành cảm ơn cô dạy bảo nhóm suốt q trình học tập môn học thành viên ĐT1- khoa Điện tử Viễn thơng giúp chúng em hồn thành tốt báo cáo mơn học Nhóm chúng em xin chân thành cảm ơn! 50 TÀI LIỆU THAM KHẢO Website http://alldatasheet.com/ Website http://arduino.vn/ Website http://codientu.org/ Website http://webdien.com/ Website http://wikipedia.com/ Website https://socolaaa.wordpress.com 51 ... khỏe thân Vì việc theo dõi nhịp tim lượng oxi máu cần thiết Vậy nên nhóm chúng em chọn đề tài: ? ?Nghiên cứu, xây dựng thiết bị theo dõi nhịp tim nồng độ oxy máu sử dụng ESP 32? ?? DANH MỤC HÌNH ẢNH... .16 1 .2 Sơ đồ khối, chức 16 1.3 Nguyên lý hoạt động thiết bị 17 CHƯƠNG 2: TỔNG QUAN VỀ ESP 32 21 2. 1 Sơ lược ESP 32 21 2. 2 Cấu hình ESP 32 21 2. 3 Sơ... liệu nhịp tim nồng độ oxi máu gửi lại ESP 32 - Khối Internet: nhận liệu từ ESP 32 thị lên AppBlink Web, cảnh báo nhịp tim không khoảng an toàn 1.3 Nguyên lý hoạt động thiết bị 1.3.1 Cách đo nhịp tim

Ngày đăng: 20/08/2021, 15:59

Mục lục

  • DANH MỤC HÌNH ẢNH

  • DANH MỤC BẢNG BIỂU

  • PHẦN 1: THỰC HÀNH

    • BÀI THỰC HÀNH 1: THIẾT KẾ MẠCH THEO SƠ ĐỒ

    • PHẦN 2: BÁO CÁO MÔN HỌC

      • CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

        • 1.1 Mục đích, yêu cầu

        • 1.2.2 Chức năng các khối

        • 1.3 Nguyên lý hoạt động của thiết bị

          • 1.3.1 Cách đo nhịp tim bằng nhận biết sự thay đổi cường độ ánh sáng

          • 1.3.2 Tổng quan về hoạt động của cảm biến

          • 1.3.3 Xây dựng công thức xác định nhịp tim trong cảm biến MAX30100

          • 1.3.4 Sơ lược về chỉ số SpO2 và nhịp tim

          • CHƯƠNG 2: TỔNG QUAN VỀ ESP32

            • 2.1 Sơ lược về ESP32

            • 2.3 Sơ đồ chân, chức năng

            • 3.1.2 Thông số kỹ thuật

            • 3.1.4 Các đèn LED_thu và LED_nhận trong cảm biến MAX30100

            • 4.1.2 Thiết kế mạch in, đi dây, sắp xếp linh kiện

            • 4.2 Lưu đồ thuật toán

            • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan