//Betari Indrianing Sugiarto
//2019230015
//Prak 7.4
//Sabtu, 12 Nov 2022
#include <ESP32Servo.h>
#define pinRelay 15
const float GAMMA = 0.7;
const float RL10 = 50;
int LED = 33;
int LDR = 25;
Servo myservo;
int pos = 90;
void setup() {
Serial.begin(115200);
myservo.attach(2);
pinMode(LED, OUTPUT);
pinMode(pinRelay, OUTPUT);
}
void loop() {
int analogValue = analogRead(LDR);
float voltage = analogValue * 5/4095.0;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
if (lux >= 100 && lux < 6700){
digitalWrite(pinRelay, LOW);
digitalWrite(LED, LOW);
Serial.print("Lux: ");
Serial.println(lux);
Serial.print("Pagi Hari, ");
Serial.println("Membuka Pintu");
Serial.print("Mematikan Semua Lampu \n");
for (pos = 90; pos >= 0; pos -= 1) {
// in steps of 1 degree
myservo.write(pos);
delay(15);
}
}
else if (lux > 6700){
digitalWrite(pinRelay, HIGH);
digitalWrite(LED, LOW);
Serial.print("Lux: ");
Serial.println(lux);
Serial.print("Terlalu Panas, ");
Serial.println("Menutup Pintu");
Serial.print("Menyalakan Lampu Ultraviolet \n");
for (pos = 0; pos <= 90; pos += 1) {
// in steps of 1 degree
myservo.write(pos);
delay(15);
}
}
else if (lux < 100) {
digitalWrite(pinRelay, LOW);
digitalWrite(LED, HIGH);
Serial.print("Lux: ");
Serial.println(lux);
Serial.print("Malam Hari, ");
Serial.println("Membuka Pintu");
Serial.print("Menyalakan Lampu Halogen \n");
for (pos = 90; pos >= 0; pos -= 1) {
// in steps of 1 degree
myservo.write(pos);
delay(15);
}
}
delay(100);
}