I have recently retrofitted the controls of my old rusty brew rig that I put together back in 2002. I am now using a Raspberry Pi to control my propane BIAB rig. The gpio on the rpi is used to monitor the temperature via a DS18B20 probe and control the burner output via a servo motor attached to the propane regulator valve. The main program is written in python and uses WebPy to serve up the html5 interface. I designed the interface to be optimized for my phone and tablet. It works on my laptop too, but it doesn't auto scale for different screen sizes. At this time, the program controls the temperature during the mash including provisions for multi step mashes, as well as timers for both the mash and boil. I also added some logic to assist chilling including temperature and timer setpoints for hop stands. All temperature and timer setpoints can be configured using the html interface. My rpi program was written around my specific hardware and is not that flexible with other hardware configurations. However, I tried to write the code in a modular manner, so it can probably be tweaked to work with other configurations with a bit of work.
I am by no means a programming expert. In fact, this has been my first time programming with python, html, and javascript. As a result, I have employed the use of some dirty hackery (especially in the javascript), and borrowed heavily from all over the web. Here are some of the main sources that I used throughout my programming:
Python Code Structure - steve71's RasPiBrew python code was used extensively for the early development.
https://github.com/steve71/RasPiBrew
Servo Motor Control - richardghirst's servo blaster software is used to operate the servo motor.
https://github.com/richardghirst/PiBits/tree/master/ServoBlaster
16x2 LCD - Adafruit's python LCD code is used to update the lcd using gpio.
https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/tree/master/Adafruit_CharLCD
DS18B20 Temperature Sensor - Adafruit's python DS18B20 code is used to monitor the temperature sensor.
http://learn.adafruit.com/adafruits-raspberry-pi-lesson-11-ds18b20-temperature-sensing/overview
HTML5 Widgets - The JMWidgets library was used extensively to develop the html interface.
http://www.jmwidgets.com/
All of my source code can be found here:
https://github.com/tob77/BrewNpi
I am by no means a programming expert. In fact, this has been my first time programming with python, html, and javascript. As a result, I have employed the use of some dirty hackery (especially in the javascript), and borrowed heavily from all over the web. Here are some of the main sources that I used throughout my programming:
Python Code Structure - steve71's RasPiBrew python code was used extensively for the early development.
https://github.com/steve71/RasPiBrew
Servo Motor Control - richardghirst's servo blaster software is used to operate the servo motor.
https://github.com/richardghirst/PiBits/tree/master/ServoBlaster
16x2 LCD - Adafruit's python LCD code is used to update the lcd using gpio.
https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/tree/master/Adafruit_CharLCD
DS18B20 Temperature Sensor - Adafruit's python DS18B20 code is used to monitor the temperature sensor.
http://learn.adafruit.com/adafruits-raspberry-pi-lesson-11-ds18b20-temperature-sensing/overview
HTML5 Widgets - The JMWidgets library was used extensively to develop the html interface.
http://www.jmwidgets.com/
All of my source code can be found here:
https://github.com/tob77/BrewNpi