
Azavea has a clearly defined symbiosis with coffee. We have a designated Minister of Coffee, a world-class coffee grinder, and we get selections of coffee from around the world; some of it hand-delivered, and some of it hand-crafted. However, one of the problems opportunities that I observed with our coffee system was that as coffee was brewed and consumed in the office (about 6 brews a day), unlucky staffers would frequently pick up the (opaque) coffee pot to find it empty. I don’t personally drink coffee, so I was unaware of how much anticipation one feels when approaching the pot and the extreme let down experienced upon encountering an empty pot.
I slowly set to work in my free time to solve this conundrum. To me, it seemed like an individual would want to know if there was coffee in the pot before approaching the coffee maker (whom some of us address reverently as Zojirushi-san). This could be 1) a web page, 2) a desktop app, or 3) an IRC (not IIRC) bot. I drew up some schematics, took some measurements, and retreated to my home lab to build an Arduino based, web-enabled measurement system tailored for the coffee pot. I used an Arduino Diecimila, an Ethernet Shield, a couple piezoelectric sensors, a 3 color LED, a couple of buttons, and an awesome hand-crafted wooden base (thanks to Chip, our resident guitar maker).
A short while later, I had a working prototype ready for testing. The device now sits in Azavea’s kitchen, constantly measuring the weight of the coffee maker, and reporting the measurements to pachube. After doing some internal evaluation, the name ‘Caféduino’ stuck, and I developed a couple methods of viewing the coffee pot status.
1. Direct Web Access
Using this method, it’s possible to directly address the Caféduino. This gives the coffee addict aficionado direct access to the measurement values, but is more useful for other applications that are polling the data frequently.
2. Caféduino Notification

Using this second method, the Caféduino is polled continuously, and the tiny coffee mug in the system tray is updated as the coffee level changes. This is the most aggressive method of monitoring the Caféduino which, mysteriously, is the most comforting for users.
When the coffee mug is clicked, the history of the Caféduino is charted in the window. What you are seeing is a Google visualization applet that is consuming the historical data, stored on http://www.pachube.com/.
3. IRC Bot Integration

Lastly, the most interactive method of polling the Caféduino is through our internal IRC channel. The above screenshot is the conversation that I initiated with the IRC bot, and its response. It has reassured me that there is indeed, 77.78% of a pot of coffee left.
Now our staff can check in on the coffee pot, to insure that their next visit to the kitchen will be without disappointment. While this system works well for monitoring the coffee level, the next steps may be more involved – building a machine to automatically brew coffee.










