Simple UI automated BIAB - Node-RED, RFM12, Arduino

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

szac

Active Member
Joined
Nov 25, 2008
Messages
41
Reaction score
2
Location
Phoenix
I've been converting my two vessel rig in to a smaller, stovetop BIAB setup and brewed my first batch on it yesterday. It's still a work in progress, but here's where I'm at so far:

Brew day is essentially pressing the button on the control panel to start. Then it'll run through all steps, pausing only to allow for grain addition and removal. I monitor temps, time and steps on an iPad or phone.

JTBIABRFM12HABS.jpg


Web UI and a 1.037 ordinary bitter.

brew_day.jpg


The rig is running a modified version of the HABS BIAB arduino sketch on a Jeenode. The Jeenode has an RFM12 transceiver and sends a payload of brewing data over the air every second or so to my home server where it's collected by another RF transceiver (a Jeelink). The payload then sent over serial to the amazing Node-RED node.js app. Node-RED acts as a broker and outputs the payload to an MQTT topic then as a websocket out node. Within Node-RED i have another flow that configures, hosts and returns an HTML page that is subscribed to the brewery payload websocket. This is where I monitor the status and progress of wort production in real-time. And eventually fermentation.

Here's a mock up of the screens. The first couple are suggesting future enhancement of web-based configuration by linking to Brewtoad recipe api.

junktrunk_brew_ui.jpg


The speed and stability of Node-RED is a game changer for me after using python. While I'm currently using it now to deliver real-time brew data to a browser, it'll soon be used to replace the entire arduino sketch that handles stepping through brew day wort production. Also using it to broadcast smoker temps, temp/humidity sensors in my crawl space, and a NFL scoreboard web app. Other capabilities involve broadcasting inputs to multiple outputs (like twitter, a database, etc). One the best features is how easy it is to share these flows. A relatively simple stack for such powerful, easy to use software.

TL;DR The brewdata flow is:
ds18b20 temp probe -> arduino/jeenode -> arduino/jeelink -> Node-RED -> browser

Here's a screenshot of the Node-RED UI. Browser based, drag, drop and connect.

node_brewing_flow.jpg


Control panel interface: One button to start/continue, and an on off switch. Got the box from a local army surplus shop. I think it was a swedish gas detection kit.

jt_panel.jpg


That hole is the for the heat sink that I've removed since I haven't installed the heating element yet.

jt_plugs.jpg


eBay SSRs and outlets wired to be protected under the GFCI outlet.

jt_ssr.jpg


Need some effort on the wire management here. The green pcb is a wifi router that I tried to recycle the ethernet jacks for - didn't work.

jt_jeenode.jpg


Lil' pump action

jt_pump_action.jpg


Hardware

  • 5g Adventures brew pot / lid (AIH)
  • Adventures bag (AIH)
  • $35 eBay pump. Also here: lighobject website
  • Jeenode
  • DS18B20
  • Silicon tubing (AIH)
  • Ball valve (AIH)
  • 3 way 1/2 NPT (AIH)
  • (1) GFI outlet, 4 regular
  • 2.5g carby (AIH)
  • US plastics no chill cube
  • (4) SSR ebay
  • Momentary switch
  • On/off switch

Software

  • Arduino/Processing/JeeLabs
  • HABS arduino automated brewing sketch
  • Node-RED
  • Bootstrap
  • HTML

Next on the list is fermentation monitoring and control. This will use a similar setup as the rig. I still need to add the heating element as well. Other ideas are converting old transistor radios or alarm clocks to analog wireless brew-day monitors and distilling beer to make whiskey and NA beer.
 
Last edited:
Wow. This is really cool and now I want to buy that pump and recirculate my BIAB mash.
 
Wow. This is really cool and now I want to buy that pump and recirculate my BIAB mash.

Yea, the recirc worked out great. The pump seemed to have held up fine during the heating of liquor, maintaining mash, and mash-out. Over 2 hours total continual running. My gas stove locked the temp in well too. I only had to adjust during the mash twice.
 
Hi.

