Project Sederhana On/Off LED berdasar Nilai LDR dengan NodeMCU

LDR (Light Dependant Resistor) adalah adalah salah satu jenis sensor cahaya dengan output berupa nilai resistansi. Semakin banyak intensitas cahaya yang diterima semakin kecil nilai resistansinya. Namun jika intensitas cahaya yang diterima sedikit nilai resistansinya akan semakin besar. Tampilan sensor cahaya LDR di pasaran dapat dilihat pada gambar di bawah. Harganya pun relatif murah berkisar 1.000-2.000 rupiah tergantung dari dimensi dan nilai resistansinya.

Pada tutorial kali ini kita akan mencoba memanfaatkan sensor LDR ini sebagai trigger untuk menghidupkan atau mematikan LED setelah mencapai nilai tertentu. Sebagai pelengkap, nilai output LDR dan status LED akan ditampilkan dalam LCD 2004 sehingga kita dapat menganalisa apakah sistem sudah berjalan dengan baik atau belum. Sedangkan controller yang akan kita gunakan adalah NodeMCU yang berbasis mikrokontroller ESP8266 khususnya tipe ESP-12E. Let’s chek it out …

Alat dan Bahan Percobaan LDR NodeMCU LCD 2004

  1. NodeMcu
  2. Sensor LDR
  3. Resistor 220 Ω
  4. Resistor 10K Ω
  5. LCD 20×4 (dengan modul backpack I2C)
  6. Kabel jumper male-female dan female-female secukupnya

Gambar Rangkaian LDR NodeMCU LCD 20×4

Susun bahan/komponen di atas sperti pada gambar di bawah ini:

Contoh Program LDR NodeMCU LCD2004

Selanjutnya buka software Arduino IDE Anda kemudian copy contoh program  sebagai berikut :

#include <Wire.h>              // Memanggil library wire.h
#include <LiquidCrystal_I2C.h> // Memanggil library LCD dengan I2C
LiquidCrystal_I2C lcd(0x27, 20, 4); // Alamat I2C(0x27) LCD dan Jenis LCD (20x4)
#define ldr A0                 // Deklarasi LDR pada pin A0
#define led D5                 // Deklarasi LED pada pin D5 NodeMcu

int nilai;                     // Variabel nilai

void setup() {
  pinMode(led, OUTPUT);   // Deklarasi LED sebagai Output
  pinMode(ldr, INPUT);    // Deklarasi LDR sebagai Input
  Serial.begin(9600);     // Baud komunikasi serial pada 9600
  lcd.init();             // instruksi untuk memulai LCD
  lcd.begin(20,4);        // instruksi untuk menggunakan lcd 20x4
  lcd.backlight();        // instruksi untuk mengaktifkan lampu latar LCD
}

void loop() {
  nilai = analogRead(ldr);     // Instruksi membaca nilai analog LDR
  Serial.print("Nilai LDR: "); // Menampilkan Nilai analog LDR pada Serial Monitor
  Serial.println(nilai);
  delay(1000);

  lcd.setCursor(4, 0);         // Menampilkan nilai analog pada LCD 20x4
  lcd.print("Tutorial LDR");
  lcd.setCursor(3, 1);
  lcd.print("Dengan LCD 20x4");
  lcd.setCursor(0, 2);
  lcd.print("Nilai Analog: ");
  lcd.print(nilai);
  delay(1000);   

  if (nilai < 800) {          // LED On jika nilai analog lebih kecil dari 800
    digitalWrite(led, HIGH);  // Instruksi menyalakan LED
    Serial.print("LED ON");
    lcd.setCursor(0,3);
    lcd.print("LED         : ON ");
  }
  else {
    digitalWrite(led, LOW);  // LED Off ika nilai analog lebih besar dari 900
    Serial.print("LED OFF"); // Instruksi mematikan LED
    lcd.setCursor(0,3);
    lcd.print("LED         : OFF ");
  }
}

Hasil Percobaan LDR NodeMCU LCD

Unggah contoh program di atas dengan menekan tombol upload (atau tombol CTRL+U di keyboard), dan pastikan pengaturan board di menu Tools-Board adalah NodeMCU 1.0 (ESP-12E Module) . Kemudian aktifkan tools ‘Serial Monitor’ di Arduino IDE melalui menu Tools-Serial Monitor. Pastikan kabel USB antara laptop dan Arduino tetap terpasang dan COM port sudah benar. Setelah program selesai diunggah coba perhatikan nilai analog pada serial monitor, LCD 20×4 serta kondisi LED

Hasil percobaan saat LDR tidak mendapat intensitas cahaya
Hasil percobaan saat LDR mendapat intensitas cahaya

Perhatikan pada gambar dan source code di atas. Terlihat bahwa saat nilai analog LDR diangka 600 (tidak mendapat intensitas cahaya) maka LED aktif dan saat nilai analog LDR lebih besar dari 800 (mendapat intensitas cahya) maka LED akan OFF. Hal ini sesuai dengan instruksi pada baris 33-44.

Untuk nilai threshold ‘800’ dapat Anda tentukan sendiri berdasar hasil percobaan.

Demikian sedikit tutorial mengenai cara menghidupkan/mematikan LED berdasarkan nilai LDR menggunakan NodeMCU, semoga dapat menjadi inspirasi ide-ide besar Anda. Sebagai referensi, LED dalam percobaan di atas dapat dengan mudah digantikan dengan relay atau SSR sehingga dapat mengendalikan beban yang lebih besar, Selamat mecoba

Leave a Reply