GithubHelp home page GithubHelp logo

pndlm / keg_scribe Goto Github PK

View Code? Open in Web Editor NEW
3.0 5.0 0.0 440 KB

Make your kegerator smarter -- track pours and report to an external HTTP service.

License: MIT License

Arduino 79.04% Python 20.96%

keg_scribe's Introduction

Keg Scribe

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.

Raspberry Pi

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.

Hardware


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.

Dependencies


The following libraries are required:

Library Purpose
Requests HTTP Requests (simplifies multi-part form submission code)

Pinouts


TODO

Arduino

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...

Hardware


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.

Dependencies


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

Pinouts


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

Authors and License

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.

keg_scribe's People

Contributors

apelican avatar codecommander avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.