//Automatic LED using ESP32 dan LDR
//By Sugiyanto
int ldrPin = 33; // LDR pin, seperti digambar, memakai
int ledPin = 16; // Build in LED pin
// Setting LDR properties. Nilainya tergantung LDR yang dipakai.
const float GAMMA = 0.7;
const float RL10 = 50;
void setup() {
Serial.begin(115200); // Initialise the serial monitor
pinMode(ledPin, OUTPUT); // Set LED pin sebagai output
}
void loop() {
//Menghitung lux cahaya dari angka LDR
int ldrVal = analogRead(ldrPin); // membaca analog value dari LDR
float voltage = ldrVal / 4095. * 5; // angka LDR berkisar 0-4095, dengan memakai 5V
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
//Untuk debugging
Serial.print("Lux Value = ");
Serial.print(lux ); // Print nilai lux
//Menghidupkan atau mematikan LED
if (lux <1000) { // Jika lux < 1000, maka akan menyalakan lampu
digitalWrite(ledPin, HIGH); // Menyalakan LED
Serial.print(" Menyalakan Lampu");
} else {
digitalWrite(ledPin, LOW); // Mematikan LED
Serial.print(" Mematikan Lampu");
}
delay(1000); // Delay setiap 1 detik
Serial.println();
}