In everybody life, everybody encounters a lot of different IR remotes, but it sometimes get frustrating pointing the remote in the right direction, or the DVR doesn't play when you want it to. I came up with the idea to make a kind of repeater which is controlled by an iPhone, over BLE. Then, it communicates with an Arduino to play IR codes from memory, controlling a device. I did a quick Google Search to see there were a few projects like this, but none of them were compatible with iOS, only Android. Though it only holds 4 codes, I plan to expand it in future.
This project also has many advantages:
1. No code changing required - plug the device into your PC and use the java program's GUI to record and ername your device.
2. For those iOS users, it is currently the only option. This app can easily be ported to Android because it uses BLE (4.0), which is also compatible with Android.
3. Handles any IR code that I've tested.
Step 1: Materials
1 x Arduino Uno
1 x 38 Khz IR reciever
1 x IR LED
1 x 100 Ohm Resistor
1 x HM-10 BLE module
For the BLE module, you can use the one I used, which I would not recommend, or follow this Instructable.
Step 2: The Connections and Circut
You can either do this on a breadboard, or on a perfboard because there really isn't much circuitry. Follow this circuit from Ken Sherriff's website. Use these connections:
HM-10 VCC - 3.3v
HM-10 GND - GND
HM-10 TX - Pin 6
HM-10 RX- Pin 7
I the HM-10 is 3.3v, but it never has any problems with the 5v RX and TX.
Step 3: The IOS App
I have uploaded the XCode Project onto Instructables (see the uploaded section), if you are not sure how to compile and run it on on your phone, see the XCode instructions on Apple's website. I modified Ray Wenderlich code from here. If you are not using the HM-10, in the code, you will need to modify the UUIDs as your datasheet says.
Step 4: Arduino Code
Step 5: Java Program
For making the device easier to program, I created a Java which handles changing the BLE advertising name and reprogramming the codes stored on the device.
Please Note: This is compiled for 64 bit windows. For other versions, download RXTX from their website. You should be able to replace the .dll files and.jar file to fit your computer. I do not have a 32 bit computer, so I cannot check this.
Step 6: Position Your Device
Position your device so that the LED faces your IR controlled device's receiver. In the example above, it is sitting facing an Apple TV. To set it up, connect the arduino to your computer, run the .jar, follow the setup, and use the app to control the Arduino!