#include <WiFi.h>
#include <ThingSpeak.h>
const char* WIFI_NAME = "Wokwi-GUEST";
const char* WIFI_PASSWORD = "";
const int myChannelNumber = 2319474;
const char* myApiKey = "OMRHXUR70MHV6YKC";
const char* server = "api.thingspeak.com";
#define PIR_PIN 14 // Pin del sensor PIR
#define LED_PIN 2 // Pin del LED
#define BUZZER_PIN 4 // Pin del buzzer
WiFiClient client;
void setup() {
pinMode(PIR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
digitalWrite(BUZZER_PIN, LOW);
Serial.begin(115200);
Serial.println("Alarma desactivada. Esperando detección de movimiento...");
WiFi.begin(WIFI_NAME, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Conectando a la red WiFi...");
}
Serial.println("Conectado a la red WiFi");
}
void loop() {
int motion = digitalRead(PIR_PIN);
if (motion == HIGH) {
digitalWrite(LED_PIN, HIGH);
digitalWrite(BUZZER_PIN, HIGH);
Serial.println("Movimiento detectado. Alarma activada.");
// Envía datos a ThingSpeak
if (enviarDatosThingSpeak(1)) {
Serial.println("Datos enviados a ThingSpeak con éxito.");
} else {
Serial.println("Error al enviar datos a ThingSpeak.");
}
delay(5000);
} else {
digitalWrite(LED_PIN, LOW);
digitalWrite(BUZZER_PIN, LOW);
Serial.println("No hay movimiento. Alarma desactivada.");
}
}
bool enviarDatosThingSpeak(int valor1) {
ThingSpeak.begin(client);
ThingSpeak.setField(1, valor1);
return ThingSpeak.writeFields(myChannelNumber,myApiKey ); // Especifica el ID de tu canal y la API Key
}