#include <WiFi.h>
#include <HTTPClient.h>
// Informasi Wi-Fi
const char* ssid = "Wokwi-GUEST"; // Ganti dengan nama WiFi
const char* password = ""; // Ganti dengan password WiFi
// Informasi ThingSpeak
String apiKey = "RJ4UD0ZG55B3TI63"; // Ganti dengan Write API Key dari ThingSpeak
const char* server = "http://api.thingspeak.com";
// Pin untuk sensor PIR dan LED
const int pirPin = 2; // Pin untuk sensor PIR
const int ledPin = 4; // Pin untuk LED
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
// Menghubungkan ke Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to WiFi");
}
void loop() {
int motionState = digitalRead(pirPin);
if (motionState == HIGH) {
Serial.println("Gerakan terdeteksi!");
digitalWrite(ledPin, HIGH); // Nyalakan LED
// Kirim data ke ThingSpeak
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String url = String(server) + "/update?api_key=" + apiKey + "&field1=1"; // 1 berarti ada gerakan
http.begin(url);
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
Serial.println("Data sent to ThingSpeak");
} else {
Serial.println("Error sending data");
}
http.end();
}
} else {
Serial.println("Tidak ada gerakan.");
digitalWrite(ledPin, LOW); // Matikan LED
// Kirim data ke ThingSpeak
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String url = String(server) + "/update?api_key=" + apiKey + "&field1=0"; // 0 berarti tidak ada gerakan
http.begin(url);
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
Serial.println("Data sent to ThingSpeak");
} else {
Serial.println("Error sending data");
}
http.end();
}
}
delay(5000); // ThingSpeak membutuhkan delay minimal 15 detik antara pengiriman data
}