// _ ___ __ _ _
// | || \ \ / / | | (_)
// | || |\ \ /\ / /__ | |__ _
// |__ _\ \/ \/ / _ \| '_ \| |
// | | \ /\ / (_) | |_) | |
// |_| \/ \/ \___/|_.__/|_|.com
//
// PIR I used: https://unusualelectronics.co.uk/wordpress/wp-content/uploads/Pir-AS312.pdf
// Switch delay is about 2 seconds.
// Tested with NodeMCU v3
#define LED LED_BUILTIN // Define the LED ure using
int oldTime;
int oldValue;
void setup() {
//Init INPUT/OUTPUT
pinMode(D2, INPUT_PULLUP);
pinMode(LED, OUTPUT);
//Init Serial
Serial.begin(115200);
delay(250);
Serial.println("");
Serial.println("");
Serial.println(" _ _ __ v1.0 __ _ _ ");
Serial.println(" | || |\\ \\ / / | | (_)");
Serial.println(" | || |_\\ \\ /\\ / /___ | |__ _ ");
Serial.println(" |__ _|\\ \\/ \\/ // _ \\ | '_ \\ | |");
Serial.println(" | | \\ /\\ /| (_) || |_) || |");
Serial.println(" |_| \\/ \\/ \\___/ |_.__/ |_|");
Serial.println("");
// Tests the LED if it works
for (int i = 0; i <= 5; i++) {
digitalWrite(LED, LOW);
delay(200);
digitalWrite(LED, HIGH);
delay(200);
}
oldTime = millis();
Serial.println("Initialization done");
}
void loop() {
// Reads D2 value
int value = digitalRead(D2);
// Checks the Value
if (value == 0 && oldValue == 1) {
oldValue = 0;
Serial.println("Value = 0");
Serial.print("Time since last change: ");
Serial.print((millis() - oldTime) / 1000);
Serial.println("s");
oldTime = millis();
digitalWrite(LED, HIGH);
}
else if (value == 1 && oldValue == 0) {
oldValue = 1;
Serial.println("Value = 1");
Serial.print("Time since last change: ");
Serial.print((millis() - oldTime) / 1000);
Serial.println("s");
oldTime = millis();
digitalWrite(LED, LOW);
}
delay(50);
}