Wednesday, September 10, 2014

Pourcast: Rightpoint’s Free Beer-monitoring App

Stephen Gilboy

FREE BEER!*

*If you are an employee of Rightpoint

If you’re not an employee of Rightpoint you can still get our free, as in free beer, keg monitoring application, Pourcast. With the kegs in our office open from 4:00pm – ? it is very difficult to keep track of how much beer is left in the kegs so Rightpoint Labs, our internal “maker-space” club, set out to solve that problem. Utilizing familiar and not-so familiar technologies we developed a really great web application that makes keeping track of the beer pretty darn easy. We’ve also made it open-source so feel free to fork it and contribute to it because there are plenty more features that can and should be added.

GETTING STARTED

Flow or Scale

Before we even started thinking about the code we had to decide on how we would measure the amount of beer in the kegs. We came up with two options to solve that problem, one of which was placing the kegs on a scale and use their weight to determine the beer. Easy right? Well the cost of a scale that will fit in a mini-fridge is way too expensive. So we had to go with our second choice which was using flow sensors in the lines from the keg to the tap to measure how much beer is moving through them. It is not as accurate as using a scale and you’re pretty much shooting blind if you attach an already tapped keg but it is the more affordable option. We went with the Swiss Flow SF800 Flow Meter which works well. It is a bit foamy on the first pour of the day but it gets better with more use, which isn’t such a bad thing am I right?  

Hardware

The hardware controller was an easy choice as the Netduino would allow us to write C# instead of C (Arduino) or Python (raspberryPi). We had purchased the Netduio2 because we had no Ethernet outlets near the kegs and figured we’d just add a Wi-Fi shield and be on our way, boy were we wrong. We could not get the Wi-Fi shield to attach to the network so we took the easy way out and picked up a Netduino plus 2 and ran CAT-5 to the Netduino’s final location. We’re still running into some issues with it but we’ll discuss that later. Moving on…

Application

As much as I would have loved to write this application in Node.JS, using my current favorite framework Sails.JS, we decided on ASP.NET MVC 4.5 / 5. Sean Sartell hooked us up with the hexagonal architecture and I was able to convince the group to use MongoDB as our database. Honestly, it was not so much convincing and more them taking pity on me. We were also able to incorporate the use of web sockets into the application as well. It is designed as a SPA, single page web application, so we also implemented Require.JS to make dealing with all that JavaScript a bit nicer.

Put it All Together

Keg I/O

I was not around for the installation of the flow sensors but I assume its pretty straight forward. Cut some keg line, install and voila. So lets talk about the Netduino, which I also didn’t deal with a whole lot. You’ll find the code for the Netduino under the “Repourter” namespace. Basically the connectors from the flow sensors are attached to a breadboard and from there head to the Netduino. When the tap is open and the sensors are sending signals to the Netduino it sends a message to the web app via HTTP letting it know a pour has started and on which tap. Once the pour is finished it sends a message that a pour has stopped on the tap along with the amount of beer that was poured. The issue we are having, as I had mentioned earlier, is that on occasion, not sure why, the Netduino doesn’t know the tap is closed and so never sends the pour stopped message. Something to look into.

WP_20140828_12_13_21_Pro

Not so nice photo of the the Netduino

Final Site

Now we’re finally at the website. The design was created in house by Maria Russell and it looks awesome. Our intent for future versions is to make the kegs a lot more animated. For now though they do smile all the time but then frown when the level of the keg is at 20%. Also, since we are using SignalR, whenever someone is pouring a beer you can tell in real time because there will be a lot more bubble action going on in the background. There isn’t much more to go on about on the web application side, unless you want to get into events and architecture but I’m assuming you don’t. You can check it out in action at http://pourcast.labs.rightpoint.com/

Roll Your Own

I’m sure from this one blog post you now have all the knowledge necessary install your own keg monitoring system, right? Well probably not but with the help of Rightpoint Labs’ Pourcast at least you’ll have a pretty sweet UI for it. If you do use it please let us know, take some photos, we’d like to see it in action outside our offices. And please fork the code, make it better and send us a pull request. A quick shout out to the Rightpoint people who helped out: Maria Russell, Sean Sartell, Jonathan Rupp, Chris Esposito, Greg Ostrowski, Colin DeClue, Mike McDermott, David Snuckel and Matt Schaub.

WP_20140827_11_54_58_Pro

Loading Next Article