New at the forum and also to the beer brewing world. Im from Sweden and at this time more interested in building a small scale system with some automatic system. Came across your thread and found the information and also the clear ui with your screens extremly cool.
Would you consider sharing some of your expertise and tell more about this? Would step mash be possible and most of all your vision or import of recipies sounds great, would this be Beerxml files or how do you plan for this.

We are currently working on the design of both hardware and software, using a steam heated 100 Liter boiling pan with 12 kW electrical elements with integrated stirrer to stir the mach inside a steel mesh net basket and other little trinkets. :) Software is at the moment focused on a Crouzet PLC but we are looking towards the Arduino Mega also, but most of all a simple and good UI and Layout plan is sought after.

keep up the good work and hope you will share as much as you can.


Br
/Martin
 
Hey, I thought the JeeNode temp controller was my idea! ;)

I've used jeenode pairs for sous vide and bbq smoker controllers, along with ruby sinatra apps as GUI. This time around I was going to try bluetooth modules for my RIMS controller as they are cheaper, and if they work, function a little more seamlessly. If the BT doesn't work I'll just go with another JeeNode.

Looks like I need to look into node-red. Is your code available for us to look at?

(edit) this bootstrap looks nice, I was using jquery mobile but like this now...
 
Next on the list is fermentation monitoring and control. This will use a similar setup as the rig. I still need to add the heating element as well.

By the way, in the event you don't feel like reinventing the wheel you could look into the brewpi for fermentation:
https://www.homebrewtalk.com/f258/howto-make-brewpi-fermentation-controller-cheap-466106/

And the previously mentioned bluetooth to wireless hook up to a computer rather than buying a raspberrypi:
https://www.homebrewtalk.com/f258/how-brewpi-over-bluetooth-508151/

Just an FYI
:mug:
 
Hi.

New at the forum and also to the beer brewing world. Im from Sweden and at this time more interested in building a small scale system with some automatic system. Came across your thread and found the information and also the clear ui with your screens extremly cool.
Would you consider sharing some of your expertise and tell more about this? Would step mash be possible and most of all your vision or import of recipies sounds great, would this be Beerxml files or how do you plan for this.

We are currently working on the design of both hardware and software, using a steam heated 100 Liter boiling pan with 12 kW electrical elements with integrated stirrer to stir the mach inside a steel mesh net basket and other little trinkets. :) Software is at the moment focused on a Crouzet PLC but we are looking towards the Arduino Mega also, but most of all a simple and good UI and Layout plan is sought after.

keep up the good work and hope you will share as much as you can.


Br
/Martin

Sounds like an awesome rig! So the system I put together here is currently being ported/simplified to use:

  • Spark Core for temp and time monitoring, and start/stop/continue via the HABS arduino software (modified to work with a spark, and publish the data to the spark cloud)
  • Node-RED to broker spark cloud data to the Node-RED servered HTML UI for monitoring (via websockets)

Yes, step mashes are possible, but I wasn't able to find enough hard evidence of better beer to warrant the effort of building it in to the software and views. However, you could do either of the following to achieve it:

  • Adjust the so that the mash temps increases 3F degrees every minute to achieve a linear mash over 90 minutes. More about that here.
  • Use the strike heating temp to settle your step mashes, the continue to the sacc rest.

I'll try to package and post everything to GitHub over the weekend. Note that Node-RED will have to live on a computer on your network. My longer term goal is to have an app live online that you can just authorize your spark core to connect to. Same idea with a smoker UI I built back in the day.
 
Hey, I thought the JeeNode temp controller was my idea! ;)

I've used jeenode pairs for sous vide and bbq smoker controllers, along with ruby sinatra apps as GUI. This time around I was going to try bluetooth modules for my RIMS controller as they are cheaper, and if they work, function a little more seamlessly. If the BT doesn't work I'll just go with another JeeNode.

Looks like I need to look into node-red. Is your code available for us to look at?

(edit) this bootstrap looks nice, I was using jquery mobile but like this now...

Haha! Cool, man. Glad to see someone else out there in to JeeNodes. I started using them in 2010 as they were teh cheapest arduino-based means of wireless data transmission. Nowadays there's tons of awesome stuff like spark core - something might want to consider instead of bluetooth. Although, the crazy low power use and stability of these little radios would make it hard for me to replace the sensors that I have stowed away for long term data collection.

