THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐO NHỊP TIM, SPO2 VÀ QUẢN LÝ DỮ LIỆU ỨNG DỤNG IOTS

50 181 3
THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐO NHỊP TIM, SPO2 VÀ QUẢN LÝ DỮ LIỆU ỨNG DỤNG IOTS

Đ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

Thiết kế và thi công hệ thống đo SpO2, nhịp tim và quản lý dữ liệu trên Web server sử dụng ESP8266 giao tiếp với cảm biến nhịp tim và oxy trong máu MAX30102 và lưu trữ các thông số thu nhận được từ cảm biến trên Web server. Chương trình được viết trên hệ điều hành tương thích với các hệ thống Windows, Mac và Linux.

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH BÁO CÁO CUỐI KỲ MÔN HỌC: TT HỆ THỐNG THÔNG TIN Y TẾ ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐO NHỊP TIM, SPO2 VÀ QUẢN LÝ DỮ LIỆU ỨNG DỤNG IOTS GVHD: TS Dương Thanh Tài Sinh viên thực MSSV Nguyễn Thái An 17129001 Nguyễn Văn Thi 17129043 Ngô Quang Trạng 17129056 Nguyễn Ngọc Phương Uyên 17129060 TP.Hồ Chí Minh, tháng 12, năm 2020 BẢNG PHÂN CƠNG STT HỌ VÀ TÊN Nguyễn Thái An Nguyễn Văn Thi MSSV CÔNG VIỆC THỰC HIỆN 17129001 - Thiết kế Web - Gửi liệu lên Web Server 17129043 - Ngô Quang Trạng 17129056 - Vẽ lưu đồ Nguyễn Ngọc Phương Uyên 17129060 - Thiết kế sơ đồ khối Viết phần mềm Thiết kế phần cứng Vẽ sơ đồ kết nối mạch Tìm hiểu nguyên lý hoạt động cảm biến - Tổng hợp hoàn thành báo cáo LỜI CAM ĐOAN Chúng em tuyên bố sản phẩm báo cáo làm từ kiến thức tổng quát chuyên ngành chúng em Bên cạnh đó, chúng em tìm nhiều nguồn tài liệu để hoàn thành nhiệm vụ chúng em Các kết nghiên cứu kết luận báo cáo trung thực, không chép từ nguồn LỜI CẢM ƠN Để hồn thành dự án này, chúng em muốn nói lời cảm ơn đến giảng viên chúng em Đại học Sư phạm Kỹ thuật Hồ Chí Minh giúp chúng tơi có kiến thức giảng viên Khoa Điện tử Kỹ thuật Điện để có kiến thức chun mơn Từ đó, chúng em có kiến thức ổn định có điều kiện tốt để nghiên cứu Và đặc biệt cảm ơn TS Dương Thanh Tài giúp đỡ chúng em, cho chúng em hướng tốt để thực dự án đề xuất giải pháp giải vấn đề mà chúng em gặp phải Trong lịch trình dự án, chúng em ln có kiến thức lời khuyên từ thầy với tập trung cao độ Điều quan trọng trình học tập làm việc chúng em Mặc dù với nỗ lực, thời gian kiến thức mà nhóm dùng để thực đề tài, khơng thể tránh khỏi sai sót Do vậy, chúng em mong nhận ý kiến từ thầy hướng dẫn Xin chân thành cảm ơn! TP Hồ Chí Minh, ngày 10 tháng 12 năm 2020 MỤC LỤC BẢNG PHÂN CÔNG LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH SÁCH HÌNH ẢNH DANH SÁCH BẢNG TÓM TẮT CHƯƠNG 1: TỔNG QUAN 10 1.1 Lý chọn đề tài 10 1.2 Mục tiêu 11 1.3 Nội dung nghiên cứu 11 1.4 Giới hạn 12 1.5 Bố cục đề tài 12 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 13 2.1.1 Khái niệm nhịp tim oxy máu (SpO2) 13 2.1.2 Cảm biến nhịp tim oxy máu 13 2.2 2.1.2.1 Cảm biến MAX30102 13 2.1.2.2 Cấu trúc bên cảm biến 15 2.1.2.3 Nguyên lý hoạt động cảm biến 15 Module thu phát Wifi ESP8266 17 2.2.1 Giới thiệu chung 17 2.2.2 Cấu trúc Module thu phát Wifi ESP8266 17 2.3 Nguồn 21 2.3.1 Pin Lithium-ion [14] 21 2.3.2 Module tăng áp DC – DC SX1308 [15] 22 2.3.2.1 Giới thiệu chung 22 2.3.2.2 Cấu trúc Module tăng áp DC – DC SX1308 22 2.4 Mạch sạc pin TP4506 [16] 23 2.4.1 Giới thiệu chung 23 2.4.2 Cấu trúc mạch sạc pin TP4506 24 2.5 Màn hình OLED 0.96 inch I2C [17] 26 2.6 Web Server 28 CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 29 3.1 Giới thiệu hệ thống 29 3.2 Thiết kế tính tốn hệ thống 29 3.2.2 Phân tích phần cứng 30 3.2.2.1 Khối nguồn 30 3.2.2.2 Khối vi điều khiển 31 3.2.2.3 Khối cảm biến siêu âm 32 3.2.2.4 Khối hiển thị 33 CHƯƠNG 4: THI CÔNG HỆ THỐNG 33 4.1 Giới thiệu 33 4.2 Thực thi hệ thống 33 4.2.1 Sơ đồ kết nối mạch 33 4.2.2 Lựa chọn linh kiện 34 4.2.3 Thi công 34 4.2.4 Lập trình 36 4.2.5 Lưu đồ 36 KẾT LUẬN 40 TÀI LIỆU THAM KHẢO 41 PHỤ LỤC 42 DANH SÁCH HÌNH ẢNH Hình Cảm biến nhịp tim oxy máu MAX30102 13 Hình Cấu trúc bên cảm biến nhịp tim oxy máu MAX30102 15 Hình Hình ảnh mơ tả cấu trúc thu phát phản xạ LED cách đặt tay để thu nhận tín hiệu 16 Hình Mặt trước Module thu phát Wifi ESP8266 17 Hình Sơ đồ kết nối bên Module thu phát Wifi ESP8266 19 Hình Sơ đồ chân Module thu phát Wifi ESP8266 19 Hình Hình minh họa loại Pin 21 Hình Hình ảnh DC-DC SX1308 chân ngõ 22 Hình Mạch nguyên lý Module tăng áp DC – DC SX1308 23 Hình 10 Mạch sạc pin TP4506 24 Hình 11 Mạch nguyên lý mạch TP4056 25 Hình 12 Mặt trước OLED 0.96inch I2C 27 Hình 13 Sơ đồ khối hệ thống đo nhịp tim, SpO2 quản lý liệu IOT 29 Hình 14 Pin lithium kết nối vào mạch sạc pin TP4506 30 Hình 15 Pin lithium kết nối vào mạch sạc pin TP4506 30 Hình 16 Kết nối khối vi điều khiển khối cảm biến nhịp tim oxy máu 31 Hình 17 Khối cảm biến mạch 32 Hình 18 Kết nối khối vi điều khiển khối hiển thị 32 Hình 19 Sơ đồ kết nối mạch 33 Hình 20 Kết nối linh kiện (khối nguồn): ESP8266, SX1308, TP4506 34 Hình 21 Kết nối linh kiện (khối cảm biến hiển thị kết nối vi điều khiển) 35 Hình 22 Lưu đồ giải thuật 32 Hình 23 Hình ảnh bên hộp 37 Hình 24 Hình ảnh bên hộp kẹp đặt tay 37 Hình 25 Giao diện trang Web sau thiết kế 38 Hình 26 Truy cập giao diện Web Server thơng qua máy tính 38 Hình 27 Truy cập giao diện Web Server thông qua điện thoại 39 DANH SÁCH BẢNG Bảng Chức chân cảm biến nhịp tim oxy máu MAX30102 14 Bảng Thông số kỹ thuật cảm biến nhịp tim oxy máu MAX30102 15 Bảng Thông số kỹ thuật Module thu phát Wifi ESP8266 18 Bảng Chức chân Module thu phát Wifi ESP8266 20 Bảng Thông số kỹ thuật Module tăng áp DC – DC SX1308 23 Bảng Thông số kỹ thuật Mạch sạc pin TP4506 24 Bảng Thông số kỹ thuật OLED 0.96inch I2C 27 Bảng Chức chân OLED 0.96inch I2C 27 Bảng 9: Bảng thống kê linh kiện 33 TĨM TẮT Để đáp ứng nhu cầu giám sát theo dõi sức khỏe người dùng cách xác tiện lợi, chúng em lên ý tưởng thiết kế thiết bị đo nhịp tim, SpO2 theo dõi thông số qua web Mục tiêu dự án thiết kế thiết bị có tính động, độ xác cao sử dụng kiến thức lý thuyết học cảm biến y sinh hệ thống thông tin y tế vào thực tiễn Hình 20 Kết nối linh kiện (khối nguồn): ESP8266, SX1308, TP4506 Hình 21 Kết nối linh kiện (khối cảm biến hiển thị kết nối vi điều khiển) 35 4.2.4 Lập trình Mục đích việc lập trình là: - Cảm biến MAX30102 cho chuỗi tín hiệu số vào chân đọc liệu vi điều khiển Tín hiệu phải giải mã cho giá trị mà cảm biến hồng ngoại thu - Từ giá trị vi điều khiển làm nhiệm vụ tính tốn cho giá trị nhịp tim SpO2 - Ngoài vi điều khiển hỗ trợ tạo môi trường Web để gửi liệu lên tiện cho việc truy cập để xem thông tin 4.2.5 Lưu đồ Bắt đầu Setup cảm biến, hình oled, module Wifi Đọc liệu từ cảm biến Hiển thị Oled Nhịp tim, SpO2 Tạo Web server gửi liệu Kết thúc Hình 22 Lưu đồ giải thuật Giải thích lưu đồ: 36 Chương trình đọc liệu từ cảm biến nhịp tim oxy máu sau xử lý tín hiệu thơng qua vi điều khiển, gửi liệu tín tín hiệu lên Web server 4.2.6 Kết a) Thiết kế: - Hộp đựng khối nguồn, khối vi xử lý OLED có kích thước sau: • Chiều dài: 60 mm • Chiều rộng: 60 mm • Chiều cao: 30 mm Hình 23 Hình ảnh bên hộp 37 Hình 24 Hình ảnh bên ngồi hộp kẹp đặt tay b) Kết đo 38 Hình 25 Giao diện trang Web sau thiết kế - Hình 25 hình ảnh giao diện thiết kế để theo dõi nhịp tim SpO2 bệnh nhân, giao diện bao gồm: địa IP, họ tên bệnh nhân, số phòng danh sách liệt kê thơng tin Hình 26 Truy cập giao diện Web Server thơng qua máy tính - Sau đo số nhịp tim SpO2, liệu gửi lên Web Server, Hình cho thấy kết đo cách truy cập máy tính: Nhịp tim 66 (bpm) SpO2 88% Nhịp tim cho kết bình thường SpO2 thấp Hình 27 Truy cập giao diện Web Server thông qua điện thoại - Hình 27 cho thấy kết đo cách truy cập điện thoại: Nhịp tim 57 (bpm) SpO2 77% Nhịp tim thấp SpO2 thấp 39 KẾT LUẬN Qua đề tài trên, nhóm em đạt mục tiêu ban đầu hiểu nguyên lý hoạt động cảm biến nhịp tim oxy máu MAX30102, lập trình Web, lập trình dùng vi điều khiển ESP8266 Hơn nữa, chúng em thành thạo cơng việc lập trình cho vi điều khiển ngơn ngữ lập trình C/C++, lập trình vi điều khiển ESP8266, gửi lưu liệu lên Web server Những hạn chế sản phẩm độ xác, ổn định kết đo cịn tùy thuộc nhiều vào vị trí đặt ngón tay, trễ liệu gửi lên web server kiến thức lập trình Web cịn hạn chế nên giao diện chức web mang tính mơ tả, chưa thân thiện với người dùng, kích thước sản phẩm cần thu nhỏ lại để sát với thực tế mục tiêu nhóm chúng em đề để hoàn thiện sản phẩm Hơn nữa, tích hợp nhiều loại cảm biến y sinh hướng phát triển chúng em sản phẩm đề tài 40 TÀI LIỆU THAM KHẢO [1] Nguyễn Hùng, Ngụy Phan Tín, Nguyễn Hữu Thắng, “Nghiên cứu chế tạo thiết bị hỗ trợ người khiếm thị sử dụng sóng siêu âm”, Đồ án tốt nghiệp, trường ĐH Bách Khoa, Hà Nội, 2013 [2] Esrat Jahan, “An overview on heart rate monitoring and pulse oximeter system”, researchgate.net, 02/2020 [3] Mercey Livingston, “What are blood oxygen levels? The lesser-known important health metric”, cnet.com, 09/2020 [4] Esrat Jahan, “AN OVERVIEW ON HEART RATE MONITORING AND PULSE OXIMETER SYSTEM”, researchgate.net, 02/2020 [5] haziya Allarakha, “What Are the Four Main Functions of the Heart?”, medicinenet.com, 02/2020 [6] Jessica Hegg, “Understanding SpO2 and Normal Oxygen Levels”, homecaremag.com, 09/2016 41 [7] Maxim Integrated, “High-Sensitivity Pulse Oximeter and Heart-Rate Sensor for Wearable Health”, datasheets.maximintegrated.com, 01/2018 [8] Amol Shah, “Basic Working of Pulse Oximeter Sensor”, dnatechindia.com, 01/2015 [9] Raivis Strogonovs, “Implementing pulse oximeter using MAX30102”, morf.lv, 03/2017 [10] Pras, “How pulse oximeters work”, howequipmentworks.com, 05/2020 [11] Alam, “Blood Oxygen & Heart Rate Monitor with MAX30100 & Arduino”, how2electronics.com, 01/2020 [12] Components101, “NodeMCU ESP8266”, components101.com, 04/2020 [13] Espressif IOT Team, “ESP8266EX Datasheet”, espressif.com, 10/2020 [14] Office of Energy Efficiency & Renewable Energy, “How Does a Lithium-ion Battery Work?”, energy.gov, 09/2017 [15] Suosemi Corporation, “High Efficiency 1.2MHz 2A Step Up Converter”, datasheet-pdf.com, 12/2010 [16] NanJing Top Power ASIC Corp, “TP4056 1A Standalone Linear Li-lon Battery Charger with Thermal Regulation in SOP-8”, p6v2uc.cloudfront.net [17] Lộc Nguyễn, “Giới thiệu hình OLED 0.96 inch I2C”, arduino.vn, 03/2017 [18] Đề cương giảng “Lập trình Web”, Học viện kỹ thuật quân sự, Khoa công nghệ thông tin, 2019 [19] Steve Wozniak, “What is a Web Server?”, ptgmedia.pearsoncmg.com, 02/1999 PHỤ LỤC Đây phần code chúng em lập trình ESP8622: #include //OLED libraries #include #include #include #include "MAX30105.h" #include "heartRate.h" MAX30105 particleSensor; 42 const byte RATE_SIZE = 4; //Increase this for more averaging is good byte rates[RATE_SIZE]; //Array of heart rates byte rateSpot = 0; long lastBeat = 0; //Time at which the last beat occurred float beatsPerMinute; float beatAvg; #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 32 // OLED display height, in pixels #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); //Declaring the display name (display) static const unsigned char PROGMEM logo2_bmp[] = {0x03, 0xC0, 0xF0, 0x06, 0x71, 0x8C, 0x0C, 0x1B, 0x06, 0x18, 0x0E, 0x02, 0x10, 0x0C, 0x03, 0x10, 0x04, 0x01, 0x10, 0x04, 0x01, 0x10, 0x40, 0x01, 0x10, 0x40, 0x01, 0x10, 0xC0, 0x03, 0x08, 0x88, 0x02, 0x08, 0xB8, 0x04, 0xFF, 0x37, 0x08, 0x01, 0x30, 0x18, 0x01, 0x90, 0x30, 0x00, 0xC0, 0x60, 0x00, 0x60, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x1B, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x04, 0x00}; static const unsigned char PROGMEM logo3_bmp[] = {0x01, 0xF0, 0x0F, 0x80, 0x06, 0x1C, 0x38, 0x60, 0x18, 0x06, 0x60, 0x18, 0x10, 0x01, 0x80, 0x08, 0x20, 0x01, 0x80, 0x04, 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0xC0, 0x00, 0x08, 0x03, 0x80, 0x00, 0x08, 0x01, 0x80, 0x00, 0x18, 0x01, 0x80, 0x00, 0x1C, 0x01, 0x80, 0x00, 0x14, 0x00, 0x80, 0x00, 0x14, 0x00, 0x80, 0x00, 0x14, 0x00, 0x40, 0x10, 0x12, 0x00, 0x40, 0x10, 0x12, 0x00, 0x7E, 0x1F, 0x23, 0xFE, 0x03, 0x31, 0xA0, 0x04, 0x01, 0xA0, 0xA0, 0x0C, 0x00, 0xA0, 0xA0, 0x08, 0x00, 0x60, 0xE0, 0x10, 0x00, 0x20, 0x60, 0x20, 0x06, 0x00, 0x40, 0x60, 0x03, 0x00, 0x40, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x30, 0x0C, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x00 }; // Thong so WiFi nha ban 43 const char* ssid = "AndroidAPAD1A"; const char* password = "nguyenthaian1999"; // Tao server WiFiServer server(80); void setup() { // Mo Serial Serial.begin(115200); delay(10); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Start the OLED display display.display(); delay(3000); // Khoi tao sensor if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) //Use default I2C port, 400kHz speed { Serial.println("MAX30105 was not found Please check wiring/power "); while (1); } Serial.println("Place your index finger on the sensor with steady pressure."); particleSensor.setup(); //Configure sensor with default settings particleSensor.setPulseAmplitudeRed(0x0A); //Turn Red LED to low to indicate sensor is running particleSensor.setPulseAmplitudeGreen(0); // Ket noi toi mang WiFi Serial.println(); 44 Serial.println(); Serial.print("Ket noi toi mang "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("Da ket noi WiFi"); // Khoi dong server server.begin(); Serial.println("Khoi dong Server"); // In dia chi IP Serial.println(WiFi.localIP()); } void loop() { // Kiem tra co client ket noi WiFiClient client = server.available(); if (!client) { return; } // Doi client gui ket noi 45 Serial.println("Co mot client moi ket noi xem du lieu"); while(!client.available()){ delay(1); } // Doc am long irValue = particleSensor.getIR(); Serial.print(irValue); //We sensed a beat! long delta = millis() - lastBeat; lastBeat = millis(); beatsPerMinute = 60 / (delta / 1000.0); if (beatsPerMinute < 255 && beatsPerMinute > 20) { rates[rateSpot++] = (byte)beatsPerMinute; //Store this reading in the array rateSpot %= RATE_SIZE; //Wrap variable //Take average of readings beatAvg = 0; for (byte x = 0; x < RATE_SIZE; x++) beatAvg += rates[x]; beatAvg /= RATE_SIZE; } //float t= bpm display.clearDisplay(); //Clear the display 46 display.drawBitmap(80, 10, logo2_bmp, 24, 21, WHITE); picture (little heart) display.setTextSize(1); display the BPM if you want //Draw the first bmp //Near it display the average BPM you can display.setTextColor(WHITE); display.setCursor(10,0); display.println("BPM"); display.setCursor(10,8); display.println(Bpm); display.display(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(84,0); display.println("BME"); display.setTextSize(1); display the BPM if you want //Near it display the average BPM you can display.setTextColor(WHITE); display.setCursor(10,16); display.println("SpO2"); display.setCursor(10,24); display.println(SpO2); display.display(); // Doc dong dau tien cua yeu cau gui len //String req = client.readStringUntil('\r'); //Serial.println(req); 47 //client.flush(); // Chuan bi tao web de phan hoi String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"; s += ""; s += ""; s += ""; s += "Hiển thị nhịp tim"; s += ""; s += "body {background-color: white;}"; s += "h1 { text-align:center; color:red; }"; s += "input { size:6;font-size:medium;}"; s += ".img-container {text-align: center;}"; s += "h2 { text-align:center; color:black; }"; s += ""; s += ""; // s += ""; s += "THEO DÕI NHỊP TIM VÀ SPO2"; // s += ""; s += ""; s += ""; s += ""; s += "Nhịp tim" + String(Bpm) + ""; 48 s += "Spo2: " + String( SpO2) + ""; s += ""; s += ""; s += ""; s += ""; // Gui phan hoi toi client (o day la giao dien web) client.print(s); delay(1); Serial.println("Client da thoat"); // Sau nhan duoc thong tin thi se tu dong ngat ket noi } 49 ... nghiên cứu lập trình thực hệ thống ứng dụng kiến thức học vào đề tài Đề tài nhóm em chọn ? ?THI? ??T KẾ VÀ THI CÔNG HỆ THỐNG ĐO NHỊP TIM, SPO2 VÀ QUẢN LÝ DỮ LIỆU ỨNG DỤNG IOTS? ?? Để thực đề tài này,... Windows, Mac Linux 1.3 Nội dung nghiên cứu Trong đề tài ? ?THI? ??T KẾ VÀ THI CÔNG HỆ THỐNG ĐO NHỊP TIM, SPO2 VÀ QUẢN LÝ DỮ LIỆU ỨNG DỤNG IOTS? ??, chúng em tiến hành thực nghiên cứu sau: Nội dung 1:... Thi? ??t kế tính tốn hệ thống 3.2.1 Thi? ??t kế sơ đồ khối KHỐI NGUỒN WEB SERVER KHỐI CẢM BIẾN KHỐI VI ĐIỀU KHIỂN KHỐI HIỂN THỊ PC ĐIỆN THOẠI Hình 13 Sơ đồ khối hệ thống đo nhịp tim, SpO2 quản lý liệu

Ngày đăng: 17/08/2021, 10:43

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan