Skip to content

IoTKeg

Inspired by AWS Simple Beer Service, but utilizes AWS IoT with MQTT, AWS GreenGrass Core, AWS Timestream, and AWS CloudWatch.

Please note that this is a work-in-progress and I am continually adding to it until I believe what I have is polished enough.

Part I

If you have ever attended AWS Re:Invent you probably have seen Simple Beer Service at the builders fair. It so happens that my Fianc├ęs father bestowed an old-school keggerator onto her when she moved into her house... now that I've taken up residence with her I decided to resuscitate it after 8+ years of not being used.

I decided not to use the pre-canned Simple Beer Service for a few reasons.

  • Architecture is kind of old (according to the team that made it they plan on releasing a new version soon)
  • Wanted to create as much from scratch myself as I could.
  • Wanted to use my Arduino's for something fun.

There is nothing wrong with using the Simple Beer Service, I just wanted to do it the hardway.

Components

I knew I wanted to gather temperature, moisture, and remaining keg contents. For the temperature I decided that I should probably measure both the Keg refrigerator, as well as the Keg tower incase the temperatures vary. I had a few plant moisture sensors laying around so I repurposed them for this use; these probably aren't ideal but I really wanted to only know if I had a leak in the kegs line, that way beer wouldn't be flooding my basement without me knowing.

As per calculating the contents, this proved to be a little more difficult. Initially I wanted to use a flow sensor. However I found that the accuracy of the cheap flow sensors found online are not very great. Additionally it seems that the flow sensor disrupts the flow of beer creating too much foam. I needed an alternative, so I figured weight is the easiest thing to calculate. This part is still underway, currently waiting to 3D print some parts for that, so volume calculation will be in the Part II update!

Lastly I also wanted to visualize the temperatures if I wasn't near a monitor/computer. So I used a simple 16x2 LCD screen for that. I picked up the following and began to work.

Back to top