My first connected device was my ugly drum smoker in 2009. I used a wifi shield on an arduino to push the great code from Hruska to a web UI (and eliminate the LCD screen - similar to the adjustments I made to the HABS software).

By the way, in the event you don't feel like reinventing the wheel you could look into the brewpi for fermentation:
https://www.homebrewtalk.com/f258/howto-make-brewpi-fermentation-controller-cheap-466106/

And the previously mentioned bluetooth to wireless hook up to a computer rather than buying a raspberrypi:
https://www.homebrewtalk.com/f258/how-brewpi-over-bluetooth-508151/

Just an FYI
:mug:

I've looked in to brewpi and agree it's an awesome project. I'm going to use the same heating algorithms that the smoker has to turn reptile tape on and off to achieve the desired temps. I'll have reptile tape wrapped carboys being heated to desired fermentation temps independently of one another in a 40F keezer. jfowler describes his technique here.

I'm using rasberry pi on a couple of projects and agree that it's overkill for brewing or fermenting. Especially if you can just publish the data so easily to a cloud based data store or web app. I considered using it as the node-red server and the I/O for temp probes, but in the end there are too many steps for me to enable (semi) automated brewing or meat smoking with my cousins and friends (people just interested in the automation and not the hacking on hardware). I think I have down to a couple of steps:

  • Buy spark and flash it in their web IDE with HABS software
  • Build a breadboard version of the simple temp probe and continue button
  • Authorize my hosted app (coming soon) to access spark core (via their provided oauth service)

And now you're ready to monitor.
 
Oh cool! Great minds think alike, I pre-ordered one of the photons a few weeks ago and I'm anxious to play with it. The brewpi guys are using the spark cores in their new automated brewery as well.
 
Hi !!!

Cant wait until you get the files up on github.
Your job is really nice! I have just bought an arduino uno and it would be fun to try it out with your code!!!
 
Update - I have ported over the jeenode version of the codebase to now work on a Spark Core. Next up is the recipe import.

Here you see the spark on a breadboard with a ds18b20 temperature sensor, a button, and a piezo buzzer. It's 74F in my house and the mash step will end in 11 minutes.

spark_junktrunk.jpg


Here's the new flow:

  1. Spark Core has seven steps that are advanced by either reaching a specified temp, time or by a user pressing a next step button
  2. Once per second the core publishes a blob of data to the spark cloud
  3. A node in Node-RED is subscribed to this data feed and forwards the data to a webpage via websocket

I still have a fair amount of cleanup to do before I get to a point where sharing the code won't cause more confusion then help. Getting close!
 
Sounds like an awesome rig! So the system I put together here is currently being ported/simplified to use:

  • Spark Core for temp and time monitoring, and start/stop/continue via the HABS arduino software (modified to work with a spark, and publish the data to the spark cloud)
  • Node-RED to broker spark cloud data to the Node-RED servered HTML UI for monitoring (via websockets)

Yes, step mashes are possible, but I wasn't able to find enough hard evidence of better beer to warrant the effort of building it in to the software and views. However, you could do either of the following to achieve it:

  • Adjust the so that the mash temps increases 3F degrees every minute to achieve a linear mash over 90 minutes. More about that here.
  • Use the strike heating temp to settle your step mashes, the continue to the sacc rest.

I'll try to package and post everything to GitHub over the weekend. Note that Node-RED will have to live on a computer on your network. My longer term goal is to have an app live online that you can just authorize your spark core to connect to. Same idea with a smoker UI I built back in the day.

Thanks for sharing on Github, please advise when you have uploaded.
Spark core and Photon is something we caame across just a few weeks ago, this looks to be a really cool Little Power pack.

Regarding step mashing we mostly want to get this integrated so that all beertypes would be possible to make, my personal thought is that a hefeweizen would profit from a step mash Schedule.

thanks again for sharing and giving us newbies a chance to saok up knowledge.

BR
/Martin
 
Sorry, missed your last replay, sweet integration with the core.
just a question, if you would like to ad a solenoid or motor valve to open on requeted temp would this be difficult to implement?
 
Back
Top