Fires. Floods. Famine. A whole lot of F. We live in uncertain times. But one thing is certain: you've gotta start the day (or at least end it) with a good breakfast. So when you open the cupboard and find yourself facing the same set of uninspiring, unsatisfying, unsweetened cereals — or worse, none at all — it's time to ask yourself, “HOW DID I LET THIS HAPPEN?!”
You are not alone. Every day, dozens of people the world over encounter this dreadful disappointment. And of those dozens, a small subset reflects upon this further and at least THREE of them definitely wish it didn't have to be this way. Well, it doesn't.
Cerealometer is a realtime breakfast cereal monitoring solution designed to ensure uninterrupted delivery of your essential daily vitamins, minerals, yellow moons, green clovers, and so on. Inspired by my cereal-crazy nephews, Cerealometer combines IoT technology and kitchen cabinetry to produce, well, a fun, strange combination of IoT technology and kitchen cabinetry.
Screenshots from the app, which makes use of Google Firebase, Mobile Vision API, and more.
The Cerealometer app...
- Scans your cereal, grocery checkout-style. It even makes the "be-BOOP"!
- Tracks remaining quantity and other important cereal metrics.
- Sends alerts when quantity or variety become dangerously low.
- Manages users and item inventory via the cloud (☁️).
By now you must be asking, HOW DOES IT KNOW how much cereal I have left?
The app communicates with a DIY IoT device I like to call the Shelf, for reasons that will become obvious once you see that... it's a shelf. At the heart of the circuitry is a nicely-groomed nest of breadboard wires. Oh, and also the SparkFun ESP8266 Thing Dev Board. Load cells inside the Shelf track the net weight of each cereal box*, and the WiFi-connected microcontroller uploads this vital data to the cloud. Also, a dazzling LED display communicates status for each, uh, cereal port.
*Accurate to within about five grahams
In addition to addressing a problem of great social and political import, Cerealometer is a learning project I created to expand my knowledge in a handful of technical areas. Basically, my current dev bucketlist:
- IoT and the mighty ESP8266 microcontroller
- Embedded firmware using ESP8266 Arduino Core
- React Native and Infinite Red's Ignite Bowser boilerplate
- MobX State Tree
- Hooks
- TypeScript
- ECMAScript 6, arrow functions, promises... oh my!
- Google Firebase and Cloud Functions
- NoSQL database approach (Firebase Realtime Database in this case)
I share it as an evolving example of a full stack, serverless IoT system which I hope will inspire your own project.
This project is licensed under the MIT License - see the LICENSE file for details.
Eric Schwartz is a self-described cereal entrepreneur who enjoys cereal, entrepreneuring, and describing himself in the third person. Write to him at eric@cerealometer.com for more details.