My build log starts with a short story, so grab a drink and nestle back in your chair a moment…
In the beginning
You see before I joined balena I wasn’t enjoying my work life at all, I was surviving it. Then, one day I went to use etcher and noticed it needed updating. The site showed me that “the etcher people” did other things besides Etcher. Two hours of reading documentation and blog posts later I was clicking the link to apply for a job!
My second interview was due to be a technical chat with @chrisys and I received an email telling me what to expect. That email had a paragraph at the bottom, telling me that I should be prepared to talk about a project I was proud of, which I later found out came from a template, and Chris didn’t know was there. Too late, I had mentally left my current job, set my heart on joining balena, and the email said I needed a project I was proud about.
…
I didn’t have a project I was proud of.
A project was born
The interview was in ten days. So all I had to do was think of an idea, make the idea, write up the idea and rock up at the interview with Chris ready to show him it.
Somewhere in the back of my mind I remembered reading something about museums using Bluetooth low energy (BLE) tags dotted about it’s building sending out advertisement beacons, and an app using them to triangulate it’s indoor position. The app could then show information about the exhibit the user was nearest. However, because museums tend to be large and have lots of flat surfaces (e.g. walls, display cases) the beacon signals would bounce around a lot, and confuse the app. So they had to use machine learning to improve it’s accuracy. And I remember, when I read that, wondering if you could turn the whole design on it’s head: have a BLE beacon attached to something (e.g. a parcel) sending out beacons, and use receivers dotted about a building. Could you then use machine learning to work out the position of the BLE tag?
I had ten days to work out if three raspberry pi’s dotted around my one house could triangulate the position of a BLE tag. So this happened:
The results
“How did it go Phil?” I hear all three readers cry. Well it went well enough that Chris recommended I get the job!
Little did he know, it failed to actually work until the night before my interview.
Here’s the repo: phil-d-wilson/balenaLocating-ML: PoC to show indoor BLE triangulation using RaspberryPi sensors, IOT Hub and a KNN classifier model (github.com)
The new project
However, that was 2019 Phil that made that. 2019 Phil really liked putting code into “the cloud”. And 2019 Phil didn’t mind using expensive cloud services just to stream a few BLE beacon messages past some code and work out where a beacon might be in his house. The beacon he was holding. :\
2021 Phil doesn’t want to use cloud services. 2021 Phil wants to remake this project, but do all of the processing on the edge. And he also wants to improve it. He wants heatmaps. He wants X, Y and Z locating (i.e. upstairs!). And he wants alerting when movement anomalies happen.
Buckle up dear readers, we’re going on a (build) journey together.