BrewBot - Sending Coffee Notifications to Slack
September 16, 2017
At work, we have a coffee machine that serves dozens of people in the building, and it’s difficult to know when to come get fresh coffee. You might arrive when it’s empty and be tasked with making more, but the ideal situation is to arrive just as a fresh pot is being brewed.
We also use Slack for team chat and various notifications, so integrating the coffee machine status was a no-brainer. Using a non-invasive/inductive current sensor and Raspberry Pi, the following setup monitors coffee machine energy consumption and waits for a significant rise in current draw, followed by several minutes of sustained usage. Once a time threshold has passed, it does an HTTP POST to a Slack webhook, sleeps for about 15 minutes, then starts monitoring again. This “brewbot” code is available on GitHub, and a parts list can be found below.
Full parts list:
- MCP3008 8-Channel 10-Bit Analog to Digital Converter
- Raspberry Pi model B
- 16-pin IC socket
- Assortment of heat shrink tubing
- Panel mount to Micro USB adapter
- 10KΩ 1/4W LED resistor
- Half-size Perma-Proto Raspberry Pi Breadboard PCB Kit
- 5mm Yellow LED
- 1/8” panel mount audio jack
- 10uF electrolytic decoupling capacitor
- 33Ω 1/2W burden resistor
- 2x 470KΩ 1/2W voltage divider resistors
- 30A non-invasive current sensor
- 22 AWG Solid Core Hook Up Wire
- 5x7 photo box, from The Container Store
- 8 GB Class 10 SDHC card
- Edimax EW-7811Un Wireless Nano USB Adapter
- 6x Nylon screws washers and nuts
- 8” AC Cord Clips
- HDMI to Mini HDMI adapter
- 6’ Mini HDMI to HDMI Cable
- 10’ USB A Male to B Male Cable
Related reading: Hyper Text Coffee Pot Control Protocol