Kegerator ownership is awesome, but it has its downsides. It’s hard to keep track of who drank what without cans or bottles to count. [Phil] was looking for a good solution to this problem when it came to sharing beer with his roommates and friends and has just completed the first iteration of his smart kegerator.
He has devised a system based on a Raspberry Pi. His software recognizes the face of the person pulling a beer and adds a charge to their tab based on the price of the keg and the volume of the pour. The system also keeps track of current and historic temperature and humidity values inside the kegerator, and everything is displayed on a Mimo 720S touch screen.
[Phil] has a flow meter on each keg to detect and monitor pouring. This triggers the Pi camera module to run the facial recognition. The walk-through found after the jump might be a bit confusing; at the time it was recorded, the unit was only capable of facial detection. [Phil] wrote the UI in QT and C++ and used Python scripts for the flow interrupts. His plans for future iterations include weight sensors underneath the kegs, liquid probe thermometers for more accurate beer temperature readings, a NoIR Pi camera module for low light conditions, and a really snazzy UI that you’ll see on his build page.
If you don’t have a Pi, here’s an Arduino-fied kegerator that reports temperature and controls beer cooling.
Could it be fooled by wearing a mask of your room mate?
I got an old Richard Nixon mask, wonder if it would allow me to pull a beer?
Yes, it would be very easy to fool. The facial recognition I run is as quick and cheap as possible to keep the framerate acceptable on the limited power of the pi, but I record frames from each pour, and since it’s just friends, I don’t anticipate rampant fraud :)
“…since it’s just friends, I don’t anticipate rampant fraud :)”
If your friends are anything like mine, you’d be recording a lot of Guy Fawkes, Ronald Reagan, the Grim Reaper, and Bozo the Clown. (c:
Still, that’s a cool project. (Get it? Beer? Cool project? (c;)
Haha luckily my friends have a very limited collection of masks, but I am sure I will see any that they have hidden away soon enough :)
Thanks! I got it! :)
Distract drunk roommate. Pour his beer into your glass.
Back in my day, everyone just put down the same amount of money until the keg was payed. Regardless of how much you had to drink, and noone dit care…
But interesting project, high points for skill :)
Thanks Peter! We’ve been using the rough $ split up until now, this was more a learning project for me. But now that I have a record of each pour, I’ll be able to show some really cool plots of drinking habits/patterns. This video is immediately after getting the system to work, many more revisions to come.
How does this device know if a beverage is consumed, and by whom? What if I ask someone else to get a drink for me?
Social norms would dictate that you fetch the second round, evening up the score for who consumed what.
Hi pcf11, right now the system lets you assign beers, so you could assign the second pour to whoever was going to drink it. This is version 1 and it’s certainly not perfect :)
I wanted to do exactly this ever since I built my kegerator, (except with RFID or a login in lieu of facial recognition.) Awesome!
Thanks! The source is there for you to tinker :)
I like the idea a lot and the implementation. Great job!
I am just wondering if it is possible to shift the whole thing on an android tablet + IOIO or similar I/O board. This will make it more compact and cost effective.
If you can get the Android tablet to do the facial recognition then I don’t think there’s a need for an IOIO. Instead, I’d go with connecting the flow meter via Bluetooth.
Thanks bogdan! I really wanted to make use of the raspberry pi, so that was my intended hardware from the start, mainly due to low power consumption and a full linux stack. A tablet would certainly work and I did entertain that idea after struggling to get the touchscreen working, but all-in-all I’m happy with the hardware, and I’ll only improve on it from here.
neat, though you can get the same flow sensors for cheaper on ebay.
http://www.ebay.ca/itm/Water-flow-sensor-flowmeter-Hall-flow-sensor-Water-control-1-30L-min-2-0MPa-/200910300858?pt=LH_DefaultDomain_0&hash=item2ec72fe6ba
Good find XOIIO!
And neither are NSF / FDA / UL, so who the hell knows what you’ll get in your beer! Maybe some lubricant, maybe worse!
If you can’t bring enough to share – don’t bring any at all.
Geeeeesh, cheap ass kids today.
It was more of a learning project for me, as beers are still currently free even through they’re being logged. But I hear you. I’ll get off your lawn… :)
Flow sensor = egregiously foamy beer. Avoid!
Hi Oc! I’m not sure what flow meters you’ve used in the past but I can confirm I get no more foam with the flow meters installed compared to without. If they did cause foam I would have find another solution, luckily enough they don’t here. Maybe you had your CO2 pressure too high?
Thanks for running this Hack A Day! Sorry for the confusion with the facial recognition. The recognition code is in, and working, I just had it disabled for this video (I rushed it) and for some reason phrased it as being done soon instead of just being disabled. I’ll be posting updates as I work on them so expect to see it working soon!
Thanks again!
I’d say graph consumption for bragging rights, it certainly beats throwing the cans in the back of the truck as proof! (Rednecks throw their cans on the side of the road, Good Ol’ Boys throw em in the back so everyone can see how much they drank)
These flow meters should be placed flat against the ground, so turbine inside rotates around the vertical axis. I’ve been messing with such flow meter and i’ve found it to be more accurate when placed like that…
Thanks Harvie! I have found the flowmeters to be pretty consistent, but I will see if that orientation improves it at all. Thanks for the tip!
Thank you for this great post! My buddy is building a small brewery in his basement and I think this post will be interesting for him!
For big parties, I would use RFID cards. You can have a bunch of them from China.
I personally like the idea of a “digital keg cup” for parties where you buy a card allowing a certain number of pours before “expiring.” Although you’d need to install valves into the beer lines as well, it would be pretty simple to achieve.
I’ve built something similar with the Adafruit flowmeters which was used only for Oktoberfest parties. It was Arduino-based and used RFID chips. The flowmeters don’t seem to be food safe, so I didn’t like the idea of long-term exposure. Have you found any issues with using these full time? Off-tastes/odors, toxic poisoning symptoms, cravings for human brains, etc?
Hi mattg, I’ve only had the system running for a couple of weeks, and my cravings for human brains is no higher than normal, so I haven’t noticed any ill effects. Before I ever ran beer through the meters I ran 10s of gallons of water, so they should’ve been rinsed, but in terms of leaching I’m not sure. I will probably move to the Swiss flows for better accuracy and certified food safe in the near future, but for now these are working great.
Looks like a feeble copy of kegbot (http://kegbot.org) which I’ve been using for years. they have an android app too.
Hi beerit, thanks for your helpful comment. The Kegbot is built on an entirely different platform than mine. You may think the raspberry pi and an android tablet + USB hardware are the same, but they are considerably different in terms of development. I wanted to use my raspberry pi, so that meant creating it from scratch (more fun!) My system also uses facial recognition instead of nfc/rfid tags, and does not publish the pours online. The two projects’ goals are considerably different and built for entirely different platforms so I decided to share my particular solution in hopes of helping others with similar goals.