Heart disease is the leading cause of death in the US, and has increased from 2016 to 2017. As more and more Americans are watching what they eat and exercising more, sometimes it is difficult to determine what is too much. That’s where Heart Alert comes in.
Heart Alert is a small portable device that reads in an individual’s pulse and alerts you and another person if your heart is working too hard or something more serious occurs. To use, the pulse sensor needs to be wrapped around your finger or wrist and that’s it! Heart Alert will read in the pulse of the user and begin to buzz if the user’s heartbeat is too high or too low. The user then has ten seconds to press a button that notifies Heart Alert that the user is fine. If this button is not pressed within this time frame then Heart Alert will send a text to a doctor or a loved one to inform them that something serious might have occurred with the user.
How We Built It
Hardware: To build Heart Alert we used an Arduino Mega, a pulse sensor, a wifi shield, a battery pack, a temperature sensor, two LEDs, four buttons, and a buzzer. Specifically the wifi shield allowed us to execute our texting function. Using it we are able to connect to Thingspeak to send a text through Twilio. The LEDs and buzzer are used for the user’s benefit. The yellow LED indicates that Heart Alert is on, while the red LED and buzzer indicate that something awry was detected with the user’s heartbeat. The buttons were all added for user input. The first button turns on and off Heart Alert. The second and third button are age ranges buttons that allow Heart Alert to determine what the maximum and minimum heart beat should be set, while the last button is the false alarm button that prevents Heart Alert from sending a text. A temperature sensor is also included to adjust the heart rate range, as your heart works harder when it is hotter. Finally, we included a battery pack so that Heart Alert could be portable. With the uploaded code, the battery pack allows the user to take Heart Alert anywhere.
Software: In our code we had to include three libraries: pulse sensor playground, wifi101 and SPI. Pulse sensor playground is a library that allows us to turn on and get readings from the pulse sensor. We used the getBPM function multiple times in order to check that the user that the user’s heart beat is in the valid range. The wifi101 and SPI libraries were used for our texting function. They allowed us to connect to wifi through the wifi shield so we could access thingspeak. In addition to the libraries, we programmed a lot of user input functions into Heart Alert. Through the serial monitor, the user is instructed about what buttons to press and when in order to verify that Heart Alert gets the best heart rate range for the user.
Our biggest challenge was working with the pulse sensor, as some of its functions were interfering with the wifi. When the pulse sensor worked, we could not get wifi to send a text through Twillio, and when the wifi worked, the pulse sensor would not read in any BPM values. As a result, we had to change our BPM code to an alternate version, which required additional programming and rewriting some of the logic in our code. The pulse sensor kept on breaking, so we had to solder the wires back together, but each time, the BPM readings became less and less accurate.
We had to switch to an Arduino Mega, as the the wifi and pulse sensor together were taking up too much memory. Additionally, we tried to add an LCD shield and keypad to enable user input once we had increased memory space. However, the keypad was unable to read in multiple digits consistently and the LCD shield interfered with the wifi as well. At the end, we had to abandon this idea.
One of our biggest accomplishments was getting wifi to work with the pulse sensor. As stated above the pulse sensor was interfering with our wifi connection. We had spent multiple days trying to remedy this and that included trying to rewire our circuits to include bluetooth and hours spent of debugging. Once we recognized we were using too much memory in the Arduino Uno, switched to the Mega, and reworked our code it was very rewarding to see a text being sent and that our product worked. We both felt that all our hours in the lab were worth it.
What We Learned
From this project we enhanced our programming skills and increased our familiarity with Arduino. Coming into the final project, we both were not particularly comfortable with using Arduino. The programming style and board in general was very new to us. But as we connected and added more parts to Heart Alert, we both feel as if we have become proficient in using Arduino. In addition, we also learned that product design and engineering in general has many ups and downs. This project took us in many circles. There were days where we felt like we were making a lot of progress and others where we ended in the state as which we started. It was a long process, but satisfying in the end.
Marketability and Moving Forward
Currently, many products like Heart Alert do not exist on the market for general use. Most pulse reading and notification products are either marketed towards doctors or are expensive. Heart Alert is a low cost item that anybody can use. To capitalize on its marketability and improve we would invest in a better pulse sensor that would give us more accurate and more consistent pulse readings. We would also try to make the device more compact and portable, as well as add a LCD shield with user inputs, so that it would be more accessible for the user.