Distributed Brew Controller
History and Problem Statement
I have built a custom electric home brew set and have been using it in various stages of completion for about 5 years. I started using the BCS-460. It was cool, but over-kill and not specific enough for brewing.
Next, I set up the very cool “Brew Bench” by Andrew Van Tassel and Lee Kendrick – loved the UI; it was super cool idea. As I used it the first time, I realized that I did not have a “brew bench” but rather a “Brew Home”. My fermenter is under the stairs, I mash in the kitchen, and the boil is on the back porch. Having to move the Brew Bench from room to room made it less useful.
On one of my sleepless nights, I started thinking that it would be great to use NodeMCU’s to run the Brew Bench, but it only had one analog in. I found some cool stuff on the net that could be used to expand that with a chip or a set of diodes and some DI/O pins. Those options added complications to the project and did not really solve the problem of my “Brew Home”. Problems being:
- distance between brew areas
- data persistence (unplugging and plugging the Brew bench).
I could set up a NodeMCU and a Display on each of them and it would work, then I remembered that I purchased Rui Santos’ course. It walked me through simple setups that allowed this project to come to life – all in one book/course. His instructions showed me how to use a Raspberry Pi and NodeMCU’s to create a spiderweb of wireless sensors that would talk back to a central server: Node-Red. It would also allow for data logging/graphing and control from a central control panel.
I would highly recommend this course (or any of his others), but here is the basic run down specific to this project:
- Set up Raspberry Pi – I used Jessie (Pixel) which had Node-Red installed but I had to add the Dashboard package.
- Auto Start Node-Red on the Pi – when node red boots it shows on the screen to autobot use this line of code. Copy and paste it into terminal.
sudo systemctl enable nodered.service
- Install NPM
sudo apt-get install npm sudo npm i -g firstname.lastname@example.org
- Add Node-Red Dashboard package
cd ~/.node-red npm install node-red-dashboard
- Install and set-up Mosqitto
sudo apt-get install mosquitto
- reboot your Pi
- Go to Http://yourPiAddress:1880
- Here is how I set up The Hot Liquor Tank for my setup. Which is can be tweaked for each stage of your brew system.
- Chose Inputs->MQTT drag that into the flow double click on it and click the pencil (edit) button next to the server. add localhost as the server and port 1883 -> click update. Now back on the MQTT Node- set up a topic. (HLTTempIn).
- Choose Dashboard ->Gauge drag that node next to the MQTT Node. Click on the dot at the end of MQTT connect it to the Gauge input dot.
- To the right of the flow area there is a dashboard tab. Click it and name your dashboard (Brew Controller). Choose light or dark theme. Click the +tab click on the tab 1 that appears below. Click the edit pencil, give the tab a name (Brew Day). Click on Add group on the Brew Day tab. Name it (HLT).
- Double click on the Gauge. Choose the HLT [Brew Day] from the Group dropdown. Fill in Title, Label, min, max , and Name.
- Click the red Deploy button. in a new tab go to Http://yourPiAddress:1880/ui .You should see the title bar and the Gauge, it should be at 0 since the ESP is not transmitting yet.
Read More: Distributed Brew Controller