SparkFun Forums 

Where electronics enthusiasts find answers.

Have questions about a SparkFun product or board? This is the place to be.
By gearbox
#134822
Hi, happy helpful Sparkfun community -

I'm an experienced computer programmer but just getting into electronics/electrical tinkering.

I'm thinking about building some kind of interface so that I can read the status (simply on/off) of my central air/heating thermostat from my PC.

I'm a little nervous though, because if I do something wrong I could conceivably wreck my computer, thermostat, or both (not to mention the outside chance of shorting something out, starting a fire and burning down my house).

Does anybody have any advice for a beginner undertaking a project like this? The thermostat is 24 VAC powered, and simply presents some open/closed connections that I need to monitor with either an Arduino based interface or something like a Phidgets interface (www.phidgets.com). I'm just looking for advice on how to do this without blowing out any equipment or, as I mentioned, coming home to a smoking crater.

Thanks...
By fll-freak
#134856
I am working on this exact project as well. My heating system is also 24VAC (more like 28) and has 4 zones. I wanted something very simple to interface to an Arduino without a whole lot of electronics.

My solution was possible due to the nature of the zone valves. These things are motor less. They use a heater coil to melt wax in a cylinder that expands and contracts to open the valve. To melt the wax and open the valve, it needs about an amp of current for about a minute. What I did was to place a 2K 2Watt resistor and an AC optocoupler across the thermostat switch. When the thermostat is not calling for heat, about 15ma of current flows through the circuit activating the internal LED and forcing the output transistor to conduct. That does mean the 15ms of current is also going through the heater coil, but this is not enough to melt the wax. When the thermostat calls for heat, the circuit gets shunted and the output transistor stops conducting. A simple 10K pull up to the Arduino 5V supply, a ground, and a tap at the transistor to pullup junction to a digital input is all I needed. Seems to be working well.

There is more information on my blog at the address in my signature.
User avatar
By redwire
#134869
It's not too hard to do this. You have to safely get the hvac signal to your PC or Arduino, so it cannot interfere with the hvac operation.
Using an opto-coupler across the thermostat (switch), you have to be careful not to draw too much current with it. Then your A/C or furnace will stay on all the time. This is not a problem with zone valves, but hvac electronic control boards can be sensitive.

Simplest is connect a small 24VAC relay (coil) to the central air (after the thermostat) and then run the contacts to the PC or Arduino. Or you can use AC opto-couplers, like a http://www.fairchildsemi.com/pf/MI/MID400.html (MID400) with 5-10mA drive.
By gearbox
#134961
Those are great ideas! I was thinking I would have to tie the outputs directly to the PC circuitry - using a relay or opto-electronic link (which I've never heard of, but looks very cool) is a much better solution. Thanks! I will try to keep everyone posted so they can enjoy my progress (or at least have a few laughs.)
By Sheepdog
#135195
Here's more help on opto-isolators, which may well be very useful to your wants...

http://www.arunet.co.uk/tkboyd/ec/ec1optoiso.htm

Be sure to note the bit at the bottom about the opto-isolators for AC use.

===
You want to read the status of your system from your PC. From outside your home? Across the internet?

If you want remote access, see http://arduserver.com