An electric furnace-air handler, arduino-based, controller.
Project showcase by desbiensl
I wasn't planning on going commercial with this, but sure I could sell you a bare PCB with a BOM and possibly put the code public on this page after I clean it up a bit.
Hi, thanks for the positive comment, to answer your questions:
It ended up being a big project but in the grand scheme of things it’s not rocket-science:
- switch voltage ON and OFF to 4 big 5 kW resistors
- switch a FAN ON and OFF
What is important from a safety aspect is proper isolation (through optocoupler and relays) of the different type of interfacing signals: 24VAC thermostat / 5V digital electronic / 240VAC power components, proper fusing and obviously sizing appropriately the components and wire gauge.
The remote monitoring of the data is active only when a computer is directly connected to the USB port of the Arduino board (a small extension bring the USB connection out of the furnace). I’m simply looking for an active serial connection in the main loop and output data if one is detected. So I can connect, disconnect a computer, without disrupting the operation of the board, you can do that with the Leonardo, I believe the Uno reset itself in that case but I have no experience with it so don't take my word for it.
Remote connection would have been nice but I didn’t have enough inputs / outputs for that and the project had to end at some point.
W3 would be third stage “call for heat”, it’s essentially a provision as my ecobee only support two auxiliary heating stages (W1 and W2). I ended using this input for my heat pump “cooling call” Y, just to know when it’s on, son I can by-pass the speed adjustment algorithm for the fan and simply put it to max speed (better for efficiency). There is nothing specific about the 4 24VAC inputs (G, W1, W2, W3), it’s all the same circuit, the thermostat simply apply the same 24VAC coming from the transformer to these outputs depending on the operation it wants to perform.
Yes the two red lines do not need to be connected, NC on electronic schematic means “no connection”. Some optocoupler have a pin connected to the base, some don’t. In that case I did not bother connecting the base (I did not want to specifically adjust the precise turn-on turn-off dynamic). Looking back, it would have been better to simply tie it down to ground with a high impedance, like in the tutorial here:
Instead of letting it float, it offers better immunity. The floating pin can potentially act as an antenna and if the electromagnetic environment around the chip is very noisy, it could, theoretically, provoke a switching glitch of the optocoupler by itself, but I’m not too worried.
That’s a nice project you have there. Isn’t there already an automatic shut-off or delayed retry of those gas furnace in case of an ignition failure?, if not, (on the specific model you have), you could add an inline relay between the W and the gas furnace relay (connected between the common and NC, normally closed, ports), so that in case of failure, you also disconnect the W line from the gas furnace relay (for safety), and then you manage your algorithm as you wish (1 minute delay before a retry, a maximum of 3 retries before locking up the operation of the furnace,….whatever fits your situation).
Hi, thanks for the positive comment.
The 24VAC thermostat command is a sinusoidal voltage at a frequency of 60 Hz, peak voltage is ±34 V [sqrt(2) * RMS voltage]. You want to do three things :
To rectify the AC voltage, I've implemented a simple full wave rectifier (4 diodes + 1 capacitor for ripple filtering), at the output of this you have DC voltage at ~ 32.4 V (34V minus the voltage drop of 2 diodes).
To isolate and lower the voltage, you can use an optocoupler which couples two sides of a circuit through an integrated LED and photo-transistor within a package.
See the schematic for values and connections but basically you need two resistors, one on the high voltage side to limit the LED current and one on the Arduino side to adjust the voltage drop to make sure the digital line goes to a digital 0 when voltage is applied at the thermostat input.
Please note that the logic of this circuit : when 24VAC voltage is present, digital line goes low, when 24VAC is not present the pull-up resistor pulls the line high.
Or connect with your social account:
New here? Create an account