#include <DHT.h>
#include <OneWire.h>
#include <DallasTemperature.h>
//PIN SETUP
#define LDR_PIN 34
#define SOIL_PIN 35
#define PIR_PIN 27
#define DHT_PIN 14
#define ONE_WIRE_BUS 4
//DHT22
#define DHTTYPE DHT22
DHT dht(DHT_PIN, DHTTYPE);
//DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(115200);
pinMode(PIR_PIN, INPUT);
dht.begin();
sensors.begin();
Serial.println();
Serial.println("======================================");
Serial.println(" MONITORING SENSOR ESP32 ");
Serial.println("======================================");
}
void loop() {
// Membaca sensor
int ldrValue = analogRead(LDR_PIN);
int soilValue = analogRead(SOIL_PIN);
int pirValue = digitalRead(PIR_PIN);
float tempDHT = dht.readTemperature();
float humDHT = dht.readHumidity();
sensors.requestTemperatures();
float tempDS = sensors.getTempCByIndex(0);
// Status PIR
String pirStatus;
if (pirValue == HIGH) {
pirStatus = "Terdeteksi Gerakan";
} else {
pirStatus = "Tidak Ada Gerakan";
}
// Tampilan output rapi
Serial.println();
Serial.println("======================================");
Serial.println(" DATA SENSOR");
Serial.println("======================================");
Serial.print("LDR (Cahaya) : ");
Serial.println(ldrValue);
Serial.print("Soil Moisture : ");
Serial.println(soilValue);
Serial.print("PIR : ");
Serial.println(pirStatus);
Serial.print("DHT22 Suhu : ");
Serial.print(tempDHT, 1);
Serial.println(" °C");
Serial.print("DHT22 Kelembapan : ");
Serial.print(humDHT, 1);
Serial.println(" %");
Serial.print("DS18B20 Suhu : ");
Serial.print(tempDS, 1);
Serial.println(" °C");
Serial.println("======================================");
delay(2000);
}