Arduino biometric data collection mechanism in use
Arduino hardware wiring and live values displayed on LCD
Generated heart rate graph
Generated ECG heart beat pattern graph
Home page of website UI - a video call can be started, received, or ended from here.
Real-time biometric data being shared during a video call appointment on the web UI
Live ECG graph being generated from database and displayed during the video call appointment
Server running and receiving requests from mechanism
Firebase realtime database for backend data storage
Biometric data records stored in database
We were inspired to create this project when the pandemic began forcing people to move their doctor's appointments and healthcare visits to online. We realized that there is only so much that can be done virtually without access to biometric data testing and a proper video calling interface. Due to a lack of technology available for this problem, we decided to create a virtual video-conferencing software that would share real-time biometric data of the patient by using a low-cost, Arduino-powered biometric data collection mechanism.
What it does
Biometricz provides a seamless way to attend a doctor's appointment or checkup from the comfort and safety of your home without sacrificing access to biometric devices/tools and an in-person feel. When navigating the website user interface, the patient has an option to start a call with the doctor or physician using a unique ID. During the call, the patient can turn on their biometric data collection mechanism, which will record three unique metrics of their health. Every 1 second, the heart rate and blood oxygen percentage is determined. Additionally, every 5 milliseconds ECG sensors detect the pattern of your heart beat by mapping the impulse of electrical signals coming from your heart. However, it can be difficult to understand the significance of these values, which is why the data is sent to our server every 5 seconds, where it is stored in a database and displayed in the call for the patient and doctor to see. This data is also turned into a graph and displayed on a Serial Plotter and numerically displayed on an LCD for the patient's use. When the appointment is over, the patient or doctor can hang up the call, but the data will always be available to view on the website for future reference.
How we built it
The hardware was constructed using an Arduino Mega 2560, an ECG sensor, a heart rate and blood oxygen sensor, a WiFi module was used, and a 16x2 LCD. Before wiring the sensors, we soldered the ECG sensor and heart rate and blood oxygen sensor. The Arduino was then programmed entirely in C++. On startup of the mechanism, the WiFi module would connect to the local WiFi before connecting to our server and sending requests including the data every 5 seconds. The server was built in Express.js and was publicly hosted using ngrok. Upon receiving the data, the server made sure it was in the right format using a JSON schema. If the data could not be validated, the server would return an error code back to the Arduino. If the data was verified successfully, it used Firebase Firestore to store the received biometric data along with the Room ID and other call information. The video part of the call was done using Firestore and WebRTC, a peer-to-peer communication framework. Media sources (webcams, microphone feedback) and their tracks were pushed and pulled from a local stream and remote streams, respectively, to a peer connection in Firestore. When a new call was created, it created an offer that referenced a Firestore collection for signaling. From there, another user could join the call with a unique ID. During the call, live biometric is displayed from the Arduino.
Challenges we ran into
Some challenges that we ran into were sending the biometric data from Arduino to the server. Because the server was publicly hosted, it was difficult to properly format the HTTP request with the needed parameters and headers. Additionally, it was difficult to start and maintain a video call between two computers.
Accomplishments that we're proud of
We are proud to have built a working system that can make healthcare so much easier and more efficient for patients across the globe without needing access to expensive equipment or in-person visits that were canceled due to the pandemic. We are also proud to have overcome various technical difficulties that were necessary to the success of the project.
What we learned
While working on this project, we learned how to send HTTP requests to public IP's as well as host video calls between two different computers. We also learned more about the significance of maintaining a healthy blood oxygen level and heart rate and pattern and how vital it can be to staying healthy and preventing diseases. Additionally, we learned that these three metrics can be extremely important in providing insight into how well a Covid patient is recovering.
What's next for Biometricz
In the future, Biometricz could feature additional biometric sensors including body temperature and blood pressure which would increase the efficiency of being able to accurately assess the patient's health. Overall, we strongly believe that Biometricz can revolutionize how virtual health care is done in the future. For people looking to visit doctors in different regions or virtually due to health and safety precautions, Biometricz can provide a seamless and practical solution to virtually consulting with a doctor or physician with the biometric tools and data as if you were really there.