How to: Raspberry Pi HLT/Boiler Controller

The Homebrew Forum

Help Support The Homebrew Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
I will be having a go just not right now, been putting together the equipment I need for AG then sourcing a fridge to finish off my fermentation fridge! After all that I will get started on it :D Thanks again for the how-to :thumb:
 
How are you setting the clock? (Since there isn't a RTC on the pi)
Would be easy if it was connected to the net (just use a ntp client).
OR just a switch on n hours later? (where you can input n using the switches?)
 
Good question.

I personally have a USB wifi device so get Internet time.

Without this, I presume the datetime.datetime.now() function would just use "birth of unix time" at power-up.

The function could just ask "how long from now do you want to switch on the boiler" and then use delta time rather than absolute.

You raise a good point that I hadn't considered. I will need to make sure the function works for all users, with or without Internet connection!
 
Robbo100 said:
So are many (any) people thinking of making one of these?

Robbo, this is great. I thought about doing this but the coding would have been a major relearning effort. I plan to do something with my boiler, mashtun and HLT.

Fantastic job...:D
 
If you plan to use the code for a boiler, mash tun and HLT (ie three different devices), then you will need to tweak the code to allow three different pairs of thermometers to work (currently it won't allow this), however this should be pretty easy to achieve and I can help you do it.
 
Robbo100 said:
If you plan to use the code for a boiler, mash tun and HLT (ie three different devices), then you will need to tweak the code to allow three different pairs of thermometers to work (currently it won't allow this), however this should be pretty easy to achieve and I can help you do it.

Thanks Robbo...I'm starting to get the parts.
Can a switch be used to change the monitoring between TCs I.e. HLT, MT or Kettle or can all the TCs output be checked by testing the ports at a higher rate?
Once I have the hardware sorted we can look at it...Thanks.
 
I think all three applications you are planning for (HLT, boiler and MT) will all use the same part of code, so a switch is not needed.

However, the current software will only allow one pair of thermometers to be used, and you want to be able to use three pairs (one for each device), so this will need a little bit of work to resolve.

I am presuming that you won't want to have all three appliances working at the same time from the one device? If so, this will need a lot more work.
 
No, I wouldn't want all three on at the same time but I would want to monitor the mash temp during mash in, infusion and sparge.

I'll get the stuff together and working on my HLT and Boiler initially.

Can I use a USB modem to dump out logged temp data and other stuff?
 
For the HLT use could you not have three copies of the basic software with the relevant pairs of thermometers programmed in and a start menu. Not elegant but a quick fix if you are not a wizz at Coding.
Just gathering the parts myself to give it a go. Had the Pi for ages, display and thermometers arrived today and going to Maplins for an I/O board this weekend.
Graham
 
Pakman. That wouldn't work easily, it would be far easier to just add some code at the start to tell the system that any of the three pairs of thermometers are OK to trigger the single routine.

The other thing, is that I think Farmbrew only wants to monitor temps for the Mash Tun and doesn't actually want to control any elements. This will need a further (but relatively simple) tweak.
 
Robbo

I've assembled my Slice of Pi/o and followed your instructions to add it to the Pi. I also soldered the pads underneath the chip to ensure it was set to address 20. If I use the command sudo i2cdetect -y 0 - I can see the unit is located at address 20. :thumb:

When I run the Boiler Controller code the display works fine but the program does not indicate any values for the temperature probes and then keeps cycling over and over stating "Error accessing 0x20: Check your I2C address" The display reads "Ready to start " and " Press Temp Up" but the switches do not cause anything to change. The chip has got VCC and VDD on the correct pins.

Any ideas what I've done wrong? :wha:

Ta muchley

Graham
 
Further to my last - whilst looking through the code for clues why my version doesn't work - the main temperature reading function contains the line "Temperature = ((temperature2+temperature2)/2)" within the loop towards the end.

Should that not be "((temperature1+temperature2)"? :doh:

That way you'll get the average between the two sensors that you desire.

Still not fixed my issue yet :wha: I am able to read the temperatures supplied by the single wire thermometers using command line commands to read the relevant folder contents but for some reason the program is unable to do so.

Graham
 
Graham.

I am away from my Pi for a week, but should be able to help.

Good spot on my temperature averaging function, I will change this.

If you are getting warnings about accessing 0x20, then this is a problem with your Slice of Pi/o, not the thermometers.

Have you tried running any simple code with the Pi/o to check it is working?
 
What address is shown if you type
Code:
i2cdetect -y 1
rather than
Code:
i2cdetect -y 0
?

If you get a different address, then find the line starting:
Code:
mcp = adafruit_mcp23xx(address = 0x20,...
and change the address to the different address.
 
Robbo

Not had chance to test anything yet as the office/brewery/workshop has had to be converted back to an office again for the week. However (I appear to solve a lot of my 'problems' in the early morning :wha: ) could my issue be caused by my Pi having the w1-gpio and w1-therm statements in the 'config.txt' file as well as them being in the start of the controller code in the # Initialise the One Wire Thermometer section?
Does having the statements twice cause issues? :hmm:

Graham
 
I don't think there is a problem with the code. It is your slice of Pi's address that is causing the issue.
 
Actually, ignore my comment about trying i2cdetect -y 1

I have just checked, and I get the following result. Can you confirm that yours is the same?

Code:
pi@raspberrypi ~ $ i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --
 
Pakman said:
Robbo

Not had chance to test anything yet as the office/brewery/workshop has had to be converted back to an office again for the week. However (I appear to solve a lot of my 'problems' in the early morning :wha: ) could my issue be caused by my Pi having the w1-gpio and w1-therm statements in the 'config.txt' file as well as them being in the start of the controller code in the # Initialise the One Wire Thermometer section?
Does having the statements twice cause issues? :hmm:

Graham

Just having a more detailed read of some of your comments and thought it was worth reitterating, that there definitely isn't a problem with your thermometers, and I don't think that having the w1-gpio and w1-therm statements twice will be a problem.

The problem is definitely to do with your slice of pi/o's address.
 
Back
Top