Software System (source code)
The Brewnode software needs to:
- Provide low level control of the hardware.
- Provide high level control of the brew process.
- Allow remote control and monitoring of the system.
- Be fully autonomous.
- Manage a database of recipes and brews.
- Record data from all sensors.
- Simple server creation
- Natural interface to Web Clients
- Raspberry Pi drivers available on NPM
- Simple Sockets implementation allows data to be pushed from server to client.
Each of the transducers have an associated driver that sends or receives data.
- Motorized Valves
- Monitor status.
- Switch On & Off.
- Temperature Sensors
- Read temperature
- Flow Sensors
- Sample data.
- Calculate flow rate.
- Weigh Scales
- Sample ADC
- Convert to weight.
- Temperature compensation.
- Heating Element
- Switch On & Off
- Modulate power.
- Extractor Fan
- Switch On & Off
The Brew Process
Built on top of the drivers are the routines necessary to make beer. Brewnode needs to extract recipes from an remote database and perform a series of steps involving the following actions:
- Fill kettle with desired quantity.
- Preheat kettle to strike temp.
- Transfer kettle contents to Mash Tun
- Continuous transfer between Mash Tun and Kettle.
- Maintain a predefined temperature profile over time.
- Transfer Mash Tun contents to Kettle
- Boil the kettle contents
- Transfer Kettle contents to fermenter via chiller.
- Monitor the alcohol content during fermentation.
- This is done by knowing the volume of wort transferred to the fermeneter along with its weight.
- OG = OriginalMass / Volume
- FG = FinalMass / Volume
- ABV = ((76.08*(OG-FG)/(1.775-OG))*(FG/0.794))
Recipes shall be selected from a database for brewing. During the brew process data from all sensors shall be recorded. This data shall be stored in a remote database. A web app shall present this data for user perusal and analysis.
This will be a simple control panel used to only monitor the current process. Basically a graphical interface displaying data from all sensors. This will be publicly available on this website for the world to see and join in the fun.
The controller shall allow semi-automatic control of the entire process. This means providing a graphical interface to allow control of all inputs to the system. This provides a remote mechanism