Story
My gradmother love having nightwalks, yet her health condition is deteriorating at the age of 90. She once accidently fell in the field during a nightwalk. My family and I spent a night searching for her and eventually called the police to find her. My parents were worried about her and told her that she must have a companion in order to have a nightwalk.
During last weekend at LA Hacks, I shared this story with my friends in the same team. After brainstorming, we thought, why not build a wearable device that could detect the elderly wearer's health emergency and send alert to his or her family and friends? Here’s how Cura comes.
Research
During my research, I found that not only my grandma, but also a lot of the seniors out there, share the concerns of healthy emergency issues. The two major types of emergency are falling and arrhythmia (unusual heart rate), caused by deteriorating body and organs.
According to CDC, about 36 million falls are reported among older adults each year, resulting in 3 million emergency department treatments and more than 32, 000 deaths. And according to NHANES, 70% of older adults have hypertension, causing stroke, heart failure, and even sudden death.
Moreover, a research by BMC Emergency Medicine suggests that 60 minutes after a traumatic injury is the greatest chance of survival if given medical attention. This proves our idea can be life-saving to seniors by reporting their health emergency in time, so we start building it.
Health Emergency DetectionWe use Arduino Uno as our main board (since Nano R3 is somehow incompatible with higher versions of MacOS, we tried), along with MPU6050 accelerometer, pulse sensor, ESP-8266 12-e WiFi modulel, pushbutton, LED bulb, and 3.7V battery.
All the code and wire diagrams are at the bottom of this page. MPU6050 and pulse sensor requires soldering first.
Detect Fall
We use the accelerometer to detect fall, since fall is a "lower version" of free fall, which gives us a smaller gravitational acceleration than usual (G < 9.8 - falling threshold). Some projects use DPS310 to detect fall by measuring a decrease in the wearer's altitude, but we found that inaccurate (e.g. going downhills or staircases) and not as intuitive as gravitational acceleration.
We make the fall detection more accurate and avoids wrong alert by incorporating code from this project. The accelerometer must receives a lower G when falling, a reverse spike in G when hit the ground, and no change in G for a time period, suggesting the user has fallen and is lying still on the ground.
Detect arrhythmia
We use the pulse sensor to measure the wearer's heart rate. As research results suggest, a heart rate higher than 200 or lower than 27 beats per minute (BPM) is life threatening. Taking into account that the wearer may be exercising or sleeping, a heart rate at this danger range is abnormal regardless of the wearer's state of movement.
Emergency button
Since emergency casued by stroke and heart attack may not have a obvious change in heart rate, we add a emergency button that allows the wearer to send alert directly when feeling uncomfortable.
When emergency is triggered by either of the three above, the emergency LED blub turns on. The light signals potential people around the wearers is in emergency, not to confuse with the belief that the wearer is sleeping or just laying down.
Send SMS alert with locationOnce an emergency is triggered, Arduino Uno outputs a HIGH pin to ESP8266, which then sends a SMS to the wearer's emergency contact with the wearer's location.
TwilioSMSAPI
Twilio supports sending SMS via WiFi connection using ESP8266. We follow this doc to implement this feature.
UnwiredLabGeolocationAPI
Through research, we find WiFi positioning system (WPS) allows us to get the wearer's current location using information from the connected network. UnwiredLab provides a Geolocation API that utilizes WPS to return the location. Given the location in the SMS, the emergency contact can find the wearer before the wearer's sign of life worsens.
Demo- Use Arduino Nano R3 and ESP8266-01 to make the device size smaller
- Add a 3D printed shell to the hardware components
- Press the emergency button again to cancel the emergency and send another SMS
- Add health features like steps and exercise time measured by accelerometer
- Add a monitor or implement Blynk app to see health data, past emergency alerts, and edit emergency contacts
Hope this article helps you. Happy building!
Comments