Inspiration

Keeping with the Valentine's theme, how adorable would it be to be able to feel someone's heartbeat from far away?

What it does

Heartbeat uses your phone's camera to detect your heartbeat, and broadcasts the pulse to other phones using the app via vibration.

How we built it

Android, with Firebase on the backend

Challenges we ran into

Getting accurate readings for the heartbeat was a big challenge, but we iterated the algorithm multiple times until we ended up with the current solution (comparison of moving average using the red channel of the image).

Graphing the heartbeat was also difficult, mostly because we had a hard time getting the library to properly display and update the graph in realtime.

Dealing with hardware variation between devices for image polling and processing. One potential solution was to use multithreading, which was designed and implemented but has not been optimally integrated into this build.

Accomplishments that we're proud of

  • Heartbeat detection
  • NFC Support
  • Real-time broadcasting (s/o to Firebase)

What we learned

  • Server interfacing - from pulling and pushing "heartbeat" events.
  • Working with the Android Camera API.
  • Integrating NFC support to transfer information between devices.

What's next for Heartbeat

  • Optimisation
  • Multithreading
  • Refactoring
  • Provide consistent accuracy from heartbeat detection algorithm across devices with hardware differences.
  • Improved graph
  • Improved channel searching and creation interface to support larger numbers of users.

Built With

Share this project:

Updates