Introduction: Arduino HVAC Servo Thermostat/Controller

Welcome to my 'green' instructable! I am going to show you how to use an Arduino, two servo motors a temperature sensor and some metal (or wood) to make a digital thermostat for a through-wall HVAC unit.

According to CB Richard Ellis (a major real estate firm), New York City is a renters market, with only about 1/3 of the population owning their home (versus almost 70% home ownership for the rest of the US). This means over 5mm people in NYC live in rented apartments or homes. It is very rare for rental units to have any form of central air conditioning or even a thermostatically-controlled system.

Many apartments have permanent through-wall units like the one seen in the video below. Unfortunately, these units have no ability to regulate the temperature and can only be forced into heat, cold, or off.

According to the Consumer Energy Center, Heating and Cooling accounts for about 45 percent of your energy bill. The federal government estimates that the average homeowner spends more than $10,000 for heating and cooling over a ten-year period.

The cooling capacity of room air conditioners is measured in BTUs, or British Thermal Units, per hour. To cool a 700-1,000 sq ft apartment (a one bedroom or maybe a small 2bedroom), you need about 20,000 BTU's. This is the equivalent of 1.7 tons or 5,861 watts. At $0.15 per kWh, that means it costs $0.88/hour to run your HVAC unit!

Because HVAC units use a lot of energy (particularly when in 'air conditioning' mode during hot summer months) and renters do not have the ability to easily implement energy star (i.e. more efficient) units or to regulate their tempature, I wanted to find a way, without making permanent changes, to control an HVAC unit like a thermostat! Implementing this device can not only save you money, but can help maintain a more steady-temperature in your apartment, reduce energy consumption and help reduce the strain placed on our nations power grid during the hot summer months!

Step 1: Overview of the Product & Parts List

Overview & Parts list:



Electronics Parts List:

1) Two Servo's. I used Hitec HS-311 ( http://www.hitecrcd.com/servos/show?name=HS-311 ) which can be purchased for under $10 per servo. The SparkFun servo ( http://www.sparkfun.com/commerce/product_info.php?products_id=9064 ) should also work.
2) Temperature Probe: http://www.sparkfun.com/commerce/product_info.php?products_id=245
3) Arduino (I used the Duemilanove - http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=50)
4) I used the Adafruit ProtoShield ( http://www.adafruit.com/index.php?main_page=product_info&cPath=17_21&products_id=51 ) but you can also just use a small breadboard ( http://www.sparkfun.com/commerce/product_info.php?products_id=8802 )
5) a 4K7 resistor for the Temperature Probe: http://www.radioshack.com/product/index.jsp?productId=2062346
6) 9V Wall adapter: http://www.adafruit.com/index.php?main_page=product_info&cPath=17_22&products_id=63

Hardware Parts List:
1) I used Aluminum purchased from my local hardware store (Home Depot). The dimensions of the servo bracket are 4" x 1" x 0.25" and the two end-posts are 1" x 0.25" x 0.25". Alternatively, here is a link to purchase this sized piece of aluminum online: http://www.speedymetals.com/pc-2241-8351-14-x-1-6061-t6511-aluminum-extruded.aspx and http://www.speedymetals.com/pc-2494-8378-12-sq-6061-t6511-aluminum-extruded.aspx
2) I used (6) 1/2" 8-32 SHCP (socket head cap screws) and (2) 1" 8-32 SHCP's. I would recommend purchasing these from your local hardware store, but they can also easily be purchased online. Here are the links: 1/2": http://www.use-enco.com/CGI/INSRIT?PMAKA=430-0041 and 1": http://www.use-enco.com/CGI/INSRIT?PMAKA=430-0045.
3) You'll need a tap that matches whatever screws you use in the previous step. Since I used 8-32 screws, I purchased an 8-32 tap. Once again, this can be purchased at your local hardware store but if you wish to order online, here is a link: http://www.use-enco.com/CGI/INSRIT?PMAKA=325-4772
4) A number 29 drill bit (this corresponds to the 8-32 taps; if you use a different size screw & tap, purchase the appropriate drill bit). NOTE: Many hardware stores sell the taps with the drill bits, which will ensure you purchase the right size. Also available here: http://www.use-enco.com/CGI/INSRIT?PMAKA=325-6119

Tools:
1) I used a drill (can be a hand drill or drill press) and a hacksaw.
2) If you'd rather glue the servo's to the aluminum mount (in lieu of drilling and tapping the holes), I would recommend using JBWeld or Gorilla Glue

Arduino Library:
In addition to the servo library (included with the Arduino softwre), you need the OneWire library.
You can read more about the library here (optional): http://www.arduino.cc/playground/Learning/OneWire or just download the library via this link: http://homepage.mac.com/wtpollard/Software/FileSharing7.html

Step 2: Building the Servo Mount & Electrical Schematic

Here's a video overview of how to build the servo mount and the schematics of the electronics. Check out the photo's below for more!

Step 3: Arduino Code

A txt file below contains the Arduino code. You can open this file to view the code and then copy/paste it into your Arduino software to run the program.

Video: A basic and then more-thorough walkthrough of the Arduino code.

Step 4: Debugging and Installing

NOTE: If you rest your arduino on a metal surface, make sure you have some rubber feet on the bottom! Otherwise the solder joints on the bottom of the Arduino will touch the metal which will short the board!



Step 5: Final Thoughts & Future Ideas

Final Thoughts:
Thanks for watching! If you're looking for a great way to save energy, save money and still maintain a comfortable apartment, hopefully you've enjoyed this video. During the hot summer months, peak demand forces additional power plants to be brought online, which are often more expensive plants to run and contribute more pollution to our environment. If you have the ability to upgrade your HVAC system to an energy-star compliant or you can install a "professional" thermostat, please do! But if you live in an apartment building and simply don't have those options, please consider this project for the environment!

Future Ideas:
Once you have the servo's in place, there are some great ways you can expand on this project. Here are just a few:
1) Put the Temperature Sensor on a wire so that it can be strategically placed within the room
2) Add buttons to the Arduino in order to have four modes: Off, A/C, Heat, or Temperature Probe mode (i.e. allows you to force the unit off, into heat or A/C or allows the unit to act according to the temperature probe reading)
3) Use a 7-segment LED or an LCD to display the current temperature
4) Use an Ethernet Shield to enable Internet control or to publish your current temperature (i.e. through twitter). This idea is inspired by Adafruit's "Tweet-a-Watt" ( http://www.adafruit.com/index.php?main_page=index&cPath=32 )
5) Use a third servo for to control the hot/cold potentiometer (note: using three servo's on the arduino requires the use of softwareservo's - see here for more: http://www.arduino.cc/playground/ComponentLib/Servo)
6) Wireless temp probe via Xbee or RF (for RF, see http://www.sparkfun.com/commerce/product_info.php?products_id=8946 and http://www.sparkfun.com/commerce/product_info.php?products_id=8949 )
7) Set temperature threshold ranges at the device using a keypad or a potentiometer
8) Setting the unit to automatically cool the apartment at certain times (i.e. before you arrive home at work) or to go into a "pulse" mode at night, alternating between off & cool in order to keep the apartment cool but not have the AC on all night
9) Use Evil Mad Scientist or ITP Boarduino for a cheaper & smaller unit!
See http://evilmadscience.com/tinykitlist/74-atmegaxx8 for the Evil Mad Scientist Boards which you can purchase as a kit which includes the PCB & ATMEL chip and a 16Mhz crystal & caps for ~$12
Or
Read the NYU ITP tutorial on how to create a breadboard arduino! http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard