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
* 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.