Pendahuluan
Tutorial ini akan membahas cara mengontrol lampu rumah 220V menggunakan IR (Infrared) Receiver dengan Arduino UNO. Dengan proyek ini, Kita dapat membuat sistem kontrol perangkat elektronik menggunakan remote kontrol inframerah.
Komponen Yang Digunakan
Berikut adalah daftar komponen yang digunakan dalam proyek ini beserta link pembelian di Golite Store:
- Arduino UNO – Beli Disini
- IR Receiver Module – Beli Disini
- Relay Module 1 Channel – Beli Disini
- Remote Kontrol Inframerah – Beli Disini
- Kabel Jumper – Beli Disini
Skema Sistem

Konfigurasi pinout:
- Arduino UNO -> IR Receiver Module
- 5V -> VCC
- GND -> GND
- D2 -> Signal
- Arduino UNO -> Relay Module
- 5V -> VCC
- GND -> GND
- D8 -> Signal
- Relay Module -> Lampu 220V
- Dihubungkan dengan cara di seri pada terminal COM dan NO
Untuk power dan IR Reciver dan Relay adalah 5v , maka dari itu kita dapat hubungkan VCC(pin no 3) dan GND (pin no 2) pada IR Receiver ke 5V dan GND pada arduino, dan untu sinyal (pin no 1) IR Receiver kita hubungkan pada pin no 2, Sedangkan untuk relay sendiri VCC dan GND kita hubungkan ke 5V dan GND , untuk IN nya kita hubungkan ke pin no 8. dan yang terakhir untuk lampu dan relaynya kita dapat hubungkan secara seri ke pin COM dan NO pada terminal relay
Program Arduino
#include <IRremote.h> #define lamp 8 #define ir_receiver 2 IRrecv irrecv(ir_receiver); decode_results results; bool lamp_state = 1; String ir_trigger = "xxxxx"; void setup() { Serial.begin(9600); irrecv.enableIRIn(); irrecv.blink13(true); pinMode(lamp, OUTPUT); digitalWrite(lamp, lamp_state); } void loop() { if (irrecv.decode(&results)) { String data = String(results.value, HEX); data.trim(); Serial.println("Data Remote : " + data); if (data == ir_trigger) { lamp_state = !lamp_state; digitalWrite(lamp, lamp_state); Serial.println("Lamp State : " + String (lamp_state)); delay(1000); } irrecv.resume(); } delay(100); }
Penjelasan Program
- Include Library: Program ini menggunakan library
IRremote
untuk membaca sinyal dari IR Receiver. Library ini harus diinstal terlebih dahulu sebelum menggunakan program. Download Library Disini - Deklarasi Variabel Global: Variabel
IRpin
danrelayPin
dideklarasikan sebagai variabel global pada pin 11 dan 8.IRpin
menunjukkan pin tempat IR Receiver terhubung, sedangkanrelayPin
menunjukkan pin tempat Relay Module terhubung. sedangkanir_trigger
Merupakan Variabel string yang menyimpan kode IR yang akan digunakan sebagai pemicu untuk mengubah status lampu - Setup Function:
IRrecv irrecv(IRpin);
: Membuat objekirrecv
dari kelasIRrecv
untuk menerima sinyal IR pada pin yang ditentukan (IRpin
).decode_results results;
: Membuat objekresults
dari kelasdecode_results
untuk menyimpan hasil dekode IR.Serial.begin(9600);
: Menginisialisasi komunikasi serial dengan kecepatan baud 9600 untuk berkomunikasi dengan Serial Monitor.irrecv.enableIRIn();
: Mengaktifkan IR Receiver untuk mulai menerima sinyal IR.pinMode(relayPin, OUTPUT);
: Menetapkan pinrelayPin
sebagai output untuk mengendalikan Relay Module.
- Loop Function:
if (irrecv.decode(&results))
: Mengecek apakah IR Receiver telah mendeteksi sinyal IR. Jika ya, maka masuk ke dalam blok kondisional.Serial.println(results.value, HEX);
: Mencetak nilai hasil dekode IR dalam format heksadesimal ke Serial Monitor untuk tujuan debugging atau pemantauan.if (results.value == 0xFFA25D) { ... }
: Kondisi untuk memeriksa nilai hasil dekode IR. Dalam contoh ini, jika nilai sama dengan 0xFFA25D (contoh kode IR), maka masuk ke dalam blok kondisional.digitalWrite(relayPin, HIGH);
: Mengaktifkan relay dengan menetapkan pinrelayPin
ke tingkat tegangan tinggi (HIGH).delay(1000);
: Memberikan keterlambatan selama 1000 milidetik atau 1 detik.digitalWrite(relayPin, LOW);
: Mematikan relay dengan menetapkan pinrelayPin
ke tingkat tegangan rendah (LOW).irrecv.resume();
: Melanjutkan untuk menerima sinyal IR berikutnya setelah menyelesaikan pemrosesan sinyal sebelumnya.
Pengujian
Untuk pengujian pertama kita harus tahu terlebih dahulu data atau nilai hex pada masing masing tombol di remote controlnya pada serial monitor, berikut adalah contoh hasil pengujian tombol tersebut
Setelah itu kita bisa ambil salah satu data dari tombol tesebut untuk di masukan pada variable ir_trigger
untuk dapat mengontrol relay lampunya. Sebagai contoh disini kita menggunakan data tombol ini “6a68351e”
String ir_trigger = "6a68351e";
Setelah itu kita bisa lakukan upload program lagi, bisa dilihat dengan menggunakan tombol tersebut kita dapat mengubah “Lamp Satate” dari 0 menjadi 1 atau sebalikan, State tersebutlah yang kita gunakan untuk mentrigger relay
Disini saya menggunakan tombol power pada remote TV untuk menghidupkan dan mematikan lampu, tekan sekali untuk menghidupkan dan tekan lagi untuk mematikan.
Kesimpulan
Dengan mengikuti tutorial ini, Kita telah berhasil membuat sistem kontrol relay menggunakan IR Receiver dengan Arduino UNO. Proyek ini dapat diperluas untuk mengontrol perangkat elektronik lainnya. Kesimpulan dari proyek ini adalah penerapan kontrol jarak jauh yang dapat diintegrasikan dengan berbagai perangkat. Proyek dapat diperbarui dengan menambahkan fitur-fitur lebih lanjut untuk meningkatkan kompleksitas dan fungsionalitasnya.