A wireless, multiple thermostat home HVAC system
Ok so a quick update:
I stumbled upon the latest generation of TI sensor tags, based off the CC 2650. The tag has a temp, light intensity, and humidity sensors on it. It also has a 9 axis IMU but I won't be using it. It claims to get over a year of battery life at 1 Hz update rate off of the a CR2032 coin cell... Which helps in the number 2 wife requirement, no visible wires. :) So I'm thinking of picking up several of them to act as my sensing nodes. After some looking around for a USB-Zigbee dongle with actual support, I came to the conclusion I would probably be stuck with Bluetooth as my communication method between the nodes and the controller.
For the wall mounted control unit in my living room, I've got 4 wires coming up from the basement currently switching 24VAC power to controller the furnace, fan, and AC compressor. My thought is to temporarily re-purpose those wires to provide DC power to the controller and establish a bi-directional serial link to a relay slave. The relay slave would be located at the furnace and would switch the 24VAC. It would also send relay status information back to the controller. My intent was to monitor the relay status directly by using one of the poles on a DPDT relay, that way I know fairly certainly if a contact refuses to make or break. I'm not too worried about contact welding as it's only 24VAC, current limited by the transformer. Lastly I would put a buzzer on the relay slave to sound loud and proud if communication with the control node is broken for more than 30 seconds.
Being bogged down in grad school I find myself with a lot of time to think on this project and very little time to move the ball forward. :/
In that vein, the home was constructed with in duct vents to (attempt to) turn off the HVAC to parts of the house. Currently I have the unoccupied rooms always turned off while leaving the master bedroom and most of the downstairs on constantly. Wouldn't it be nice to be able to use servos to open and close the vents on command? That way when we retire to the upstairs for the evening we can simply close the vents downstairs and in the morning vice versa?
One of my goals was to make a system that I could easily remove upon moving day and leave the next homeowner with a standard "dumb" thermostat.
That objective forces me to switch 24VAC to turn on the fan, furnace and compressor. A Digikey propaganda email pointed me to some Panasonic solid state relays on a SMT package. Those clocked in around $7 each, further searching yielded:
For less than a $1 a output I can fully isolate the 24VAC from my board. Who said promo emails never yielded anything useful?
and it really got me focused on using an ESP8266 as the brains of the operation. The touch screen module I want to use can communicate via SPI and I'm sure I can find a temperature / humidity sensor that can output SPI. That would significantly decrease the I/O pin count I would need especially if for the downstairs unit, I could use an SPI GPIO expander to drive the relays.
Mandatory Feature Set:
1) Ability to designate a thermostat as the master, from which the system polls the process temperature.
2) Use an already owned Linux set top box as the private server for Sparkfun's Data platform.
3) Run off DC wall warts.
4) Fail Safe.
5) Ascetically pleasing, i.e. wife approved.
Desired Long Term Features:
1) Create a webpage on the Linux box allowing the HVAC system to be configurable by mobile devices.
2) use a SDR to capture the frequency and protocol for the wireless fan remotes in the den and master bedroom. Implement the ability to control the fan via the thermostat.
3) Create an outdoor weather station that communicates with the base station.
4) Make the downstairs thermostat run off the 24VAC supplied for the HVAC control signals.
5) Add Z-wave or X10 window sensor to determine if windows are open.
6) Control the existing attic fan.
7) Integrate in the Goggle calendar API so the system can poll a calendar to determine a schedule.
8) Add to the web interface, plot the temperature and HVAC usage.
9) Find an API or code chunk to ping our mobile devices to determine if they are on home Wi-Fi to help determine when we are away.