#include "DHTesp.h"
#include "Servo.h"
#define PIN_WATERPUMP 4
#define PIN_LDR 35
String pump;
int ldr = 0; const float GAMMA = 0.7; const float RL10 = 50; float voltage, resistance, lux; int adcValue = 0;
int temp = 0;
int hum = 0;
const int DHT_PIN = 15;
const int BUZZER = 18;
const int servoPin = 2;
DHTesp dhtSensor;
Servo servo;
void setup() {
Serial.begin(115200);
pinMode(BUZZER, OUTPUT);//buzzer
pinMode(5,OUTPUT);//led merah
pinMode(4,OUTPUT);//pump
pinMode(35, INPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
servo.attach(servoPin);
}
void loop() {
adcValue = analogRead(PIN_LDR); // Baca Tegangan Analog Sensor LDR
voltage = adcValue * 5/4095.0; // ESP bit=12 -> 4095, 5=Tegangan Referensi
resistance = 2000 * voltage / (1 - voltage / 5); // Rumus Resistansi Cahaya
ldr = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA)); // Rumus Intensitas Cahaya
temp = dhtSensor.getTemperature(); // ekstrak data temperature
hum = dhtSensor.getHumidity(); // ekstrak data humidity
Serial.println("=========================================");
Serial.println("Suhu Udara: "+String(temp)+"°C");
Serial.println("Kelembaban Udara: "+String(hum)+"%");
Serial.println("Intensitas Cahaya: "+String(ldr)+"lux");
delay(1000);
if (temp < 20){
if (hum > 60) {
Serial.println("AMAN");
digitalWrite(5, LOW);
digitalWrite(4, LOW);
pump = "OFF";
noTone(BUZZER);
// servo.write(0);
}
}
else if (temp > 32){
if (hum < 60) {
Serial.println("BAHAYA API!!!");
digitalWrite(5, HIGH);
Serial.println("MENYEMPROTKAN FOAM.....");
digitalWrite(19, HIGH);
digitalWrite(4, HIGH);
pump = "ON";
tone(BUZZER, 165);
// servo.write(90);
}
}
if (ldr < 200) {
Serial.println("AMAN");
digitalWrite(5, LOW);
digitalWrite(4, LOW);
pump = "OFF";
noTone(BUZZER);
// servo.write(0);
}
else if (ldr > 600) {
Serial.println("BAHAYA API!!!");
digitalWrite(5, HIGH);
Serial.println("MENYEMPROTKAN FOAM.....");
digitalWrite(19, HIGH);
digitalWrite(4, HIGH);
pump = "ON";
tone(BUZZER, 165);
// servo.write(90);
}
// if (pump = "OFF") {
// servo.write(0);
// } else {
// servo.write(90);
// }
if (ldr > 600) {
servo.write(90);
} else {
servo.write(0);
}
}