#include <ESP32Servo.h>
#include <DHTesp.h>
#include <RTClib.h>
Servo myServo;
const int TRIG_PIN = 26;
const int ECHO_PIN = 25;
long duration;
float distanceCm;
int val;
int der;
const int DHT_PIN = 15;
DHTesp dhtSensor;
const int relay = 13;
void readDistance(){
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10); // mengatur TRIG_PIN agar menyala selama 10 ms
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH); // memabaca ECHO_PIN, menerima gelombang suara balik dari TRIG_PIN
distanceCm = duration * 0.034005/2; // dibagi 2 karena duration adalah waktu jarak bolak-balik // menghitung jarak
Serial.print("Distance (cm): ");
Serial.println(distanceCm);
Serial.println(" ");
}
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(relay, OUTPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
myServo.attach(19);
}
void loop() {
readDistance();
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float suhu = data.temperature;
Serial.print("Suhu : ");
Serial.println(data.temperature);
delay(1000);
if(suhu >= 35){
digitalWrite(relay, HIGH); //kipas menyala
Serial.println("suhu panas, kipas menyala");
Serial.println(" ");
} else {
digitalWrite(relay, LOW); // lampu menyala
Serial.println("suhu rendah, lampu menyala");
Serial.println(" ");
}
if(distanceCm <= 5) {
Serial.println("Pakan hampir habis!");
Serial.println(" ");
}
}