You can view all of the construction pictures here.
I had this paragraph that I was writing here that talked all about how homes can be made more efficient with the application of small, inexpensive monitors in strategic places blah blah blah, but it was a lame paragraph. Here is a short summary of what the end goal of my Whole Home Information Awareness ( WHIA, pronounced Wee-Ha) project is all about. At a high level, temperature and humidity sensors in each room of the house instruct a micro controller to open and close the vents in a specific way to balance out every room in the house. The end goal is that no room will be more then 1.5 degrees and 5% relative humidity different from any other room. No more hot guest bed room and cold living room. To safely pull this off I’ll need temperature and humidity sensors in the return vents of each room, servo motors connected to the main damper controls for each vent, an air flow and pressure sensor in the HVAC main line to keep the motor from getting burned out, an Arduino to gather all of that sensor data together and a Linux box to process the data, control the sensors and create graphs of what’s going on. At the final stage, I’ll integrate servo control into the blinds in each room and set temperature control in stages involving first messing with the blinds, then running the HVAC motor only with no AC or Heat and finally engaging full AC or Heat as required.
This graph updates every 5 minutes and shows the current sensors hooked into the network.
Next; Constructing the sensors

November 27th, 2009 at 11:01 pm
I am looking to do the same thing to my home using a plc with an rtd card, the only thing that worries me is that you will need an access panel for the servos everywhere and what if the servo fails, it should return to normally open and be back in normal operations. what type of temp sensors did you use and cards. where did you get the hardware and is the programming done in c++? it would be nice for maint purposes to have the louvres at the registers but you would need a lot more io. and instead of everyroom close to the same temp have individual room setpoints for those who like their rooms cooler, or rooms that arent in use. same system works for sprinklers and moisture sensors
November 28th, 2009 at 12:33 am
I decided to attach the servos to the dampers in my unfinished basement, so access wasn’t really an issue for me. Initially I did have the servos sitting free return, but got concerned about “what if” and attached a return spring. That worked, but the servos had to work pretty much 24×7 and that guarantees early failure. So instead I just put a little routine in the code to make sure that only X number of servos are actually being closed at any given time and I monitor the inlet and outlet temperature of my HVAC plenum to make sure I’m not overtaxing the system.
I used the DS18S20P 1-wire sensors from Dallas. Great little sensors that can support very long cable runs and, if you run your wires the right way, can use only 1 pin on your micro controller. I didn’t run the wires the right way and ended up in a star topology, as opposed to the preferred bus, which introduced a lot of timing issues. I could have inserted a funky FET amp into the 1-wire network to get all of the sensors working, but instead decided to cheap out and used 1 pin for each room of my house, so each room has it’s own dedicated, switched 1-wire network.
The programming on the arduino is all done in C and on the linux box it’s a combination of perl and shell. I had started work on V2 of this platform which contained humidity sensors, light sensors, XBee wireless to control opening and closing of blinds and a more flexible UI that would all overrides to be set on a room by room basis, but we’re having another baby and so pretty much all of the spare time has gone into getting the nursery/wife/etc ready. Still hope to make some headway, but no idea when.