#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);
}
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
dht1:VCC
dht1:SDA
dht1:NC
dht1:GND
led1:A
led1:C
bz1:1
bz1:2
led2:A
led2:C
relay1:VCC
relay1:GND
relay1:IN
relay1:NC
relay1:COM
relay1:NO
ldr1:VCC
ldr1:GND
ldr1:DO
ldr1:AO
r1:1
r1:2
r2:1
r2:2
servo1:GND
servo1:V+
servo1:PWM