java230
SuperDork
3/13/17 1:03 p.m.
I have not messed with these at all, I see lots of cool things, I have a project that I think it would be perfect for. Easy, cheap (i see Chinese knock offs?)
Learn me!!
What I need is a "smart" thermostat, turn heat on at X temp, turn off at Y (lower) temp. Its just a open/closed contact and is low voltage.
Easy, yes. You need a temp sensor, an Arduino, 20 lines of C, and maybe a relay depending on how much current the heater switch needs.
How familiar are you with C?
First of all they're on two very different levels - the RasPi is much like a desktop PC with some handy I/O pins, and the Arduino is a basic processor on a development board. You'll be doing MUCH lower-level programming on the Arduino.
For what you need the Arduino is a better fit...or maybe just some kind of off-the-shelf electronic thermostat.
For the project I am doing, I got a knock off from China that works just fine. I also got the LCD, which I'm still trying to figure out how to run it AND get 5V from someplace- as that board is taking a lot of space.
java230
SuperDork
3/13/17 1:35 p.m.
In reply to codrus:
Not familiar with C, I haven't programmed anything in years.
GameboyRMH wrote:
/snip or maybe just some kind of off-the-shelf electronic thermostat.
I dont think it exists. I need to turn on and off at different set points.
Say on at 65, once on off at 63. Does that make sense?
EDIT: oh I guess a display of some sort would be good as would a temp up and down buttons. And an on/off switch
Adding buttons makes it more complicated -- adding a display makes it a lot more complicated.
I would suggest starting by picking up an Arduino and some LEDs and playing with it. Do some tutorials, pick up a book on C, and then decide if it's worth embarking on this project. If your goal is just to control a furnace, then an off-the-shelf smart thermostat will be cheaper and way easier.
java230 wrote:
GameboyRMH wrote:
/snip or maybe just some kind of off-the-shelf electronic thermostat.
I dont think it exists. I need to turn on and off at different set points.
Say on at 65, once on off at 63. Does that make sense?
Yeah I get that. I know that there are many that have different setpoints, like some for cars that turn the fan off at a lower temperature than where it turns on, but I don't know if there are any that let you adjust both the activation point and the difference to the deactivation point.
java230
SuperDork
3/13/17 1:45 p.m.
codrus wrote:
Adding buttons makes it more complicated -- adding a display makes it a lot more complicated.
I would suggest starting by picking up an Arduino and some LEDs and playing with it. Do some tutorials, pick up a book on C, and then decide if it's worth embarking on this project. If your goal is just to control a furnace, then an off-the-shelf smart thermostat will be cheaper and way easier.
Yeah I realized that its getting more complicated....
If you can find me an off the shelf T-stat that can do what I described I am all for it.
Is Pi easier to program?
java230
SuperDork
3/13/17 1:47 p.m.
GameboyRMH wrote:
java230 wrote:
GameboyRMH wrote:
/snip or maybe just some kind of off-the-shelf electronic thermostat.
I dont think it exists. I need to turn on and off at different set points.
Say on at 65, once on off at 63. Does that make sense?
Yeah I get that. I know that there are many that have different setpoints, like some for cars that turn the fan off at a lower temperature than where it turns on, but I don't know if there are any that let you adjust both the activation point and the difference to the deactivation point.
Hmmm my google is failing me then.... I dont really care about being able to adjust the "off" set point, once I know what my delta needs to be.
I have a big heater in a small space, by the time the burner cool down run time is done im well over my desired temp set point
java230
SuperDork
3/13/17 1:58 p.m.
In reply to GameboyRMH:
Works just like a standard Tstat AFAIK, on and off around a set point.
That one lets you adjust the hysteresis setting (difference between on and off temperatures) from 0-15C.
java230 wrote:
Is Pi easier to program?
Why do you want separate on and off by that amount? Any commercial thermostat is going to have a certain amount of hysteresis in it, if only to avoid cycling the furnace every few seconds.
With the Arduino your code is running on the bare metal, with the Pi you're running on Linux. The Pi will do a ton of stuff for you, but it may or may not be what you're looking for, and there's a bunch of other headaches associated with it. The Pi will take some time to boot after a power failure, whereas an Arduino is basically instantly on. The Pi is way more complicated in terms of its internal state, and that complexity means there's a lot more that can go wrong.
java230
SuperDork
3/13/17 2:12 p.m.
In reply to GameboyRMH:
Yes but thats around the same set point. IE temp is set for 60, hysteresis is set for 2 degrees, relay will be triggered at 58 to turn on, and 62 to turn off.
codrus wrote:
java230 wrote:
Is Pi easier to program?
Why do you want separate on and off by that amount? Any commercial thermostat is going to have a certain amount of hysteresis in it, if only to avoid cycling the furnace every few seconds.
With the Arduino your code is running on the bare metal, with the Pi you're running on Linux. The Pi will do a ton of stuff for you, but it may or may not be what you're looking for, and there's a bunch of other headaches associated with it. The Pi will take some time to boot after a power failure, whereas an Arduino is basically instantly on. The Pi is way more complicated in terms of its internal state, and that complexity means there's a lot more that can go wrong.
Big heater, little room. The cool down cycle on the burner overshoots the set temp by 5 (maybe less) degrees, but it basically causes a huge hysteresis
java230 wrote:
In reply to GameboyRMH:
Yes but thats around the same set point. IE temp is set for 60, hysteresis is set for 2 degrees, relay will be triggered at 58 to turn on, and 62 to turn off.
On this model you can also set high and low limits for the temperature range you're trying to maintain. If you set the hysteresis to 0 and set the range to match your high and low points, would that work?
java230
SuperDork
3/13/17 2:25 p.m.
In reply to GameboyRMH:
Ah I see what your getting at. But I think I need it backwards. I want to set the "heater off" setting below the "heater on" setting.
IE Desired room temp is 62, set "heater on" to 58, set "heater off" 60. Cool down cycle on the heater brings us back above 62.
EDIT: so high limit would be set below low limit, would that work??
No, you'd change it from cooling to heating mode and set the limits appropriately.
Don't forget to add an indicator light connected to a thermometer, with an "open the door" label
java230
SuperDork
3/13/17 3:18 p.m.
GameboyRMH wrote:
No, you'd change it from cooling to heating mode and set the limits appropriately.
Hmm I guess im not following...
If you set the "off" temperature below the "on" temperature, then it'll never turn on. You don't want a thermostat -- what you need is a more complex control system that estimates the residual heat in the burner and includes that in its calculation of when to turn the heater on. Some along the lines of a desired set point of 65, but lowering that set point by 1 degree for every 10 minutes out of the last 30 that the heater has been on.
So yeah, I'd do this with an Arduino. Buttons are fairly straightforward to add, hardware-wise they're just wired to digital input pins. You'll probably need interrupt service routines to handle them, along with some logic to "debounce" them.
For display, it depends on how complex it needs to be. If all you need is two digits (say to display the current target temp), then you can do that fairly easily with a LCD segment display. If you want something fancier (bitmapped) then it gets a lot more complicated.
There's no getting around the fact that you're going to need to write a bunch of code to make this work. Again, I recommend picking up a cheap arduino and playing with some LEDs to start with.
java230
SuperDork
3/13/17 3:51 p.m.
In reply to codrus:
Yes sorry what I want is setpoint is 65, heat on at 62, once on turn heat off at 64. Reset repeat.
Yes I need on/off, temp up, temp down and two digits.
Looks like I can get a starter kit for $40 or so on Amazon. I may just have to go that route.
Add a massive chunk of thermal mass to the room?
I do have an Arduino, some breadboards, jumpers, and a tutorial book that I've never actually gotten around to using. If you want them for $shipping, I could make that happen.
java230
SuperDork
3/13/17 4:01 p.m.
In reply to ProDarwin:
PM'ed!!
I do have a counter top to add, but I dont think it will make that much of a difference.
java230 wrote:
GameboyRMH wrote:
No, you'd change it from cooling to heating mode and set the limits appropriately.
Hmm I guess im not following...
The controller has two modes, cooling and heating. Cooling turns on at the upper temp and off at the lower temp, heating turns on at the lower temp and off at the upper temp. So you'd put it in heating mode, set the lower temp where you want the heat to kick on and the upper temp where you want it to stop heating.
java230
SuperDork
3/14/17 9:40 a.m.
In reply to GameboyRMH:
Yes, but thats not what I need. I need it to kick on at a setpoint (desired room temp) then once on kick off a couple degrees below the on set point.
The issue I have is the heater has a "cool down" cycle to cool the burner once the T Stat has told it to turn off. This runs for a couple minutes and spikes the room temp way above the setpoint. (basically causes huge hysteresis)