#include <NewPing.h>
#include <ESP8266WiFi.h>
#include <ThingSpeak.h>
#define TRIGGER_PIN 12
#define ECHO_PIN 13
#define MAX_DISTANCE 200
#define PIR_PIN 2
const char *ssid = "YourWiFiSSID";
const char *password = "YourWiFiPassword";
unsigned long myChannelNumber =2328603; // ThingSpeak Channel ID
const char *myWriteAPIKey = "70LWU9ERK15R43D4"; // ThingSpeak Write API Key
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
WiFiClient client;
void setup() {
Serial.begin(115200);
pinMode(PIR_PIN, INPUT);
WiFi.begin(ssid, password);
ThingSpeak.begin(client);
}
void loop() {
int pirStatus = digitalRead(PIR_PIN);
long duration, distance;
sonar.ping_timer();
delay(50);
if (pirStatus == HIGH) {
Serial.println("Motion detected!");
delay(5000); // Delay for 5 seconds
} else {
duration = sonar.ping_result / US_ROUNDTRIP_CM;
distance = duration / 2;
if (distance < 50) {
Serial.print("Intruder Alert! Object detected at: ");
Serial.print(distance);
Serial.println(" cm");
ThingSpeak.writeField(myChannelNumber, 1, distance, myWriteAPIKey);
delay(5000); // Delay for 5 seconds
}
}
}