I was supporting a group of student on their graduation project. One of the difficulties they faced was on controlling an A/C unit with Arduino microcontroller.
The first experiment we tried to work it out was by record the A/C remote control beam signal for each needed button by using the IRrecvDump code with IRremote library for Arduino (https://github.com/shirriff/Arduino-IRremote). Then, use these signals to send it to the A/C unit directly. The main problem we faced was on analyzing the ON/OFF signal code. The ON/OFF signal code curries more than one signal code. This includes switch signal + fan speed + thermostat degree. Some times this could include the conditioning mode, as well, such as Dray, Cool, Fan etc. Basically, this was unsuccessful method to work with all A/C remote controls.
The second experiment was by hacking the remote control by adding a sort of wires then attached to Arduino over a relay. Modern remote controls are quite sophisticated and not easy to hack. One mistake in soldering could cause fail of that remote. So, it was too risky to hack and modify the original A/C remote control. However, we did some soldering test on unused remote control until we succeed. Then we wire it up to a number of relay module to control it with Arduino. But relay is quite expensive so that we needed to do a cheap hack without spending much money. Also we want to use less wires to be attached to Arduino to get extra space to add more features.
After first and second experiments we come up with a successful way to control the A/C unit. In this experiment, we got rid of using relay also we didn’t need to risk our original remote control. So that, we put our hand on a Universal A/C remote control. Then do some hack to that remote to control the A/C through Arduino interface. This will give us a chance to control different type of A/C. The one we hacked is capable to control 1000 A/C manufacturer type.
Step 1: Gathering tools
First of all, you will need to prepare some tools. I’m using:
* Clamps and holders: this helps me to hold the circuit board while soldering.
* Soldering iron set.
* pliers (long & cutter).
* Scalpel blade: I use it to unseal the protective layer over the copper in the A/C remote control, to make it easy to solder a wire to it.
* Jumper wires: a suitable one to connected to Arduino board.
* resistors: I’m using 22K to protect the NPN transistor from overheating and/or damage.
* NPN transistors: any kind of NPN. Use the multimeter to figure out the E B C pins.
* Pins strip & its headers: those are goes to the base and remote control for the interaction.
* Multimeter: I use it for double check the wiring and for finding the NPN transistor pins.
* PCB board: I’m using stripboard type. It is easy to deal with, also, less soldering.
* Marker pen: It used to identify parts on circuit board.
* Drill set with its attachment: I use it for drilling hols into PCB boards. Also for cutting the back cover of the remote control for header pins.
* Drill holder (optional).
* Some screwdriver: for removing the remote control back cover. I’m using a plastic tool kit (that uses with mobile phones), it leaves no scratch on the remote body.
* Tape: I use it for holding the remote control LCD screen and protect it.
* A soft sponge tape: I use it to protect the back of the board base from any direct contact. Also for leveling remote on base.
Step 2: Open the remote control & locate buttons line
This is a bit tricky step. First you have to use a screwdriver (screwdriver plastic) to open the remote control chest. Then, you will need to identify both lines for each button.
Some remote controls has a common line for all buttons (see this http://tronixstuff.files.wordpress.com/2011/04/remotepcbss.jpg). This is too easy to hack.
Mostly, modern remote controllers has complicated set of lines. Which could has a shared line that can be common and main (signal) sequentially with each other.
In this step, I identified each combined line with different colors.
From the picture, you will notice that each button has two different colors (e.g. to press on ON/OFF button we have to contact the Red & purple lines).
Also, because I’m using this remote with Arduino, I discard the use of the buttons on bottom, which they set the timing and manage the Air Conditioner to start or stop on a specified time. As this can be easily programmed with Arduino it self. These buttons are identified with color GRAY, which is the common line. So I didn’t take it into account.
The final colors combination are PURPLE, RED, BROWN, GREEN, BLUE and YELLOW.
Next step, we will included the header pins to the A/C remote control board.
NOTE THAT YOU CAN USE ANY UNUSED PLASTIC BUSINESS CARD TO OPEN THE REMOTE CHEST SAFELY.
Step 3: Drilling & Soldering
In this step, you need to locate a perfect spot for adding the header pins. Also you have to notice where it should be go through the back cover of the remote control.
I located this spot because it is easy to reach most lines.
In addition, add some tape to the LCD screen to hold it and protect it while soldering and drilling.
* Use the marker pen to locate holes for the header pins.
* Double check that pins are goes fine every time you make a hole.
* Putting a tape shows how the header looks like before you carry on.
* After checking that it fit nicely, make sure there is nothing on the way that can be stuck from both side of the board.
* You have to use a scalpel to remove the layer over the copper in front of the selected pins.
* Start to bend some pins to make a direct contact with lines. Then apply some solder.
* In some case, you will need to use a tiny wire (like those on headphone cable) as bridge.
* For those away lines, try and drill hols next to selected pins and so for lines.
* Apply some glue to hold the header pins from move or broke.