#include <DHT.h>
#define DHTPIN 2 // Pin sensor DHT
#define DHTTYPE DHT22 // Jenis sensor DHT (DHT11 / DHT22)
#define kelembapanTanah 13 // Pin sensor kelembapan tanah
#define led 14 // Pin LED
#define relay 15 // Pin relay (untuk pompa air)
#define ldr 12 // Pin LDR
DHT dht(DHTPIN, DHTTYPE); // Inisialisasi sensor DHT
void setup() {
Serial.begin(9600); // Memulai komunikasi serial
dht.begin(); // Memulai sensor DHT
pinMode(led, OUTPUT); // LED sebagai output
pinMode(relay, OUTPUT); // Relay sebagai output
pinMode(ldr, INPUT); // LDR sebagai input
pinMode(kelembapanTanah, INPUT); // Sensor kelembapan tanah sebagai input
}
void loop() {
// Membaca data dari sensor DHT11
float t = dht.readTemperature();
float h = dht.readHumidity();
// Membaca nilai LDR
int nilaiLDR = analogRead(ldr);
// Membaca nilai kelembapan tanah
int nilaiKelembapanTanah = analogRead(kelembapanTanah);
// Logika menyalakan lampu LED berdasarkan LDR
if (nilaiLDR < 500) { // Nilai threshold bisa disesuaikan
digitalWrite(led, HIGH); // Menyalakan LED jika gelap
} else {
digitalWrite(led, LOW); // Mematikan LED jika terang
}
// Logika menyalakan relay berdasarkan kelembapan tanah
if (nilaiKelembapanTanah < 1400) { // Threshold untuk tanah kering
digitalWrite(relay, HIGH); // Menyalakan relay (pompa air aktif)
} else {
digitalWrite(relay, LOW); // Mematikan relay (pompa air mati)
}
// Menampilkan data di Serial Monitor
Serial.print("Suhu: ");
Serial.print(t);
Serial.print("C | Kelembapan Udara: ");
Serial.print(h);
Serial.print("% | Nilai LDR: ");
Serial.print(nilaiLDR);
Serial.print(" | Kelembapan Tanah: ");
Serial.println(nilaiKelembapanTanah);
delay(1000); // Delay 1 detik sebelum membaca ulang
}