Contents
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
- NodeMcu
- Sensor LDR
- Resistor 220 Ω
- Resistor 10K Ω
- LCD 20×4 (dengan modul backpack I2C)
- 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


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
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com