Inspiration
Our project, Granny Life Alert, is inspired by the iconic 90s "I've fallen, and I can't get up!" commercial. The initial motivation behind the idea came from the challenges faced by elderly individuals who live alone and handle most daily tasks independently. However, whether you're old or young, skateboarding or climbing the stairs, we all fall sometimes, and our device is designed to detect when a user has fallen and immediately send an emergency alert.
What it does
The Granny Life Alert is a device that notifies emergency contacts via WhatsApp and email, ensuring that help can arrive as quickly as possible. Users of the device can sign up and register emergency contacts with their method of contact via the companion web app.
How we built it
We incorporated a microcontroller with WiFi capabilities to send imu data from the device to a webserver hosted on another device. We used I2C to interface with the IMU and HTTP requests to ping our Express web server from the microcontroller. The front end utilizes React to build the web app interface, and the backend webserver utilizes Node and Express to service alert requests from ESP32 and interface with the WhatsApp API to send sms and Gmail to send emails. Our database of choice for storing account information was MongoDB.
Challenges we ran into
When assembling the hardware, there were issues with configuring the correct libraries, wiring layout, and calibration. Although the wiring and layout is very simple, there were multiple ways to set the SCL and SDA pins so it was a series of trial and error to find the correct pins which correspond to those serial ports on our microcontroller. There were also several libraries associated with the MPU6050, our sensor which was to measure the XYZ acceleration and angular velocity. Multiple iterations of the same base fall detection program was made to see which combination of libraries enabled the sensor readings to be received. Calibration was necessary to ensure that the program can detect fall while not interpreting basic movement as falls. Optimizing calibration took the most amount of time; so much so that we changed the algorithm for fall detection from jerk magnitude calculation to a triple check on the change in degrees of orientation alongside acceleration amplitude. However overall since the aim of the project was to provide a wireless end to end experience our biggest challenge was in integrating the flow of communication between the ESP32 and our web app. It required us to reconsider our API, and database structure to facilitate simple communication between the two services.
Accomplishments that we're proud of
The highlight of our project was when we were able to pull together the individual components to get the life alert device to detect a fall and send a WhatsApp message and email to our phones. At this point we felt like we had truly made an IoT project that utilized the full stack from an embedded system to a web application.
What we learned
We learned a lot about the specifics of the hardware and libraries used for the ESP32. But as we went through the project we learned a lot about http servers and how to design IoT and cloud service applications. It gave us an opportunity to put into practice some of the concepts we have learned in classes about communication protocols, in embedded systems and on the web.
What's next for Granny_life_alert
Our initial aim was to make a completely accessible and easy to setup device. To do this, we would like to integrate the project into the cloud using a cloud service like MongoDB Atlas and Firebase to store user accounts and run our server, so that users can utilize the device and send alerts from any WiFi network. Additionally, we believe that adding device pairing on to the web app and designing a PCB and casing to make the device more compact would be good quality of life fixes to improve the user experience when using the device and setting it up.
Log in or sign up for Devpost to join the conversation.