Make your kegerator smarter -- track pours and report to an external HTTP service.
Spiritual successor to the untappd kegerator, our goal is to build a basic flow meter system that reports results to an analytics engine.
It is an arduino project designed to run one or two flow meters. Our implementation uses a wifi shield with micro-SD for caching read data.
Finally, we use a networking library to connect to an HTTP service and transmit read data. Your implementation will vary at this point, because our backend is a custom PHP application.
We reimplemented this project on a Raspberry Pi. At first there was concern over the realibility of a non-real-time-interrupt, but our prototyping has gone well.
We implemented the system in Python and are validating the results.
We developed against a Raspberry Pi B+ running Raspian. We soldered an Adafruit Perma-Proto Pi HAT! together with a circuit that runs two tap flow meters and two temperature probes as our Arduino implementation.
(TODO: provide diagram)
We record tap pours and temperature readings to a CSV file on the filesystem and marshall the data up to a web service in a specific format.
The following libraries are required:
Library | Purpose |
---|---|
Requests | HTTP Requests (simplifies multi-part form submission code) |
TODO
We started with an Arduino, however ran into long-term stability issues. It's either memory management or something similar. If we reapproached it with Arduino again, we'd use a different Wi-Fi shield and some other tweaks...
We developed against an Arduino Uno.
We use the CC3000 WiFi shield to connect to our local Wifi network and write to a FAT16 formatted SD card.
We measure beer consumption with a plastic flow meter from Adafruit. A second flow meter will be coming soon.
We measure temperature in and outside of the kegerator with a couple of temperature probes.
We make use of the following libraries. Make sure to install them in your Arduino Libraries folder before trying to compile:
Library | Purpose |
---|---|
Adafruit CC3000 Library | Connect to Wifi network, send HTTP requests |
Fat16lib | Read and write to SD card with minimal memory requirements |
Time | Internal clock to generate time stamps for data points |
The default configuration is as follows:
Analog Pin | Connection |
---|---|
0 | External (Ambient) Temperature Probe |
1 | Internal (Kegerator) Temperature Probe |
2 through 5 | Unused |
Digital Pin | Connection |
---|---|
0 | Unused |
1 | Unused |
2 | LED Anode to light up when pouring |
3 | CC3000 - IRQ |
4 | CC3000 - CS for SD Card |
5 | CC3000 - VBAT_EN |
6 | Kegerator Flow Sensor #1 |
7 | Kegerator Flow Sensor #2 (coming soon) |
10 | CC3000 - SCK |
11 | CC3000 - CS for CC3000 |
12 | CC3000 - MISO |
13 | CC3000 - MOSI |
Libraries and Flow Sensor code are copyright their respective authors. Other code is licensed under the MIT License. Use it how you want and don't sue us.