#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT22
// Pin Aktuator
#define LED_HIJAU 5
#define LED_KUNING 10
#define LED_MERAH 12
#define RELAY_POMPA 7
#define BUZZER 9
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(LED_HIJAU, OUTPUT);
pinMode(LED_KUNING, OUTPUT);
pinMode(LED_MERAH, OUTPUT);
pinMode(RELAY_POMPA, OUTPUT);
pinMode(BUZZER, OUTPUT);
// Kondisi awal semua mati
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, LOW);
digitalWrite(RELAY_POMPA, LOW);
digitalWrite(BUZZER, LOW);
}
void loop() {
float suhu = dht.readTemperature();
float kelembapan = dht.readHumidity();
if (isnan(suhu) || isnan(kelembapan)) {
Serial.println("Gagal membaca data DHT22!");
delay(2000);
return;
}
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.print(" °C | Kelembapan: ");
Serial.print(kelembapan);
Serial.println(" %");
if (suhu < 30) {
// Kondisi dingin
digitalWrite(LED_HIJAU, HIGH);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, LOW);
digitalWrite(RELAY_POMPA, LOW);
digitalWrite(BUZZER, LOW);
}
else if (suhu >= 30 && suhu <= 35) {
// Kondisi normal
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, HIGH);
digitalWrite(LED_MERAH, LOW);
digitalWrite(RELAY_POMPA, LOW);
digitalWrite(BUZZER, LOW);
}
else if (suhu > 35) {
// Kondisi panas
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, HIGH);
digitalWrite(RELAY_POMPA, HIGH);
digitalWrite(BUZZER, HIGH);
}
delay(2000);
}Loading
esp32-s3-devkitc-1
esp32-s3-devkitc-1