My goal is to make my window AC units more functional. Currently they use an on-board thermostat to turn on when the room gets above a certain temperature ('duh). I feel like there is a lot I can do to improve on both the efficiency (less electricity usage) and performance (cooler house throughout the day).
I'm going to break this out into phases and post my progress along the way. I plan on incorporating this into a current Home Automation project I'm working on, so when I have the final version I will create a new project with start to finish build instructions.
Control the existing remote with an Arduino (or ATtiny85). I just want to build a platform that I can add additional sensors and communication abilities to.
I took apart the remote and it looks easy enough to hack. It's powered by two AA batteries in series (3vDC) and the buttons each have their own through holes on the PCB. I used an L78L33 voltage regulator to drop the USB 5v to 3.3v for the remote power (it gets really hot, so I'll be replacing that in the next phase). The brain is an ATtiny85 with pin6 driving an S8050 PNP transistor to open/close the circuit for the Air Conditioner power button on the remote. Right now it's just sending the IR power signal every 30 seconds as a test.
I also added a DHT11 temperature/humidity sensor and adapted my AV Cabinet Fan Controller code to work as a simple thermostat from across the room.
I have the arduino closing the connections for the tempup and tempdown buttons on the remote to put the thermostat at the min or max setting. The AC unit is always powered on, but by adjusting the thermostat I can make the compressor and fan kick on while letting it use the built in cooldown settings. On standby the unit pulls less than 2 watts.
I would rather not rely on the physical remote to turn on/off the AC unit so the next step is to emulate the IR signal using just an Arduino Nano. I followed the IR tutorial from Lady Ada to get the raw IR signal from the remote and use those to drive an IR LED directly, emulating the signal from the remote.
One hurdle I had was simulating a long press using the IR signal since my AC unit beeps each time a button is pressed. I did this using a "for" loop in the Arduino sketch but the delay required a bit of trial and error, so I used my IR receiver/blaster test board to try several different configurations.
Now that the we have a stand alone 'dumb' temp controller, I need to give this some real intelligence. By adding an ESP8266 I can remotely control this from my phone and send the current temperature to thingspeak.com or my central home automation server to be logged and graphed.
My home automation project pulls weather data from the wunderground API to work out the most efficient time to kick on the AC based on the hourly heat forecast for the day. It is also being integrated with my SmartThings and Frontpoint systems to know who is home, if there are any windows open, and which rooms are occupied. HAI can use all of this data to manually override the thermostat and turn on or off the AC through this connected IR controller.
I'm building more WiFi temperature sensors to collect temps and humidity in other rooms in the house. This will be logged directly to HAI so she can use that data to control vent ducts that direct airflow from our central heater to specific zones of the house during winter.