Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 84 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
84
Dung lượng
3,88 MB
Nội dung
2022 TÊN ĐỀ TÀI: THIẾT BỊ ĐEO TAY PHÁT HIỆN TÉ NGÃ Ở NGƯỜI CAO TUỔI Họ tên sinh viên: Đồn Văn Thắng, Trần Trung Tín Phụ lục 01 ĐẠ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ỀU KHIỂN VÀ TỰ ĐỘNG HÓA ĐỀ TÀI: THIẾT KẾ THIẾT BỊ ĐEO TAY PHÁT HIỆN TÉ NGÃ Ở NGƯỜI CAO TUỔI Người hướng dẫn : Sinh viên thực hiện: Mã sinh viên: Lớp: ThS Phạm Duy Dưởng Đoàn Văn Thắng Trần Trung Tín 1811505520146 1811505520156 18TDH1 Đà Nẵng, 06/2022 Phụ lục 01 ĐẠ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ỀU KHIỂN VÀ TỰ ĐỘNG HÓA ĐỀ TÀI: THIẾT KẾ THIẾT BỊ ĐEO TAY PHÁT HIỆN TÉ NGÃ Ở NGƯỜI CAO TUỔI Người hướng dẫn : Sinh viên thực hiện: Mã sinh viên: Lớp: ThS Phạm Duy Dưởng Đoàn Văn Thắng Trần Trung Tín 1811505520146 1811505520156 18TDH1 Đà Nẵng, 06/2022 NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN TÓM TẮT Mục tiêu đồ án thiết kế thiết bị đeo tay phát té ngã người cao tuổi tìm hiểu, nghiên cứu, xây dựng chương trình phân tích, xử lý nhu cầu theo dõi sức khỏe, cảnh báo ngã, hỗ trợ người thuận tiện đời sống ngày, cụ thể hệ thống vịng đeo tay thơng minh, đo đạc số sức khỏe quan trọng nhịp tim, nồng độ oxy máu phát cảnh báo ngã sau gửi lên internet điện thoại để dễ dàng theo dõi Trong đồ án này, thiết bị phân chia thành phần hướng giải khác nhau: - Phần giao tiếp vịng tay gateway sử dụng cơng nghệ truyền dẫn RF Phần giao tiếp gateway internet sử dụng cơng nghệ wifi module ESP8266 thơng dụng Ngồi ra, nhóm thiết kế thêm module sim tích hợp gateway để gửi tin nhắn gọi điện thoại cho người thân để giải hạn chế wifi trường hợp không may bị kết nối Bố cục đồ án gồm chương sau: • Chương 1: Cơ sở lý thuyết Chương giới thiệu nhịp tim, kiến thức té ngã người cao tuổi linh kiện sử dụng • Chương 2: Tính tốn, thiết kế phần cứng Chương xây dựng sơ đồ khối, sơ đồ nguyên lý thiết bị Từ thi cơng phần mạch in • Chương 3: Lập trình điều khiển hệ thống Chương xây dựng lưu đồ thuật toán thiết bị, giới thiệu nguyên lý đo nhịp tim, SpO2, thuật toán phát té ngã thiết kế giao diện phần mềm theo dõi điện thoại • Chương 4: Thử nghiệm đánh giá kết Chương tiến hành thử nghiệm để đánh giá tính thiết bị Đưa hướng phát triển cho thiết bị để hoàn thiện thương mại hóa TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT CỘNG HỊA XÃ HƠI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN - ĐIỆN TỬ Độc lập - Tự - Hạnh phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Giảng viên hướng dẫn: ThS Phạm Duy Dưởng Sinh viên thực hiện: Đoàn Văn Thắng Mã SV: 1811505520146 Trần Trung Tín Mã SV: 1811505520156 Tên đề tài: Thiết kế thiết bị đeo tay phát té ngã người cao tuổi Các số liệu, tài liệu ban đầu: - Đo nhịp tim, phát té ngã, hiển thị số liệu qua App - Thông báo cho người thân qua số điện thoại Nội dung đồ án: - Tìm hiểu ngun lý đo nhịp tim, giải thuật xử lý tín hiệu để có kết nhịp tim - Lựa chọn cảm biến thuật toán hỗ trợ việc phát té ngã - Thiết kế chế tạo thành công thiết bị đeo tay kết hợp đo nhịp tim, phát té ngã, theo dõi liệu qua App Các sản phẩm dự kiến Thiết bị đeo tay kết hợp chức đo nhịp tim, phát té ngã người cao tuổi theo dõi qua App điện thoại thông minh Ngày giao đồ án: 21/2/2022 Ngày nộp đồ án: 30/05/2022 Đà Nẵng, ngày 21 tháng 02 năm 2022 Trưởng Bộ môn Người hướng dẫn LỜI NĨI ĐẦU Xã hội vươn phát triển cách nhanh chóng với tảng cách mạng công nghệ 4.0 với khái niệm chuyển đổi số, điện tốn đám mây, trí tuệ nhân tạo hay Internet vạn vật (IoT – Interner of Things) Những cơng nghệ góp phần quan trọng giúp cho sống trở lên văn minh đại, tối ưu chi phí nhân lực Việc tích hợp công nghệ đại vào đời sống hàng ngày, trở nên phổ biến chi phí dần giảm thấp công nghệ phát triển, thứ quen thuộc nhà ở, xe hơi, đồng hồ… dần trở nên “thông minh” Đặc biệt, nhu cầu thiết bị nhỏ gọn, thuận tiện mang theo, theo dõi sức khỏe, theo dõi nhịp tim, huyết áp hay lượng calo tiêu thụ dần trở nên phổ biến Các tính quan trọng khác báo thức, báo gọi đến, cảnh báo ngã… tích hợp sản phẩm mang lại nhiều hiệu tích cực cho người Do vậy, em chọn đề tài “Thiết kế thiết bị đeo tay phát té ngã người cao tuổi” để thực đề tài tốt nghiệp i LỜI CAM ĐOAN Đồ án tự thực dựa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước Các kết cơng bố Đồ Án Tốt Nghiệp “Thiết kế thiết bị đeo tay phát té ngã người cao tuổi” trung thực khơng chép từ cơng trình khác Sinh viên thực Đoàn Văn Thắng Trần Trung Tín ii MỤC LỤC NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN i NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN ii TÓM TẮT iii NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP iv LỜI NÓI ĐẦU i LỜI CAM ĐOAN ii MỤC LỤC iii DANH MỤC CÁC BẢNG, HÌNH VẼ vi DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT viii MỞ ĐẦU 1 Đặt vấn đề Các giải pháp có Mục tiêu đề tài 4 Lựa chọn giải pháp 5 Giới hạn đề tài Nội dung thực CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu nhịp tim 1.1.1 Nhịp tim bình thường 1.1.2 Nhịp tim rối loạn 1.2 Các kiến thức té ngã người cao tuổi 1.3 Giới thiệu phần cứng 1.3.1 Tổng quan hệ thống đề xuất 1.3.2 Module ESP8266 NodeMCU 10 1.3.3 Module NRF24L01 12 1.3.4 Module SIM800L 13 1.3.5 Module hạ áp LM2596S 14 1.3.6 Còi 15 1.3.7 Chip Atmega328P 15 1.3.8 Cảm biến gia tốc MPU6050 16 iii 1.3.9 Cảm biến MAX30100 17 1.3.10 Module cảm biến chạm TP223 18 1.3.11 Mạch sạc TP4056 19 1.3.12 Nguồn Adapter 19 1.4 Những chuẩn giao tiếp sử dụng 20 1.4.1 Giao tiếp I2C 20 1.4.1.1 Đặc điểm 20 1.4.1.2 Nguyên tắc hoạt động 20 1.4.2 Giao tiếp UART 21 1.4.2.1 Đặc điểm 21 1.4.2.2 Truyền thông UART 22 1.4.2.3 Ứng dụng 22 1.4.3 Giao tiếp SPI 23 1.4.3.1 Đặc điểm 23 1.4.3.2 Cơ chế hoạt động 24 CHƯƠNG TÍNH TỐN, THIẾT KẾ PHẦN CỨNG 25 2.1 Sơ đồ khối 25 2.1.1 Sơ đồ khối vòng tay 25 2.1.1.1 Khối xử lý 25 2.1.1.2 Khối cảm biến 25 2.1.1.2.1 Cảm biến đo nhịp tim SpO2 25 2.1.1.2.2 Cảm biến gia tốc 26 2.1.1.3 Khối truyền thông RF2.4 26 2.1.1.4 Khối nguồn 26 2.1.2 Sơ đồ khối gateway 26 2.1.2.1 Khối xử lý 27 2.1.2.2 Khối truyền thông: 27 2.1.2.3 Khối cảnh báo 27 2.1.2.4 Khối nguồn 27 2.2 Sơ đồ nguyên lý 28 2.2.1 Sơ đồ nguyên lý vòng tay 28 2.2.2 Sơ đồ nguyên lý gateway 29 iv Thiết kế thiết bị đeo tay phát té ngã người cao tuổi } } Serial.println(WiFi.localIP()); Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);// ket noi firebase } void loop() { if(radio.available()){ while(radio.available()){ radio.read(&msg, sizeof(msg)); } if(msg[2]==1){ countWarning++; timeCheckWarning = millis(); } if(msg[3]==1){ canhBao=0; } if(msg[4]==1) { khanCap = 1; timeTN = millis(); } String data = convertToJson(String(msg[0]), String(msg[1]), String(canhBao), String(khanCap)); Serial.println(data); Firebase.pushString("data", data); digitalWrite(coi,HIGH); delay(500); digitalWrite(coi,LOW); } if((unsigned long)(millis()-timeCheckWarning)>1000) { countWarning =0; } Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín Thiết kế thiết bị đeo tay phát té ngã người cao tuổi if(countWarning > 8)// han che truong hop hoat dong manh { canhBao = 1; } if((unsigned long)(millis()-timeTN)>1000) { // goi s thi tat khanCap=0; } if(canhBao == 1) { digitalWrite(coi,HIGH); Gsm_MakeSMS(myphone, "canh bao nga"); Gsm_MakeCall(myphone); delay(4000); } else { digitalWrite(coi,LOW); } if(khanCap == 1) {// cuoc goi digitalWrite(coi,HIGH); Gsm_MakeSMS(myphone, "Toi dang gap nguy hiem"); Gsm_MakeCall(myphone); delay(5000); } else { digitalWrite(coi,LOW); } } String convertToJson(String data1, String data2, String data3, String data4) { char JsonConvertChar[512]; StaticJsonBuffer jsonBuffer; Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín Thiết kế thiết bị đeo tay phát té ngã người cao tuổi JsonObject& root = jsonBuffer.createObject(); root["time"] = getTimeFromInternet(); root["heartbeat"] = data1; root["SpO2"] = data2; root["horn"] = data3; root["message"] = data4; root["date"] = getDateFromInternet(); root.printTo((char*)JsonConvertChar, root.measureLength()+1); String data = JsonConvertChar; jsonBuffer.clear(); return data; } String getTimeFromInternet(){ n.update(); String gio, phut, giay; if(n.getHours()tm_mday); } if(ptm->tm_mon+1 < 10) { thang = "0"+String(ptm->tm_mon+1); } else { thang = String(ptm->tm_mon+1); } if(ptm->tm_year+1900 < 10) { nam = "0"+String(ptm->tm_year+1900); } else { nam = String(ptm->tm_year+1900); } Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín Thiết kế thiết bị đeo tay phát té ngã người cao tuổi String dateLocal=ngay+"/"+thang+"/"+nam; return dateLocal; } void Gsm_Init() { Serial.println("ATE0"); delay(2000); Serial.println("AT+IPR=9600"); delay(2000); Serial.println("AT+CMGF=1"); delay(2000); Serial.println("AT+CLIP=1"); delay(2000); Serial.println("AT+CNMI=2,2"); delay(2000); } void Gsm_MakeCall(String phone) { Serial.println("ATD" + phone + ";"); delay(10000); Serial.println("ATH"); delay(2000); } // Tat che phan hoi (Echo mode) // Dat toc truyen nhan du lieu 9600 bps // Chon che TEXT Mode // Hien thi thong tin nguoi goi den // Hien thi truc tiep noi dung tin nhan // Goi dien // Sau 10s // Ngat cuoc goi void Gsm_MakeSMS(String phone,String content) { Serial.println("AT+CMGS=\"" + phone + "\""); // Lenh gui tin nhan delay(3000); // Cho ky tu '>' phan hoi ve Serial.print(content); // Gui noi dung Serial.print((char)26); delay(5000); // delay 5s } Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín Thiết kế thiết bị đeo tay phát té ngã người cao tuổi Chương trình điều khiển vịng tay #include #include "RF24.h" #include #include "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 PulseOximeter pox; uint32_t tsLastReport = 0; void onBeatDetected() { Serial.println("B:1"); } const int MPU_addr = 0x68; // I2C address of the MPU-6050 int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ; uint8_t address[1][10] = {"gateway"}; // địa để phát RF24 radio(9, 10); //thay 10 thành 53 với mega CE byte msg[5]; unsigned long timeWarning = 0; unsigned long timeRefresh = 0; void setup() { Serial.begin(115200); radio.begin(); radio.setAutoAck(1); radio.setRetries(1, 1); radio.setDataRate(RF24_1MBPS); // Tốc độ truyền radio.setPALevel(RF24_PA_MAX); // Dung lượng tối đa radio.setChannel(10); // Đặt kênh radio.openWritingPipe(address[0]); // mở kênh pinMode(2, INPUT); pinMode(4, INPUT); pinMode(8, INPUT); msg[0] = 0; Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín Thiết kế thiết bị đeo tay phát té ngã người cao tuổi msg[1] = 0; msg[2] = 0; msg[3] = 0; msg[4] = 0; Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); // PWR_MGMT_1 register Wire.write(0); // set to zero (wakes up the MPU-6050) Wire.endTransmission(true); pox.setOnBeatDetectedCallback(onBeatDetected);// xoa } unsigned long timeCham = 0; byte check = 0; void loop() { Wire.beginTransmission(MPU_addr); Wire.write(0x3B); // starting with register 0x3B (ACCEL_XOUT_H) Wire.endTransmission(false); Wire.requestFrom(MPU_addr, 14, true); // request a total of 14 registers AcX = Wire.read() 20) { dataTrackingList = dataTrackingList.subList(0, 20); } renderData(); } }); database = FirebaseDatabase.getInstance(); myRef = database.getReference("data"); configureLineChart(); myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { HashMap hashMap = (HashMap) dataSnapshot.getValue(); assert hashMap != null; dataTrackingList = new ArrayList(); Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín 13 Thiết kế thiết bị đeo tay phát té ngã người cao tuổi dataTrackingListAll = new ArrayList(); for (String string : hashMap.values()) { try { DataTracking dataTracking = objectMapper.readValue(string, DataTracking.class); dataTracking.setDateObj(simpleDateFormat.parse(dataTracking.getDate() + dataTracking.getTime())); dataTrackingListAll.add(dataTracking); } catch (JsonProcessingException | ParseException e) { e.printStackTrace(); } } Collections.sort(dataTrackingListAll); if (dataTrackingListAll.size() > 20) { dataTrackingList = dataTrackingListAll.subList(0, 20); datePicker.init(year, dataTrackingListAll.get(0).getDateObj().getMonth() , dataTrackingListAll.get(0).getDateObj().getDate() , new DatePicker.OnDateChangedListener() { public void onDateChanged(DatePicker datePicker, int year, int month, int dayOfMonth) { } }); } renderData(); if (1 == dataTrackingListAll.get(0).getMessage()) { Toast.makeText(MainActivity.this, "Some message is coming", Toast.LENGTH_LONG).show(); } if (1 == dataTrackingListAll.get(0).getHorn()) { Toast.makeText(MainActivity.this, "Some horn is coming", Toast.LENGTH_LONG).show(); } } public void onCancelled(DatabaseError error) { Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín 14 Thiết kế thiết bị đeo tay phát té ngã người cao tuổi } }); } private void renderData() { Collections.reverse(dataTrackingList); entryListHeartbeat = new ArrayList(); entryListSpo2 = new ArrayList(); for (DataTracking dataTracking : dataTrackingList) { entryListHeartbeat.add(new Entry(entryListHeartbeat.size()+1, dataTracking.getHeartbeat())); entryListSpo2.add(new Entry(entryListSpo2.size()+1, dataTracking.getSpO2())); } LineDataSet heart = new LineDataSet(entryListHeartbeat, "Nhịp tim"); ArrayList dataSetsHeart = new ArrayList(); dataSetsHeart.add(heart); lineChartHeartbeat.setData(new LineData(dataSetsHeart)); lineChartHeartbeat.invalidate(); LineDataSet spo2 = new LineDataSet(entryListSpo2, "SPO2"); ArrayList dataSetsSpo2 = new ArrayList(); dataSetsSpo2.add(spo2); lineChartSpo2.setData(new LineData(dataSetsSpo2)); lineChartSpo2.invalidate(); } private void configureLineChart() { Description desc = new Description(); desc.setText("Thông tin nhịp tim"); lineChartHeartbeat.setDescription(desc); ValueFormatter valueFormatter = new ValueFormatter() { public String getFormattedValue(float value) { return dataTrackingList.get((int)value-1).getTime(); } }; Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín 15 Thiết kế thiết bị đeo tay phát té ngã người cao tuổi XAxis xAxis = lineChartHeartbeat.getXAxis(); xAxis.setValueFormatter(valueFormatter); Description desc1 = new Description(); desc1.setText("Thông tin SpO2"); lineChartSpo2.setDescription(desc1); XAxis xAxis1 = lineChartSpo2.getXAxis(); xAxis1.setValueFormatter(valueFormatter); } } - Chương trình giao diện Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín 16 Thiết kế thiết bị đeo tay phát té ngã người cao tuổi Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín 17 ... Các thiết bị đeo tay nên cảnh báo té ngã dễ bị nhiễu, giá cao Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín Thiết kế thiết bị đeo tay phát té ngã người cao tuổi. .. Hình ảnh người già bị té ngã Sinh viên thực hiện: Đoàn Văn Thắng Người hướng dẫn: Phạm Duy Dưởng Trần Trung Tín Thiết kế thiết bị đeo tay phát té ngã người cao tuổi Té ngã xảy phản xạ người thay... việc phát té ngã - Thiết kế chế tạo thành công thiết bị đeo tay kết hợp đo nhịp tim, phát té ngã, theo dõi liệu qua App Các sản phẩm dự kiến Thiết bị đeo tay kết hợp chức đo nhịp tim, phát té ngã