Kali ini saya akan memberikan tutorial tentang cara atau bagaimana membuat sebuah smart tv dengan arduino yang di kontrol dengan perintah suara atau voice recognition di aplikasi android. yang fungsimya bisa sebagai on/off tv, ganti channel dll. disesuaikan dengan kebutuhan anda saja. pada percobaan ini menggunakan koneksi bluetooth yang menghubungkan arduino & smartphone android. video percobaan dapat dilihat pada video berikut.
Alat - alat yang digunakan :
- Arduino
- IR transmitter
- IR reciver
- Bluetooth HC05 / HC06
- Breadboard
- Jumper Kabel
Skema :
HC05 ---- Arduino
VCC ---- 5v
GND ---- GND
RX ---- TX
TX ---- RX
Ir Transmitter ---- Arduino
Signal ----- D3
GND ----- GND
VCC ---- VCC
Ir Reciver ---- Arduino
Signal ---- D11
GND ---- GND
VCC ---- VCC
Langkah awal download library IrRemote disini kemudian import ke arduino IDE. selanjutnya anda perlu melakukan decode remote kontrol tv tersebut, dengan cara upload sketch dibawah ini ke arduino anda.
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
}
void dump(decode_results *results) {
int count = results->rawlen;
if (results->decode_type == UNKNOWN) {
Serial.print("Unknown encoding: ");
}
else if (results->decode_type == NEC) {
Serial.print("Decoded NEC: ");
}
else if (results->decode_type == SONY) {
Serial.print("Decoded SONY: ");
}
else if (results->decode_type == RC5) {
Serial.print("Decoded RC5: ");
}
else if (results->decode_type == RC6) {
Serial.print("Decoded RC6: ");
}
else if (results->decode_type == PANASONIC) {
Serial.print("Decoded PANASONIC - Address: ");
Serial.print(results->address, HEX);
Serial.print(" Value: ");
}
else if (results->decode_type == LG) {
Serial.print("Decoded LG: ");
}
else if (results->decode_type == JVC) {
Serial.print("Decoded JVC: ");
}
else if (results->decode_type == AIWA_RC_T501) {
Serial.print("Decoded AIWA RC T501: ");
}
else if (results->decode_type == WHYNTER) {
Serial.print("Decoded Whynter: ");
}
Serial.print(results->value, HEX);
Serial.print(" (");
Serial.print(results->bits, DEC);
Serial.println(" bits)");
Serial.print("Raw (");
Serial.print(count, DEC);
Serial.print("): ");
for (int i = 1; i < count; i++) {
if (i & 1) {
Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
}
else {
Serial.write('-');
Serial.print((unsigned long) results->rawbuf[i]*USECPERTICK, DEC);
}
Serial.print(" ");
}
Serial.println();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
dump(&results);
irrecv.resume();
}
}
Selanjutnya buka serial monitor pada Arduino IDE set baudrate pada serial monitor anda menjadi 9600. kemudian lakukan decode pada remote tv tersebut misalkan menekan tombol on/off pada remote.
Lakukan decode untuk semua siaran tv dan fungsi yang anda perlukan misalkan channel 30
Setelah selesai, upload sketch berikut ini ke arduino anda.
#include <IRremote.h>Selanjutnya login ke akun app inventor anda, kemudian susun design dan blocknya seperti pada gambar berikut :
char val;
IRsend irsend;
void setup()
{
Serial.begin(9600);
}
void loop() {
if(Serial.available()>0){
val = Serial.read();
Serial.println(val);
if (val == 'a') //jika terdapat data 'a' pada serial yang dikirim dari android
{
irsend.sendNEC(0xFAA847B, 32); //send ON/OFF TV
}
else if(val=='b')//jika terdapat data 'b' pada serial yang dikirim dari android
{
irsend.sendNEC(0xFAAC837, 32); //send angka 3
delay(400);//delay 4ms
irsend.sendNEC(0xFAA08F7, 32);//send angka 0
delay(4000);//delay 4 detik
}
/*
* Percobaan menyalakan TV dan mengirim sinyal channel 30 pada TV
* sesuaikan dengan type remote, misalkan menggunakan sony
maka typenya menjadi "sendSony"
* tambahkan "0x" pada hasil decode.
*/
}
}
2 komentar
nice info, terimakasih banyak
https://www.ribkahaprilia.com/2019/12/event-report-3rd-anniversary-surabaya-beauty-blogger.html?showComment=1645505963170#c3799263017969751920v