Week 1: Heartbeater

Heartbeater was a pretty straightforward idea: Make a small IoT based notifier to tell you what someone else’s heartbeat is. It was a way to get reacquainted with some IoT services, and experiment with mapping data. However, there ended up being a lot of troubleshooting. I didn’t get a chance to start on an enclosure, but did get to a proof of tech stage.

System: In the end I made a basic BLE based heartbeat reader out of a feather that someone could carry with them, and a wifi notifier on the other end that could remain stationary in someone’s home. I had considered making them both ble, but ran into some issues.

Things I Experimented With: Lightbluebeans, Xcode, Particle Dev, Adafruit ble library.

Components: Bluefruit Feather 32u4, Particle Photon, 1 vibrating haptic motor, 1 neopixel ring, 1 jst connector, 220ohm resistor, 1 NPN based transistor, 1 diode, 2 lipo batteries, 1 pulse sensor.


Things I learned: IoT tools are very inconsistent. I’ve used Adafruit I/O before, and I like it for simple things. In this case, I had originally thought of making both devices strictly wifi, but then thought “no the pulse sensor should be a carry item” and switched to a BLE > Phone setup. The beans, while great to use, don’t have an out of the can phone > BaaS provider, so I first tried rolling my own iOS app (its been a while), but fell into an Apple update spiral (it wanted me to update everything). Bluefruit Connect LE ended up being what I used to get the UART data to I/O, but its not consistent across devices (ie: MQTT service wasn’t in the ipad app). So I switch the notifier back to just wifi. I experimented putting things on a Feather protoboard, but had some issues w/ pins. So i flipped back to the photon. This project probably could have gone smoother if I had plotted out my system a bit better.

Future Versions: I think I would try again to roll my own iOS app and using two smaller beans on either end chatting through two phones, this would make them very portable. I might also consider a GMS breakout, which might be nicer.

Of Note: ble feathers do not have the 1v analog pin issue that the huzzah does. Bean currently has system issues in OSX with the virtual serial port, but a nice new command line tool. The particle command line tool is still my favourite. I find serial printing on the feather boards a bit of a pain sometimes. Pulse sensors are very inaccurate. The Huzzah issue I had had previously w/ the I/O library colliding with the Neopatterns Class seems to have been fixed by Adafruit.