#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(" ");
  }
}
GND5VSDASCLSQWRTCDS1307+