#include <DHT.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// --- Definisi Pin ESP32 ---
#define LDR_PIN 34 // Sensor LDR (Analog)
#define PIR_PIN 27 // Sensor PIR (Digital)
#define SOIL_PIN 35 // Sensor Kelembapan Tanah (Analog)
#define DHT_PIN 4 // Sensor DHT22 (Digital)
#define DHT_TYPE DHT22
#define ONE_WIRE_BUS 5 // Sensor DS18B20 (Digital)
// --- Inisialisasi Library ---
DHT dht(DHT_PIN, DHT_TYPE);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(115200);
pinMode(PIR_PIN, INPUT);
dht.begin();
sensors.begin();
Serial.println("Sistem Monitoring 5 Sensor Aktif...");
}
void loop() {
// 1. Membaca LDR Sensor
int ldrValue = analogRead(LDR_PIN);
// 2. Membaca PIR Sensor
int pirState = digitalRead(PIR_PIN);
// 3. Membaca Soil Moisture Sensor
int soilValue = analogRead(SOIL_PIN);
// 4. Membaca Sensor DHT22
float hum = dht.readHumidity();
float temp = dht.readTemperature();
// 5. Membaca Sensor DS18B20
sensors.requestTemperatures();
float tempDS = sensors.getTempCByIndex(0);
// --- Print ke Serial Monitor ---
Serial.println("=============================");
Serial.print("1. LDR (Cahaya) : "); Serial.println(ldrValue);
Serial.print("2. PIR (Gerak) : "); Serial.println(pirState == HIGH ? "Terdeteksi!" : "Aman");
Serial.print("3. Kelembapan Tanah : "); Serial.println(soilValue);
Serial.print("4. DHT22 Suhu : "); Serial.print(temp); Serial.print("°C | Hum: "); Serial.print(hum); Serial.println("%");
Serial.print("5. DS18B20 Suhu : "); Serial.print(tempDS); Serial.println("°C");
delay(2000); // Jeda 2 detik
}