steve71 / RasPiBrew

Raspberry Pi Temperature Controller for homebrewing and sous vide cooking
http://steve71.github.io/RasPiBrew/
MIT License
188 stars 75 forks source link

Does this work for cooling also? #17

Open CptanPanic opened 8 years ago

CptanPanic commented 8 years ago

Would this work for a homebrew fermenter fridge?

steve71 commented 8 years ago

No, that feature would need to be added.

Sent from my T-Mobile 4G LTE Device

-------- Original message -------- From: CptanPanic notifications@github.com Date:08/31/2015 7:27 AM (GMT-05:00) To: steve71/RasPiBrew RasPiBrew@noreply.github.com Cc:
Subject: [RasPiBrew] Does this work for cooling also? (#17)

Would this work for a homebrew fermenter fridge?

— Reply to this email directly or view it on GitHub.

archonic commented 8 years ago

I believe it would work if you wired an SSD to a solid state heat pump (TEC). RasPiBrew currently doesn't have the logic for properly controlling compressors. An STC-1000 is the cheapest way to cool a fermenter fridge.

lalo-uy commented 7 years ago

I love it. It will work for cooling . You only need to set the invert flag for the Relay and set a long Cycle Time ( ~ 100 sec or more ) to avoid your fridg to star n stop every minute. I wish the Temp Plot will be preloaded when you open the browser, So I can check from time to time the ferment process and see a 2 or 3 day back plot.

SalisburyLad commented 6 years ago

Better still is to change the temperature and set point to negative... at line 365: ` #calculate PID every cycle if (readyPIDcalc == True): duty_cycle = pid.calcPID_reg4(temp_ma, set_point, True)

send to heat process every cycle

                    parent_conn_heat.send([cycle_time, duty_cycle])
                    readyPIDcalc = False`

Change to: ` #calculate PID every cycle if (readyPIDcalc == True): if set_point > 0: print "Set to heating mode" duty_cycle = pid.calcPID_reg4(temp_ma, set_point, True) else: print "Set to Cooling mode" duty_cycle = pid.calcPID_reg4(-temp_ma, -abs(set_point), True) #Covert to -ve for cooling

send to heat process every cycle

                    parent_conn_heat.send([cycle_time, duty_cycle])
                    readyPIDcalc = False`

To have the web page display the set point as a positve number make the following change... Line 275: param.status["set_point"] = set_point Change to: param.status["set_point"] = abs(set_point)

To make it work just enter your set point as a negative number.

I think that should work. I've modified the script to be driven from a database (well, work in progress), the aim is to control all of the vessels I have to heat or cool or both. A little more work to do in setting the values for each channel from the DB and very little knowlege of Python but, one day! I have to thank Steve for the program, it's fantasic, well done.