#include <DHT.h>
#define DHTPIN 18
#define PIRPIN 17
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
int pirState = LOW;
int lastPirState = LOW;
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(PIRPIN, INPUT);
}
void loop() {
pirState = digitalRead(PIRPIN);
if (pirState == HIGH && lastPirState == LOW) {
// PIR aktif, manusia terdeteksi
Serial.println("Keberadaan manusia terdeteksi!");
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Error: Gagal membaca sensor DHT.");
return;
}
Serial.print("Suhu: ");
Serial.print(t);
Serial.print(" °C, Kelembaban: ");
Serial.print(h);
Serial.println("%");
} else if (pirState == LOW && lastPirState == HIGH) {
// PIR non-aktif, tidak ada manusia terdeteksi
Serial.println("Tidak ada manusia terdeteksi.");
}
lastPirState = pirState;
delay(500);
}