For the last 5 years, IE’s invited customers to sample the latest technologies and some of the best local beer and food as part of our OktoberTekfest event. It’s a great opportunity to see the latest products and solutions offered by IE and our partners, to meet the IE staff and have some fun. As part of the planning team for IE, it falls on me to determine what Collaboration technology we’re going to present to give our customers a glimpse of the future and prepare their organizations for what’s to come. This is no easy task. There are so many technologies with so much potential. This year we thought we’d take a slightly different approach with one demo. We wanted to not only showcase our partner’s tech but also what creative things our technical team can do with them.
We thought about what technology could we show at a German Oktoberfest-inspired event. An event with a fully functional beer garden, lots of beer flowing, and the smell of brats, pretzels and other great food. Wouldn’t it be cool if we could combine two of our favorite things, technology AND beer? And then it hit us, we’ll build a KegBot!
What is a KegBot?
The perfect marriage of technology and beer, if we do say so ourselves. With an IoT device connected to a keg of beer, you simply open the Cisco Spark app on your smartphone, put your favorite IE OktoberTekfest beerstein under the tap and request the perfect pour! That’s right, this the the 21st century and we needed a solution to the first world problem of getting a great beer with the least amount of effort. After all, what good is all this technology and automation if we can’t put it use for something worthwhile? Well, thanks to the KegBot, gone are the days of spending months training your dog to open the fridge and bring you a can of your favorite frosty beverage. (You’re welcome.)
Building the KegBot
The first step of building the KegBot was figuring out if it could even be done. That turned out to be the easy part. A few years ago, a team of Cisco employees created a ShotBot. Same idea except it poured a shot of liquor. So now we knew it was possible.
Pouring beer is, however, very different than pouring liquor. Liquor doesn’t foam up like beer. We we tried to pump the beer like the ShotBot but all we’d get is a glass full of foam. (Which no one likes.) So, like any good technical team, we conveniened for a Saturday afternoon brainstorming session. We manually poured different beers at different speeds and carefully analyized and recorded varirables such as the angle of glass, speed and volume of the pour, and the amount of foam produced. Some of the better beers were tested several times, in the name of science of course. And finally it hit us! We could simply pressurize the beer like we did in college and just control the tap with our device, solving the pump problem.
Internet of Things (IoT) Device
The next step was deciding what IoT device we would use to control the motor. Most of that decision was made for us once we found the right IoT integrator to use as each integrator supports different IoT devices. We chose ThingSpeak because of the graphical nature of the interface and more importantly, the support they offered. Oh, did I fail to mention that I am not a programmer? I knew I’d need all the help I could get. Next, we researched the devices ThingSpeak supports and chose the Arduino Yun. Arduino Yun is a wireless-capable microcontroller with both USB and Ethernet connections. An advantage of the Arduino is that it includes a starter kit to help with the circuit layout. I was trained in electronics in the Navy but that was a whole other life ago, so a refresher course was warranted.
Interfacing Spark with the IoT Controller
At this point, we had our tap, our device, and a means of controlling the device. The last hurtle was a way to get the request from Spark into ThingSpeak. I know many of you have seen or heard of some of the great integrations out there for Spark. The one I like the most is from Built.io. As I said before, I am not a programmer and Built.io offers a graphical interface with very little actual programming required. I could easily drag and drop different steps into the interface to create my integration between Spark and ThingSpeak.
Before I could create the Built.io flow, however, I needed to create a Spark Bot to listen for requests and send them to Built.io. Cisco has made it very easy for anyone with a Spark account to create a Spark Bot by creating a website called Cisco Spark for Developers. You simply create your Bot by giving it a name and a Spark ID. Once created, you add the Bot to a Spark Space and have Built.io (or other integrator) listen for the Bot to send information. Users address messages to the Bot just like they would any other user in the space.
(For you non-technical readers don’t worry, I’m not going to go into the gory details of setting everything up. For my fellow geeks out there, if you want the “dets” just send me a message in Spark using my email address.)
So, several weeks later…
I have all the “programming” complete, I think, and it’s time for our first dry run. (That means no beer, boo.) The first thing I noticed in the dry run was that we had no way to identify who the beer was for. I’m confident the KegBot is going to be THE hit demo of TekFest so the line will be long. It wouldn’t be good customer service if customer A is receiving the beer ordered by customer B, right? We needed some way to identify each customer’s order.
I dug around in the Arduino starter kit and found an LCD display which I thought could work. A few days later, after figuring out how the LCD works, getting it attached to the microcontroller and “programming” it, I have a way to identify each Tekfest attendee to the beer they’ve ordered. To my surprise it was pretty simple. (Who would have thought?)
All full of myself and as proud as a first time father, I showed the KegBot off to my friend, who did all the wood work by the way, and he quickly brought me back to earth. (As any good friend does.) He pointed out that since this is automatic, pouring beer is only half the problem. Not pouring it all over the floor, is the other half.
Dejected but not without hope, I went back to the IoT starter kit. (I’m vehemitely opposed to wasting beer after all.) After rummaging around the box, I found an Infrared sensor. Again, I was pretty certain what I’d found would work. After some trial and error, I determined how the sensor worked, programmed it, and added it to the microcontroller. Voila! We had a way to detect a cup under the tap. Now, the KegBot was smart enough to not pour beer when no one was ready to drink it!
We have a few more weeks until our OktoberTekfest event, which gives us a few more weeks to continue to develop the KegBot, refine it, and put it through some rigorous testing, in the name of science, of course. So stay tuned for my next blog in the KegBot series. Of course you’ll have to come to Tekfest to see it in action, so don’t miss out!
Prost!
About the Author:
Marty Jefferson has worked in IT for over 30 years, with extensive experience in project engineering, management, collaboration technologies, voice solutions and computer networking. He began his career in the military, and after being honorably discharged as an FTG2 Second Class Petty Officer, moved into the private sector where he now works as a Director of Collaboration and Voice Solutions for Internetwork Engineering.