//2021230037
//Muhammad Raqhib Hamdi
//Teknologi Informasi
//Universitas Darma Persada
//Kamis 16 Mei 2024
//Lab 7.4
#include <ESP32Servo.h>
#define SERVO_PIN 2
#define RELAY_PIN 26
#define HALOGEN_PIN 4
#define LDR_PIN 34
Servo servoMotor;
void setup() {
pinMode(RELAY_PIN, OUTPUT);
pinMode(HALOGEN_PIN, OUTPUT);
pinMode(LDR_PIN, INPUT);
servoMotor.attach(SERVO_PIN);
Serial.begin(9600);
Serial.println("Greenhouse Control System Initialized");
}
float analogToLux(int analogValue) {
float voltage = analogValue * (3.3 / 4095.0);
float lux = 10000 / voltage;
return lux;
}
void loop() {
int lightIntensity = analogRead(LDR_PIN);
float lux = analogToLux(lightIntensity);
Serial.print("Intensitas Cahaya (Lux): ");
Serial.println(lux);
if (lux >= 3170 && lux <= 6700) {
servoMotor.write(0);
digitalWrite(RELAY_PIN, LOW);
digitalWrite(HALOGEN_PIN, LOW);
Serial.println("Roof Dibuka. UV Lampu Mati. Halogen Lampu Mati.");
} else if (lux > 6700) {
servoMotor.write(90);
digitalWrite(RELAY_PIN, HIGH);
digitalWrite(HALOGEN_PIN, LOW);
Serial.println("Roof Ditutup. UV Lampu Menyala. Halogen Lampu Mati.");
} else {
servoMotor.write(0);
digitalWrite(RELAY_PIN, LOW);
digitalWrite(HALOGEN_PIN, HIGH);
Serial.println("Roof Dibuka. UV Lampu off. Halogen Lampu Menyala.");
}
delay(1000);
}