const int pirPin = 4; // PIR output pin
int pirState = LOW; // Previous state
int val = 0; // Current state
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT);
Serial.println("PIR Sensor Test");
}
void loop() {
val = digitalRead(pirPin); // Read PIR output
if (val == HIGH && pirState == LOW) {
// Motion detected
Serial.println("Motion detected!");
pirState = HIGH;
logPresence(); // Optional: log to SD card / cloud
}
else if (val == LOW && pirState == HIGH) {
// Motion ended
Serial.println("Motion ended");
pirState = LOW;
}
delay(100); // small delay to avoid spamming
}
// Example log function (expand to SD card or cloud)
void logPresence() {
unsigned long timestamp = millis(); // milliseconds since ESP32 started
Serial.print("Timestamp: ");
Serial.println(timestamp);
}