#include <ESP32Servo.h>
#include <DHT.h>
#define DHTPIN 5
#define DHTTYPE DHT22
//sensor sampah
#define TRIG_PIN 2
#define ECHO_PIN 4
//sensor kapasitas
#define TRIG_PIN2 21 //pin trigger dihubungkan ke pin 13 esp32
#define ECHO_PIN2 19 //pin echo dihubungkan ke pin 12 esp32
#define MAX_DISTANCE 200 //batas jarak dari sensor
#define SERVO_PIN 22
#define maxA 10
#define maxB 100
#define LED1 23
#define BUZZER 22
DHT dht (DHTPIN, DHTTYPE);
Servo servo;
float duration,duration2, distance, capacity;
void setup() {
Serial.begin (9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(TRIG_PIN2, OUTPUT);
pinMode(ECHO_PIN2, INPUT);
pinMode(LED1, OUTPUT);
pinMode( BUZZER, OUTPUT);
servo.attach(SERVO_PIN);
servo.write(0);
dht.begin();
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
digitalWrite(TRIG_PIN2, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN2, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
duration2 = pulseIn(ECHO_PIN2, HIGH);
capacity= 0.010 * duration2;
distance= 0.017 * duration;
if (distance <= maxA){
servo.write(0);
digitalWrite(LED1, HIGH);
} else {
servo.write(90);
digitalWrite(LED1, LOW);
tone(BUZZER, 700);
delay(500);
noTone(BUZZER);
delay(0);
}
if(capacity > maxB){
servo.write(0);
}
Serial.println("Suhu = ");
Serial.print(t);
Serial.println(" C");
Serial.println("Kelembaban = ");
Serial.print(h);
Serial.println(" %");
Serial.print("distance: ");
Serial.print(distance);
Serial.println(" cm");
Serial.println("Kapasitas = ");
Serial.print(capacity);
Serial.println(" ");
delay(1000);
}