A lot of people live with life threatening conditions that can be triggered unexpectedly: heart problems, severe asthma, extreme allergies, pulmonary edema, blood clots... When emergency strikes, emergency services might not be called on time or might not be called at all if these individuals are alone. However immediate help is imperative to maximize their chances of getting out of these situations unscathed.
What it does
Our solution to the problem is the Internet of Emergencies (IoE). IoE is a real time permanent patient monitoring system. The patient wears a wristband with sensors for heart rate and oxygen saturation levels. It automatically detects a state of distress in a patient using these sensor readings. If a state of distress is detected, our fleet of first responders are alerted through a mobile application and the ones closest to the patient are mobilized to come to their aid, guided with an interactive map on their mobile phone displaying in real time the patient's location and vital signs.
How we built it
The wristband was built with an ESP8266 module (a WiFi enabled ARM microcontroller). It reads data from a MAX30100 pulse oxymeter using i2c. We then compute the pulse and spo2 using said data using an open source library. This information is then then sent to our PHP servers using a rest API. The data is stocked in a MySQL database. The servers then determine if the patient is in a state of emergency using a python program which performs analysis on the pulse oxymetry data. If that is the case, then the server broadcasts a message on a mobile application to all responders using the pusher API. When a responder takes on the task of helping a patient, the server periodically sends him an updated location of the patient and current values for heart rate and oxymetry. An Android application displays this data and a map with voice guided turn-by-turn navigation.
Challenges we ran into
The wristband: Our MAX30100 breakout board had pullup resistors to the wrong voltage (1.8V) on the i2c bus. It took a while to troubleshoot the problem and some tiny de-soldering to fix the issue. We also found the sensors were rather sensitive and required significant data filtering in order to obtain coherent values.
PHP/MySQL server: Setting up the server and insuring data persistence was rather complicated. Also, we only had one team member working on the server and he had to keep up with the functionalities of all the other modules of the project.
Android applications: Implementing the GPS positionning for the patient and turn-by-turn navigation on the responder application.
Accomplishments that we're proud of
Despite being very modular, the project works perfectly as a whole! Our implementation is also very expandable: we have a base that we can build upon quite easily.
What's next for IoE: Internet of Emergencies
- Using a mobile data and GPS enabled microcontroller.
- Reducing the form factor of the wristband and tweaking the MAX30100 for use on the wrist.
- Give first aid instructions to the first responders depending on the patient's condition.
- If no first responders are available, contact 911 with an automated text-to-speech call with all of the patient's information.
- Add EMG sensors for convulsion detection.
- Integrate a machine learning algorithm to predict a state of emergency.