#include <DHT.h>
#define DHTPIN 23 // Pin untuk DHT22
#define DHTTYPE DHT22 // Tipe sensor
DHT dht(DHTPIN, DHTTYPE);
#define SOIL_MOISTURE_PIN 34 // Pin untuk sensor kelembapan tanah
#define RELAY_PIN 15 // Pin untuk relay (opsional)
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(SOIL_MOISTURE_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW); // Matikan relay pada awal
}
void loop() {
// Baca data suhu dan kelembapan udara
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Baca kelembapan tanah
int soilMoistureRaw = analogRead(SOIL_MOISTURE_PIN);
float soilMoisturePercent = map(soilMoistureRaw, 4095, 0, 0, 100); // Kalibrasi ke persen
// Tampilkan data
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.print("°C, Kelembapan Udara: ");
Serial.print(humidity);
Serial.print("%, Kelembapan Tanah: ");
Serial.print(soilMoisturePercent);
Serial.println("%");
// Logika irigasi otomatis
if (soilMoisturePercent < 55) {
digitalWrite(RELAY_PIN, HIGH); // Nyalakan relay
Serial.println("Pompa Dinyalakan");
} else {
digitalWrite(RELAY_PIN, LOW); // Matikan relay
Serial.println("Pompa Dimatikan");
}
delay(2000); // Tunggu 2 detik sebelum membaca ulang
}