In order to more effectively direct the heated/cooled air, I had the idea of automating the opening of the air vent registers throughout the house. Blocking air flow in one room has the effect of increasing the air flow in other rooms which allows me to have a consistent temperature throughout all the rooms in the house.
The key to the project was to find an air vent that could be motorized. After much shopping and tinkering, I settled on a set from Home Depot that have a sturdy metal top with a hard plastic sliding bevel that controlled the air flow opening. I had to disassemble each of them and modify them heavily so they would slide without friction. Next, I needed a motor to move the vent. I purchased several for evaluation, and finally settled on a VS-19 pico linear servo from Solarbotics. This was the perfect size for my needs, required only 5V, and had the horsepower to move the vent. The only downside was that it had no good mounting brackets. Solarbotics recommended servo tape, but it had too much give, so, I had to kludge together a wire harness underneath the vent.
Next, I built a control module based on a triple stack of an Arduino with a network shield and a Sparkfun Arduino Prototype shield. On the prototype shield, I added connectors to power up to 6 vents. Also on the prototype shield, I have a connection for an extra temperature sensor – I needed this since I currently lacked a temp sensor in one of the rooms where I wanted to control 2 vents. The network shield provides a 2-way interface with Watchdog.
I strung control wire through the dropped ceiling in the basement to all the air vents on the main floor of the house. Unfortunately, it was not possible to pull these wires to the upstairs vents – maybe in the next house! It was important for me that no wires were showing, which I was able to accomplish. I terminated all wires with JST connectors which won’t slip and allow an easy disconnection if any maintenance is needed.
Finally, I added some functionality into NetChecker to integrate the automation control into Watchdog. Once very 30 minutes, Watchdog evaluates the temperature in each room on the main floor of the house. Depending on the season, the air vents are opened/closed to adjust the temperature in the room to achieve an optimal, consistent temperature throughout the house. Another feature is to close all vents every night at 9pm. This forces hot/cold air upstairs where we sleep for better sleeping conditions and energy savings. In the morning, the vents are re-opened to balance the temperature in the house.
I wrote the software to hold the servos in one of 3 positions: Open, half and closed. The half position has helped to avoid oscillation in room temperature and reduce the number of adjustments required throughout the day.
One problem I found was that the servo motors are jittery and made a lot of noise (which seemed to be amplified inside the air ducts). To solve that, I added a solid state relay that I turned on only when I was ready to adjust the servo motor. Once they were done moving, I turned off the relay and everything was quiet again. Another problem was that one of the servos failed and had to be replaced. I had stock piled some surplus for this case and I found it a straightforward swap out. The tiny little motors in these servos are meant to be a pager vibrator motor, and I know they don’t last forever.