Why did I make this?
My wife and I make cheese and yogurt at home. Both require multiple steps, a thermometer, and a bit of waiting. I had made a thermometer with an Adafruit Trinket Pro. It had an LCD, a button, and would beep when we reached specific temperatures to remind us when next steps were needed. We’d set it, forget it, wait for the beep, press the button, shut off the heat, stir, or add cultures, and ignore again til the next beeps. Very handy.
Then the LCD just stopped working. Instead of fixing it, I created this next iteration to take advantage of multiple Alexa devices we have throughout our home, new capabilities available via Alexa Skills Kit and AWS IoT, Lambda, DynamoDB, and more-capable Arduino software and hardware.
We now have flexible ways for Alexa to help us monitor and control what’s cooking in the kitchen, outside in our smoker/grill, and from any room and device in the house.
How does it work?
The Alexa skill handles the user interaction – ask it to make yogurt, and it fetches the matching recipe and sends the request to start that recipe on step 1 to the device, by way of a device shadow and MQTT, a communication protocol for the Internet of Things.
The device watches for changes to the shadow, and uses recipe data onboard to set the set point and show its status on the display.
The device takes temperature readings, updates the display and device shadow, and when a set point is reached, alerts the user. The Alexa skill can tell the user what the temperature is at any time, even if the device is asleep, by accessing the shadow data in the AWS cloud.
When the user hears or sees the alarm they can ask Alexa to go to the next step, and then Alexa will send the desired state (same recipe, step 2) to the shadow, and the device will switch to that state using the recipe data it has on flash memory.
There’s a bit more to it, which I’ll go over after we get the project built