Thiết kế và thi công mô hình hệ thống đo nhiệt độ, nhịp tim, nồng độ oxi trong máu và phun sát khuẩn

140 0 0
Thiết kế và thi công mô hình hệ thống đo nhiệt độ, nhịp tim, nồng độ oxi trong máu và phun sát khuẩn

Đ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

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 ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THƠNG THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG ĐO NHIỆT ĐỘ, NHỊP TIM, NỒNG ĐỘ OXI TRONG MÁU VÀ PHUN SÁT KHUẨN GVHD: NGUYỄN ĐÌNH PHÚ SVTH: LÊ PHÚ QUANG HUỲNH KIM BẢO SKL009290 Tp Hồ Chí Minh, tháng 08/2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THƠNG Đề tài: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG ĐO NHIỆT ĐỘ, NHỊP TIM, NỒNG ĐỘ OXI TRONG MÁU VÀ PHUN SÁT KHUẨN GVHD: Th.S NGUYỄN ĐÌNH PHÚ SVTH : LÊ PHÚ QUANG MSSV : 17141125 SVTH : HUỲNH KIM BẢO MSSV : 18161047 Thành phố Hồ Chí Minh – 8/2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG Đề tài: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH HỆ THỐNG ĐO NHIỆT ĐỘ, NHỊP TIM, NỒNG ĐỘ OXI TRONG MÁU VÀ PHUN SÁT KHUẨN GVHD: Th.S NGUYỄN ĐÌNH PHÚ SVTH: LÊ PHÚ QUANG MSSV: 17141125 SVTH: HUỲNH KIM BẢO MSSV: 18161047 Thành phố Hồ Chí Minh – 8/2022 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o Tp HCM, ngày tháng năm 2022 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Lê Phú Quang MSSV: 17141125 Lớp: 17141CLDT1A Huỳnh Kim Bảo MSSV: 18161047 Lớp: 18161CLDT2B Chuyên ngành: Kỹ thuật Điện tử - Truyền thơng Mã ngành: 41 với khóa 2017 Chun ngành: Kỹ thuật Điện tử - Viễn thông Mã ngành: 61 với khóa 2018 Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2017 2018 I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG ĐO NHIỆT ĐỘ, NHỊP TIM, NỒNG ĐỘ OXI TRONG MÁU VÀ PHUN SÁT KHUẨN II NHIỆM VỤ Các số liệu ban đầu: - Nguyễn Đình Phú, Giáo trình Vi điều khiển, Trường ĐH Sư Phạm Kỹ Thuật Tp Hồ Chí Minh - Trần Thu Hà – Trương Thị Bích Ngà – Nguyễn Thị Lưỡng – Bùi Thị Tuyết Đan – Phù Thị Ngọc Hiếu – Dương Thị Cẩm Tú, Giáo trình Điện tử bản, Nhà xuất ĐH Quốc gia Tp Hồ Chí Minh - Nguyễn Đình Phú – Nguyễn Trường Duy, Giáo trình Kỹ thuật số, Nhà xuất ĐH Quốc gia Tp Hồ Chí Minh Nội dung thực hiện: - Thu thập liệu để thiết kế hế thống gồm nhiều cảm biến đo đạc - Các giải pháp việc thiết kế mơ hình - Lựa chọn thiết bị việc thiết kế mơ hình đo đạc thơng số - Thiết kế hệ thống điều khiển - Thiết kế mơ hình - Đánh giá kết thực Sản phẩm: Mô hình đo đạc nhiệt độ, nhịp tim, SPO2 đọc thông số đo đạt loa, cảnh báo, có ứng dụng bàn phím ma trận ứng dụng Android TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc *** TP Hồ Chí Minh, ngày thán g năm 2022 PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Lê Phú Quang MSSV: 17141125 Họ tên Sinh viên: Huỳnh Kim Bảo MSSV: 18161047 Ngành: Công nghệ kỹ thuật điện tử – truyền thông Tên đề tài: Thiết kế thi công mơ hình hệ thống đo nhiệt độ, nhịp tim, nồng độ oxi máu phun sát khuẩn Họ tên Giáo viên hướng dẫn: ThS Nguyễn Đình Phú NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: (Bằng chữ: ) GIẢNG VIÊN HƯỚNG DẪN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc *** -TP Hồ Chí Minh, ngày thán g năm 2022 PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Lê Phú Quang MSSV: 17141125 Huỳnh Kim Bảo MSSV: 18161047 Ngành: Công nghệ kỹ thuật điện tử – truyền thông Tên đề tài: Thiết kế thi cơng mơ hình hệ thống đo nhiệt độ, nhịp tim, nồng độ oxi máu phun sát khuẩn Họ tên Giáo viên hướng dẫn: ThS Nguyễn Đình Phú NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: (Bằng chữ: ) GIẢNG VIÊN PHẢN BIỆN Họ tên Sinh viên: LỜI CAM ĐOAN Đề tài nhóm đồ án tự nghiên cứu thực dựa vào số tài liệu tham khảo trước không chép từ tài liệu hay công trình Các nội dung tham khảo trích dẫn đầy đủ Nhóm thực Lê Phú Quang i Huỳnh Kim Bảo LỜI CẢM ƠN Nhóm thực đồ án xin gửi lời cảm ơn đến thầy GVHD ThS Nguyễn Đình Phú trực tiếp hướng dẫn, tham gia đóng góp, gợi ý ý kiến, chia nhiều kinh nghiệm tận tình giúp đỡ tạo điều kiện tốt thoải mái để chúng em hồn thành tốt đề tài Em xin gửi lời cảm ơn đến quý thầy cô khoa Điện – Điện tử giúp đỡ tạo điều kiện tốt cho chúng em thực đề tài Xin chân thành cảm ơn tất cả! Nhóm thực Lê Phú Quang ii Huỳnh Kim Bảo TÓM TẮT Đề tài sử dụng cảm biến đo đạc để tiến hành thu thập liệu cần thiết Sau vi xừ lí tiến hành xử lý số liệu in kết hình, thơng báo qua loa kết Với mục đích tiếp cận xu hướng muốn nắm bắt cơng nghệ nên nhóm định thực đề tài “THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG ĐO NHIỆT ĐỘ, NHỊP TIM, NỒNG ĐỘ OXI TRONG MÁU VÀ PHUN SÁT KHUẨN” Đề tài hệ thống hoàn thiện bao gồm phần cứng phần mềm, nhóm ứng dụng điêug khiển đèn phòng nhỏ đáp ứng cho phịng học, phịng thí nghiệm, hộ gia đình… Nội dung đề tài • Sử dụng board Arduino Mega làm mạch điều khiển trung tâm • Có bàn phím ma trận thay đổi thơng số cảnh báo hệ thống • Khối quang báo thơng báo tiến trình hệ thống • Các thông số sau đo hiển thị LCD 20x4 • Có loa đọc thơng số đo đạc đưa cảnh báo • Sử dụng pin cung cấp lượng cho tồn hệ thống • Hiển thị kết đo ứng dụng Android iii MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN TÓM TẮT MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG BIỂU DANH MỤC CÁC TỪ VIẾT TẮT CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU NGHIÊN CỨU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Các thông số sức khỏe người 2.1.1 Nhiệt độ thể người 2.1.2 Nhịp tim thể người 2.1.3 Chỉ số nồng độ oxi máu ( 2.2 Các chuẩn giao tiếp sử dụng 2.2.1 Chuẩn giao tiếp I2C 2.2.2 Chuẩn giao tiếp SPI 2.2.3 Chuẩn giao tiếp Bluetooth 2.2.4 Chuẩn giao tiếp UART 2.3 Tổng quan hệ điều hành Android 2.3.1 Khái niệm hệ điều hành An 2.3.2 Giao diện 2.3.3 Ứng dụng 2.4 Vi điều khiển Arduino 2.4.1 Arduino gì? 2.4.2 Giới thiệu tổng quát phi 2.4.2.1 Arduino R3 2.4.2.2 Arduino Nano 2.4.2.3 Arduino Mega 2560 iv - Khối quang báo hoạt động rõ ràng, dễ dàng nắm bắt trạng thái hoạt động hệ thống • Nhược điểm: - Ứng dụng điện thoại kết nối qua ứng dụng Bluetooth nên khoảng cách kết nối điện thoại hệ thống hạn chế - Hệ thống dùng cảm biến có giá thành rẻ, nên việc sai số khơng thể tránh khỏi, nhóm tối ưu hóa giá trị kết gần - Chưa có bảo mật kết nối Bluetooth với điện thoại, lấy cắp liệu đo - Mơ hình cịn sơ sài, dùng vật liệu giấy Formex nên không đẹp 103 CHƯƠNG : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 Kết luận Sau 16 tuần nghiên cứu, thực đề tài, đọc tài liệu chuyên ngành có liên quan trang mạng, diễn đàn, cộng đồng nước, nhóm mạng xã hội mạng Internet, cộng với kiến thức học môn học chuyên ngành, hướng dẫn GVHD Th.S Nguyễn Đình Phú, nhóm hồn thành đề tài:”Thiết Kế Và Thi Cơng Mơ Hình Hệ Thống Đo Nhiệt Độ, Nhịp Tim, Nồng Độ Oxi Trong Máu Và Phun Sát Khuẩn” Với mục tiêu đề tài đề ra, nhóm hoàn thành yêu cầu ban đầu: đo nhịp tim, SPO2, nhiệt độ thể, rửa tay khuẩn Ngồi cịn chức nâng cao như: cảnh báo, đọc thông số đo qua hệ thống loa, phím ma trận để thay đổi giá trị cảnh báo Kết đo hiển thị rõ hình LCD để người dùng có nhìn dễ dàng Dữ liệu sau lần đo gửi lưu lại thông qua ứng dụng điện thoại Các cảm biến hoạt động ổn định, với sai số chấp nhận Với lượng kiến thức, thời gian chi phí có giới hạn, nên hệ thống chưa hồn thiện: mơ hình cịn sơ xài, chưa đẹp có tính thẩm mĩ tốt Giao diện đơn giản, chức hạn chế, thơng tin gửi nhận liệu cịn có thời gian trễ, độ bảo mật thấp Ngoài thời lượng pin hạn chế 6.2 Hướng phát triển Để tăng thêm chức năng, ổn định hệ thống, hướng phát triển nhóm đề sau: - Thay đổi hình LCD sang hình OLED để thêm nhiều hiệu ứng, có giá trị mặt thẩm mĩ - Ứng dụng điện thoại: thêm chức lưu lịch sử đo thông số, lưu thông tin cá nhân người đo, chuyển giao tiếp Bluetooth sang dùng mạng 4G để người dùng truy cập nơi - Tăng cường thời lượng pin - Dùng cảm biến khác để tăng cường độ xác - Dùng hộp mica in nhựa 3D để làm vỏ bọc hệ thống, tăng cường tính thẩm mĩ 104 TÀI LIỆU THAM KHẢO • Sách tham khảo [2] Nguyễn Đình Phú, Giáo trình Vi điều khiển, Trường ĐH Sư Phạm Kỹ Thuật [2 Nguyễn Đình Phú – Nguyễn Trường Duy, Giáo trình Kỹ thuật số, Trường ĐH Sư Phạm Kỹ Thuật Tp Hồ Chí Minh [3] Tuyết Trần Thu Hà – Trương Thị Bích Ngà – Nguyễn Thị Lưỡng – Bùi Thị Đan – Phù Thị Ngọc Hiếu – Dương Thị Cẩm Tú, Giáo trình Điện tử bản, Nhà xuất ĐH Quốc gia Tp Hồ Chí Minh [4] Phan Vân Hồn (2015), Giáo trình vi xử lý nâng cao – smt32, Trường ĐH Sư Phạm Kỹ Thuật, Tp HCM * Website tham khảo https://lastminuteengineers.com/max30102-pulse-oximeter-heart-rate-sensorarduino-tutorial/ [1] https://lastminuteengineers.com/mlx90614-ir-temperature-sensor-arduinotutorial/ [2] [3] https://lastminuteengineers.com/arduino-micro-sd-card-module- tutorial/ http://arduino.vn/bai-viet/541-sdcard-breakout-board-cach-dung-mach-docghi-trong-du-su-dung-am-thanh [4] 105 PHỤ LỤC #include #include #include #include #include #include #include #include #include //bluetooth //phat nhac TMRpcm tmrpcm; unsigned long time = 0; #define SD_ChipSelectPin 53//dung ss chan 53 tren arduino //define ban phim const byte ROWS = 4; //four rows const byte COLS = 4; //four columns char keys[ROWS][COLS] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad byte colPins[COLS] = {13, 12, 11, 10}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //define cac module PulseOximeter pox; Adafruit_MLX90614 mlx = Adafruit_MLX90614(); LiquidCrystal_I2C lcd(0x27, 20, 4); //define time delay #define REPORTING_PERIOD_MS 5000 #define REPORTING_PERIOD_MS1 500 //define cac thong so int flag = 0, flag1 = 0; int ttbp=0; String ndcd, spo2cd, nhiptimcd; int sensorbom = 14; int sensormain = 15; int relaybom = 16; int dendo = 17; int denvang = 18; int denxanh = 19; int counter = 0; int tt1 = 0; long gt; float nd1, nd2, nd3, nhietdo; int ndht = 38, spo2ht = 95, nhiptimht = 90; uint32_t tsLastReport = 0, tsLastReport1 = 0; int nhiptim=0, spo2=0; int nhiptim1, spo21; //cac chuong trinh void intro() 106 { lcd.setCursor(0, 0); lcd.print(" Chao mung ban "); lcd.setCursor(0, 1); lcd.print("Vui long nhiet do"); lcd.setCursor(0, 2); lcd.print("SPO2 va nhip tim"); lcd.setCursor(0, 3); lcd.print("Dat tay xuong duoi!"); digitalWrite(dendo,HIGH); tmrpcm.play("intro.wav"); delay(6000); digitalWrite(5,LOW); flag1 = 1; } void donhietdo() { nd1 = 0, nd2 = 0, nd3 = 0; nhietdo = 0; mlx.begin(); if (millis() - tsLastReport > REPORTING_PERIOD_MS1) { nd1 = mlx.readObjectTempC() ; delay(10); nd2 = mlx.readObjectTempC() ; delay(10); nd3 = mlx.readObjectTempC() ; nhietdo = ((nd1 + nd2 + nd3) / 3) + 2; tsLastReport = millis(); } digitalWrite(relaybom, HIGH); delay(500); digitalWrite(relaybom, LOW); delay(100); Serial.print(nhiptim1); Serial.print("|"); Serial.print(spo21); Serial.print("|"); Serial.print(nhietdo); delay(10); amthanhnhietdo(nhietdo); } void donhietdo2() { nd1 = 0, nd2 = 0, nd3 = 0; nhietdo = 0; mlx.begin(); if (millis() - tsLastReport > REPORTING_PERIOD_MS1) { nd1 = mlx.readObjectTempC(); delay(10); nd2 = mlx.readObjectTempC(); delay(10); nd3 = mlx.readObjectTempC(); nhietdo = ((nd1 + nd2 + nd3) / 3) + 2; tsLastReport = millis(); } digitalWrite(relaybom, HIGH); delay(500); digitalWrite(relaybom, LOW); delay(100); amthanhnhietdo(nhietdo); } void dosinhthiet() { 107 pox.update(); if (millis() - tsLastReport > REPORTING_PERIOD_MS) { nhiptim = pox.getHeartRate(); spo2 = pox.getSpO2(); tsLastReport = millis() ; if (spo2 > 90 && spo2 < 101 && nhiptim > 50 && nhiptim < 120 ) { nhiptim1 = nhiptim; spo21 = spo2; amthanhsinhthiet(nhiptim,spo2); flag1 = 3; pox.begin(); pox.update(); } } } void soundplay(int n) { if (n==1) tmrpcm.play("1.wav"); else if (n==2) tmrpcm.play("2.wav"); else if (n==3) tmrpcm.play("3.wav"); else if (n==4) tmrpcm.play("4.wav"); else if (n==5) tmrpcm.play("5.wav"); else if (n==6) tmrpcm.play("6.wav"); else if (n==7) tmrpcm.play("7.wav"); else if (n==8) tmrpcm.play("8.wav"); else if (n==9) tmrpcm.play("9.wav"); else tmrpcm.play("0.wav"); delay(600); } void amthanhnhietdo(float atnd) { int a,b,c,d; float c1,d1; a = atnd/10; b = atnd -(a*10) ; c1 = (atnd -(a*10+b))*10; c = (int) c1; d1 = (atnd -(a*10+b))*100 - c*10; d = (int) d1; if (atnd > ndht) { lcd.setCursor(0, 0); lcd.print("Nhiet co the cao"); lcd.setCursor(0, 1); lcd.print("Nhiet do: "); lcd.print(nhietdo); lcd.setCursor(15, 1); lcd.print("\337C"); lcd.print(" "); lcd.setCursor(0, 2); lcd.print(" "); lcd.setCursor(0, 3); lcd.print(" "); tmrpcm.play("ndocao.wav"); delay(1500); } else { lcd.setCursor(0, 0); lcd.print("Nhiet co the BT "); lcd.setCursor(0, 1); lcd.print("Nhiet do: "); lcd.print(nhietdo); lcd.setCursor(15, 1); lcd.print("\337C"); lcd.print(" "); lcd.setCursor(0, 2); lcd.print(" "); lcd.setCursor(0, 3); lcd.print(" "); tmrpcm.play("ndobt.wav"); delay(1500); } 108 soundplay(a); tmrpcm.play("muoi.wav"); delay(600); if (b != 0) soundplay(b); tmrpcm.play("phay.wav"); delay(600); soundplay(c); soundplay(d); tmrpcm.play("doc.wav"); delay(600); } void amthanhsinhthiet(int x, int y) { int a,b,c,d,e; a = x /100; b = x /10 - a*10; c = x -(a*100+b*10); d = y/10; e = y - (d*10); lcd.setCursor(0, 0); lcd.print(" lcd.setCursor(0, 1); lcd.print(" Nhip tim: "); lcd.print(x); lcd.print(" lcd.setCursor(0, 2); lcd.print(" SPO2 lcd.print(" lcd.setCursor(0, 3); lcd.print(" if (x < { tmrpcm.play("ntbt.wav"); delay(1000); } else {tmrpcm.play("ntcao.wav"); delay(1000); } if (x == 100) { tmrpcm.play("100.wav"); delay(600); } else { if(a != 0) tmrpcm.play("100.wav"); delay(600); soundplay(b); tmrpcm.play("muoi.wav"); delay(600); if (c != 0) soundplay(c); } tmrpcm.play("bpm.wav"); delay(600); delay(800); if (y < spo2ht) { tmrpcm.play("spo2thap.wav"); delay(1000); } else tmrpcm.play("spo2bt.wav"); delay(1700); if (y == 100) {tmrpcm.play("100.wav"); delay(600); } else { soundplay(d); tmrpcm.play("muoi.wav"); delay(600); if (e != 0) soundplay(e); } tmrpcm.play("%.wav"); delay(1000); 109 digitalWrite(5,LOW); } void xulynhietdo() { char isnum; lcd.setCursor(0, 0); lcd.print(" Thay doi nhiet do: "); lcd.setCursor(0, 1); lcd.print(" ND hien tai: "); lcd.print(ndht); lcd.print(" "); lcd.setCursor(0, 2); lcd.print(" ND thay doi: "); lcd.print(ndcd); lcd.print(" "); lcd.setCursor(0, 3); lcd.print(" "); char key = keypad.getKey(); if (key) { isnum = (key >= '0' && key = '0' && key = '0' && key 1000) { nhiptim = pox.getHeartRate(); } spo2 = pox.getSpO2(); tsLastReport = millis() ; if(nhiptim < 50 || spo2

Ngày đăng: 05/05/2023, 15:16

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

Tài liệu liên quan