Aergia: Android controlled TV Remote(with Speech Recognition) using Arduino
Have you ever faced this situation while sitting on your favorite spot on the couch or recliner, comfortably watching your favorite TV program? You’re snugly tucked under the blanket, the air conditioning is pleasantly cool, the sun outside is shining it’s delicate warm golden rays on the closed window, the air (from the air vents) is refreshing and gravity seems infinite…… It’s almost like nature doesn’t want you to get off your couch…….
Then all of a sudden a horrible commercial pops up on the TV and you desire to switch the channel immediately. However, the TV remote which is located just beyond your arm’s length seems to be many miles away and you do not have the energy nor the will power to reach for it. You then look with disappointment at your aging Android phone which is near you and hope that you could use it to control your TV. If you’re like me, then you’re faced with this situation quite often……… in fact EVERYDAY!
As a solution to this quite serious problem, I have devised ‘Aergia’ (named after the Greek goddess of laziness and sloth), a gadget which with the help of an Android phone can control my TV, set top box, stereo or any other device which uses an IR remote. Besides, this device can be built at a cost of just $20 and the skills required to build it are bare minimum (basic knowledge about electronics and the Arduino IDE).
So let’s get lazing……. I mean building!
Step 1: Parts Needed
The following parts are needed to build this project :-
1. Arduino Uno
2. Bluetooth Module (I have used the HC-05)
3. IR LED
4. IR Receiver
5. Resistors (1pc 100 ohms, 1pc 10K ohms and 1pc 20K ohm)
7. Electrical Wire
8. 9v Battery
9. 9v Battery Snap
10. Male Header Pins (both straight and bent)
11. Steel Wire
12. Insulation Tape
13. Heat Shrink
14. Project Enclosure
1. Soldering Wire
2. Soldering Iron
3. Soldering Wax
Step 2: Preparing the Project Enclosure
In this step you will drill the holes on the project enclosure to mount the Arduino, IR LED and IR Receiver.
A lot of the auto-makers these days follow a design language. For instance, the Lincolns which look like a baleen whale, and the BMWs which look like a daredevil pig hat has smashed its nose against a wall. I too follow a design language in my projects which I call the ‘Lunch Box’ Design. I have carried forward the same design language to this instructable as well and hence used a ‘Lunch Box’ as my project enclosure.
1. Drill four holes at the bottom of the project enclosure to secure the Arduino Uno.
2. Drill a hole on the left wall of the enclosure big enough for the USB port of the Arduino to protrude out of the enclosure (Refer to pic. 1).
3. Drill a hole on the right wall for the IR Receiver (Refer to pic. 2).
4. Drill four holes on the right wall for the IR LED stem. Two of the drilled holes are for the IR LED, while the other two are to anchor the IR LED Stem to the project enclosure (Refer to pic. 2).
Step 3: Power Supply Circuit
The Arduino Uno used in this project is powered by a 9v battery. The Arduino has an on board regulator which can receive an input voltage within the range of 6v – 20v. Due to this, we do not need any additional circuit to regulate the input voltage to the Arduino when connected to a 9v battery.
1. Solder the bent Male Header Pins to the two wires of the 9v battery snap.
2. Cover the soldered points on the wire with insulation tape or heat shrink. The header pins soldered to the battery snap must look like pic. 2.
You are now done with the power supply circuit for the Arduino.
Step 4: IR Receiver Circuit
The IR Receiver is used to detect and decode the IR pulses sent from the TV remote. The decoded IR signals are then stored in the Arduino Uno.
1. Carefully bend the three leads of the IR Receiver backwards at a right (90 degrees) angle (Refer to pic. 2 and pic. 3).
2. Solder three wires to the leads of the IR Receiver. Ensure that you insulate each of the leads of the IR Receiver so that there no possibility of the pins shorting in case they come in contact with each other (Refer to pic. 4).
3. Solder the bent Male Header Pins to the other end of the wires. The completed circuit must look like pic. 1.
Step 5: Bluetooth Transceiver – Part 1: Bluetooth Module
The Bluetooth Module enables the Arduino to connect and communicate wirelessly with the Android phone. I strongly suggest to purchase a Bluetooth Module which is soldered to a breakout board. Purchasing only the Bluetooth Module without the breakout board means that you will have to do the tricky soldering part which could damage the module if it is not done witht the right tools. If you have only purchased the Bluetooth Module, visit Step 4 of this instructable for details about the soldering.
If you have purchased the Bluetooth Module with the breakout board but do not have the Female Header Pins to connect to the module, then you can use the following Top Tip: Briefly heat the ends of the wire over a candle to partially melt and loosen up the insulation on the wire. Then force each of the wires into the Vcc, Gnd , Tx and Rx pins of the Bluetooth Module.
Connect the Female Header Pins to the Vcc, Gnd , Tx and Rx pins of the Bluetooth Module.
Step 6: Bluetooth Transceiver – Part 2: Level Shifter Circuit
The Arduino Uno has a serial input/output of 5v through its pins, whereas the Bluetooth Module operates at 3.3v logic. Due to this, a voltage divider circuit ( level shifter ) is required to convert this 5v output to 3.3v.
1. Cut a small piece of PCB and solder two Male Header Pins (Straight) to it. Refer to pic. 2
2. Solder the 10K ohms and 20K ohms resistors according to the circuit diagram in pic.5
3. The final completed circuit should look like one in pic. 4
You have now completed the Bluetooth Transceiver.
We recommend EasyEDA for electronic circuit design.
From Schematic to PCB Production, Just Need One Tool
Free Circuit Design Software: learn to use Editor quickly and easily
Cheapest PCB: 10pcs 2-layers 10cm×10cm only $8.21, 3-day build time, 100% E-test
This Post / Project can also be found using search terms:
- arduino speech to text