Mục lục:
- Bước 1: Mạch
- Bước 2: Mã xử lý tín hiệu và giao tiếp máy chủ
- Bước 3: Máy chủ và Truyền dữ liệu
- Bước 4: Ứng dụng Android
- Bước 5: Kết luận
Video: Theo dõi nhịp tim IOT (Ứng dụng ESP8266 và Android): 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Là một phần của dự án năm cuối, tôi muốn thiết kế một thiết bị theo dõi nhịp tim của bạn, lưu trữ dữ liệu của bạn trên máy chủ và thông báo cho bạn khi nhịp tim của bạn bất thường. Ý tưởng đằng sau dự án này xuất hiện khi tôi cố gắng xây dựng một ứng dụng fit-bit thông báo cho người dùng khi họ gặp vấn đề về tim nhưng tôi không thể tìm ra cách sử dụng thông tin thời gian thực. bao gồm mạch vật lý để đo nhịp tim, mô-đun Wi-Fi ESP8266 với mã xử lý tín hiệu, máy chủ để lưu trữ mã và một ứng dụng Android để hiển thị nhịp tim.
Video mô tả chi tiết mạch vật lý có thể được xem ở trên. Tất cả mã cho dự án có thể được tìm thấy trên Github của tôi.
Bước 1: Mạch
Có hai phương pháp chính để đo nhịp tim nhưng đối với dự án này, tôi quyết định sử dụng phương pháp chụp quang tuyến tính (PPG) sử dụng nguồn ánh sáng hồng ngoại hoặc ánh sáng đỏ được khúc xạ qua một vài lớp da đầu tiên. Cảm biến ảnh được sử dụng để đo sự thay đổi cường độ ánh sáng (khi máu chảy qua mạch). Tín hiệu PPG cực kỳ nhiễu vì vậy tôi đã sử dụng bộ lọc thông dải để lọc ra các tần số cụ thể được yêu cầu. Tim người đập với tần số từ 1 đến 1,6 Hz. Op-amp mà tôi sử dụng là lm324 có hiệu điện thế tốt nhất trong số tất cả các op-amp có sẵn cho tôi. Nếu bạn đang tạo lại dự án này thì một op-amp chính xác sẽ là lựa chọn tốt hơn nhiều.
Mức tăng chỉ hai được sử dụng vì khả năng chịu điện áp tối đa trên ESP8266 là 3,3v và tôi không muốn làm hỏng bo mạch của mình!
Làm theo mạch ở trên và cố gắng làm cho nó hoạt động trên bảng mạch bánh mì. Nếu không có máy hiện sóng ở nhà, bạn có thể cắm đầu ra vào Arduino và vẽ biểu đồ nhưng phải đảm bảo rằng điện áp không cao hơn khả năng chịu đựng của arduino hoặc vi điều khiển.
Mạch đã được thử nghiệm trên một bảng mạch bánh mì và sự thay đổi trong đầu ra được quan sát thấy khi một ngón tay đặt trên đèn LED và bóng bán dẫn hình ảnh. Sau đó, tôi quyết định hàn bảng với nhau mà không được hiển thị trong video.
Bước 2: Mã xử lý tín hiệu và giao tiếp máy chủ
Tôi quyết định sử dụng Arduino IDE trên ESP8266 vì nó rất dễ sử dụng. Khi tín hiệu được vẽ biểu đồ, nó vẫn rất nhiễu vì vậy tôi quyết định làm sạch nó bằng bộ lọc trung bình động FIR với số mẫu là mười. Tôi đã sửa đổi một chương trình Arduino ví dụ có tên "làm mịn" để làm điều này. Tôi đã thử nghiệm một chút để tìm cách đo tần số của tín hiệu. Các xung có độ dài và biên độ khác nhau do tim có bốn loại xung khác nhau và các đặc điểm của tín hiệu PPG. Tôi đã chọn một giá trị giữa đã biết mà tín hiệu luôn vượt qua làm điểm tham chiếu cho mỗi xung. Tôi đã sử dụng bộ đệm vòng để xác định thời điểm độ dốc của tín hiệu là tích cực hay tiêu cực. Sự kết hợp của hai điều này cho phép tôi tính toán khoảng thời gian giữa các xung khi tín hiệu là tích cực và bằng một giá trị cụ thể.
Phần mềm này đã tạo ra một BPM khá không chính xác và không thể thực sự được sử dụng. Với các lần lặp bổ sung, một chương trình tốt hơn có thể được thiết kế nhưng do hạn chế về thời gian nên đây không phải là một lựa chọn. Mã có thể được tìm thấy trong liên kết dưới đây.
Phần mềm ESP8266
Bước 3: Máy chủ và Truyền dữ liệu
Tôi quyết định sử dụng Firebase để lưu trữ dữ liệu vì đây là một dịch vụ miễn phí và rất dễ sử dụng với các ứng dụng dành cho thiết bị di động. Không có API chính thức cho Firebase với ESP8266 nhưng tôi thấy thư viện Arduino hoạt động rất tốt.
Có một chương trình ví dụ có thể được tìm thấy trên thư viện ESP8266WiFi.h cho phép bạn kết nối với bộ định tuyến bằng SSID và Mật khẩu. Điều này được sử dụng để kết nối bo mạch với internet để dữ liệu có thể được gửi đi.
Mặc dù việc lưu trữ dữ liệu được thực hiện dễ dàng nhưng vẫn có một số vấn đề với việc gửi thông báo đẩy qua yêu cầu HTTP POST. Tôi đã tìm thấy một nhận xét trên Github đã sử dụng một phương pháp kế thừa để thực hiện việc này thông qua nhắn tin đám mây của Google và thư viện HTTP cho ESP8266. Phương pháp này có thể được nhìn thấy trong mã trên Github của tôi.
Trên Firebase, tôi đã tạo một dự án và sử dụng API và khóa đăng ký trong phần mềm. Nhắn tin đám mây firebase đã được sử dụng với ứng dụng để gửi thông báo đẩy cho người dùng. Khi thông tin liên lạc được kiểm tra, dữ liệu có thể được nhìn thấy trong cơ sở dữ liệu khi ESP8266 đang chạy.
Bước 4: Ứng dụng Android
Một ứng dụng Android rất cơ bản được thiết kế với hai hoạt động. Hoạt động đầu tiên đã đăng nhập hoặc đăng ký người dùng bằng API Firebase. Tôi đã nghiên cứu biểu dữ liệu và tìm thấy nhiều hướng dẫn khác nhau về cách sử dụng Firebase với ứng dụng dành cho thiết bị di động. Hoạt động chính hiển thị cho người dùng dữ liệu của người dùng một trình xử lý sự kiện thời gian thực để không có sự chậm trễ đáng chú ý trong các thay đổi đối với BPM của người dùng. Thông báo đẩy được thực hiện bằng cách sử dụng nhắn tin đám mây Firebase đã được đề cập trước đây. Có rất nhiều thông tin hữu ích trên biểu dữ liệu Firebase về cách triển khai điều này và ứng dụng có thể được kiểm tra bằng cách gửi thông báo từ trang tổng quan trên trang web Firebase.
Tất cả mã cho các hoạt động và phương pháp nhắn tin đám mây có thể được tìm thấy trong Kho lưu trữ Github của tôi.
Bước 5: Kết luận
Có một số vấn đề lớn khi đo BPM của người dùng. Các giá trị khác nhau rất nhiều và không thể sử dụng để xác định sức khỏe của người dùng. Điều này bắt nguồn từ mã xử lý tín hiệu được triển khai trên ESP8266. Sau khi nghiên cứu thêm, tôi phát hiện ra rằng một trái tim có bốn nhịp đập khác nhau với chu kỳ thay đổi, vì vậy không có gì ngạc nhiên khi phần mềm không chính xác. Một cách để chống lại điều này là lấy trung bình của bốn xung trong một mảng và tính toán chu kỳ của tim trên bốn xung đó.
Phần còn lại của hệ thống vẫn hoạt động nhưng đây là một thiết bị rất thử nghiệm mà tôi muốn chế tạo để xem liệu vật thể đó có khả thi hay không. Mã kế thừa được sử dụng để gửi thông báo đẩy sẽ sớm không thể sử dụng được, vì vậy nếu bạn đang đọc mã này vào cuối năm 2018 hoặc muộn hơn một phương pháp khác sẽ được yêu cầu. Tuy nhiên, sự cố này chỉ xảy ra với ESP vì vậy nếu bạn muốn triển khai điều này trên Arduino có khả năng WiFi thì sẽ không có vấn đề gì.
Nếu bạn có bất kỳ câu hỏi hoặc vấn đề nào, vui lòng gửi tin nhắn cho tôi trên nội dung hướng dẫn.
Đề xuất:
Cảm biến nhịp tim sử dụng Arduino (Theo dõi nhịp tim): 3 bước
Cảm biến nhịp tim sử dụng Arduino (Máy theo dõi nhịp tim): Cảm biến nhịp tim là một thiết bị điện tử được sử dụng để đo nhịp tim, tức là tốc độ của nhịp tim. Theo dõi nhiệt độ cơ thể, nhịp tim và huyết áp là những điều cơ bản mà chúng ta làm để giữ cho mình khỏe mạnh
Xây dựng Trình theo dõi chuyển động có thể đeo (BLE Từ Arduino đến Ứng dụng Android Studio tùy chỉnh): 4 bước
Xây dựng Trình theo dõi chuyển động có thể đeo (BLE Từ Arduino đến Ứng dụng Android Studio tùy chỉnh): Bluetooth Low Energy (BLE) là một hình thức giao tiếp Bluetooth công suất thấp. Các thiết bị đeo được, chẳng hạn như quần áo thông minh mà tôi giúp thiết kế tại Prediction Wear, phải hạn chế mức tiêu thụ điện năng ở mọi nơi có thể để kéo dài tuổi thọ pin và thường xuyên sử dụng BLE.
Hít thở thiết bị chống lo âu nhẹ với máy theo dõi nhịp tim: 18 bước (có hình ảnh)
Hít thở Thiết bị chống lo âu nhẹ với máy theo dõi nhịp tim: Với thế giới ngày càng bận rộn, mọi người đều ở trong một môi trường ngày càng căng thẳng cao. Sinh viên đại học thậm chí có nguy cơ bị căng thẳng và lo lắng cao hơn. Các kỳ thi đặc biệt là giai đoạn căng thẳng cao đối với học sinh và những chiếc đồng hồ thông minh có chức năng tập thở
Bộ dụng cụ theo dõi xe ô tô tự làm bằng rô bốt thông minh Theo dõi ô tô cảm quang: 7 bước
Tự làm bộ dụng cụ theo dõi rô bốt thông minh theo dõi ô tô Theo dõi ô tô cảm quang: Thiết kế bởi SINONING ROBOT Bạn có thể mua từ rô bốt theo dõi ô tô ChipLM393 so sánh hai điện trở quang, khi có một đèn LED cảm quang một bên TRẮNG thì bên của động cơ sẽ dừng ngay lập tức, bên kia của động cơ quay lên, để
Đo nhịp tim của bạn ở đầu ngón tay: Phương pháp chụp ảnh quang tuyến để xác định nhịp tim: 7 bước
Đo nhịp tim của bạn ngay trên đầu ngón tay: Phương pháp chụp ảnh quang tuyến để xác định nhịp tim: Máy đo quang tuyến (PPG) là một kỹ thuật quang học đơn giản và chi phí thấp thường được sử dụng để phát hiện những thay đổi về thể tích máu trong lớp vi mạch của mô. Nó chủ yếu được sử dụng không xâm lấn để thực hiện các phép đo trên bề mặt da, thường là