IoT Coffee Button
"How Did the Hipster Burn His Tongue? He drank his coffee before it was cool." - Anonymous
Mhmmm, I love the smell of a fresh coffee. But that does not make me special as researches show that most of the people love that specific scent. Coffee has a very complex scent with so far identified 800 compounds, many of those are powerfully tied to scent. Coffee is rich with heterocyclic compounds and humans tend to love these smells as they hit many scent receptors, which makes the smell of coffee pleasant experience for most of us.
We in Hotovo are no different as we love coffee. Not only for its smell or taste or for its caffeine which brings us the feeling of wakefulness, but also for its "socializing features". When I make an espresso or a brew I would like others to know about it and join me, so we can enjoy our coffee together, talk about our day, our kids, our current project or share weekend's experiences. We use HipChat in company as the communication channel, so we used to make an announcements there. 'I am having a coffee, anyone wants to join?', 'I just made a fresh brew, enjoy' or similar messages let us know that it is time for coffee break. But we are a technological company that loves to experiment with new technologies, so when we first heard about the Amazon's IoT Button, which can be programmed to automate some processes with the help of Amazon Web Services, we knew that this is the kind of a thing that could help us with our 'coffee party' announcements 🙂
We have two use cases for the button - first when a fresh brew is made and the second when people join up for a delicious espresso shots. AWS IoT Button gives us single click and double click events, which we have utilized for these use cases.
The configuration of the button is pretty simple and can be summarized by the following steps (full detailed step-by-step configuration tutorial of how to setup AWS IoT Button can be found here):
- After signing into AWS IoT Console we registered our 'thing' and created Device Certificate with Policy for our device.
- We then started our button in Wi-Fi access point mode, connected to the button's interface via browser and filled out all the information needed and uploaded our certificate and private key.
- HipChat admin provided us with Room notification token, so we can send the announcements.
- We created a new Lambda Function with the code that sends a 'coffee message' into our HipChat.
- Back in AWS IoT Console we created a rule for the device that triggers our Lambda Function.
That's it 🙂 After such configuration the button connects to our Wi-Fi and sends the event (single/double click) to AWS IoT service, which then triggers Lambda Function, which sends a notification based on the click count to desired HipChat room. And the result is either message saying that fresh brew coffee has been made or that someone wants to join up for the espresso party 🙂
Summary
Amazon's IoT Button gave us possibility to use it as a simplest assistant that performs repetitive simple tasks as making an announcement in our HipChat room, but can you imagine how many other potential use cases of this little magical piece of technology are waiting out there? ;) The button itself is easy to setup and even easier to use. The only drawback of the current version of the button is irreplaceable battery (actually officially irreplaceable, you can make it with some MacGyver skills 🙂, which means that each button has around 1000 clicks before the battery is depleted. But we will see what the next generations of the button will bring us, and it is possible that the battery will be either rechargeable or replaceable. But one way or another we are having much fun using the button and enjoying our coffee even more 🙂