//Tantangan Modul 4 (SUHINAR)
//Membuat monitoring nilai LUX dari LDR
//Sensor. Jika setting LDR bernilai 10 Lux, maka di
//Serial Monitor juga 10 Lux. Berlaku untuk seluruh nilai Lux.
//================================================================

const int pinSensor = A0;
const int pinLED = 23;
// Karakteristik LDR (datasheet)
const float GAMMA = 0.7;
const float RL10 = 50;

void setup()
{
// inisiasi Serial comm dengan baudrate 115200
Serial.begin(115200);
pinMode(pinLED, OUTPUT);
pinMode(pinSensor, INPUT);
}
void loop()
{
// Convert the analog value into lux value:
int analogValue = analogRead(pinSensor);
float voltage = analogValue / 4095. * 5; //4095 = max ADC esp32
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
// akuisisi nilai lux sensor LDR
Serial.print(lux);
Serial.println(" lux");
if (lux > 50){
Serial.println("NIGHT");
digitalWrite(pinLED, HIGH);
} 
else {
Serial.println("DAY");
digitalWrite(pinLED, LOW);
}
delay(1000);
}