#include <Arduino.h>
#include <WiFi.h>
#include <HTTPClient.h>
#define LED_PIN 13
#define PIR_PIN 14
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* server = "api.thingspeak.com";
const String apiKey = "LW1TZ1622TWWS3E9";
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(PIR_PIN, INPUT);
Serial.begin(115200);
connectToWiFi();
}
void loop() {
if (digitalRead(PIR_PIN) == HIGH) {
Serial.println("Motion detected!");
digitalWrite(LED_PIN, HIGH); // Turn on LED
sendToThingSpeak();
delay(1000); // Delay for 1 second
digitalWrite(LED_PIN, LOW);
sendToThingSpeak();;// Turn off LED
}
delay(1000); // Check motion sensor every 100ms
}
void connectToWiFi() {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
}
void sendToThingSpeak() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String url = "http://";
url += server;
url += "/update?api_key=";
url += apiKey;
url += "&field1=1"; // Change field1 to the desired field number on ThingSpeak
http.begin(url);
int httpCode = http.GET();
if (httpCode > 0) {
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
} else {
Serial.println("WiFi not connected, unable to send data to ThingSpeak");
}
}