#define BLYNK_TEMPLATE_ID "TMPL6q8k08Nb5"
#define BLYNK_TEMPLATE_NAME "sending data"
#define BLYNK_AUTH_TOKEN "HfYLJFDjDYwPgtK-a5ig2XCJxLzVaFwX"
#include <BlynkSimpleEsp32.h>
const int pirPin = 2;
const int pinSpeaker = 10;
const int ledPin = 13;
boolean isActivated = false;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(pirPin, INPUT);
pinMode(pinSpeaker, OUTPUT);
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, pirMotionCheck); // Check PIR motion every second
}
void loop() {
Blynk.run();
timer.run();
}
void pirMotionCheck() {
int pirState = digitalRead(pirPin);
Serial.print("PIR State: ");
Serial.println(pirState);
if (isActivated && pirState == HIGH) {
digitalWrite(ledPin, HIGH);
digitalWrite(pinSpeaker, HIGH);
Blynk.virtualWrite(V0, 255); // Turn on virtual LED in Blynk app
Blynk.virtualWrite(V3, 255);
} else {
digitalWrite(ledPin, LOW);
digitalWrite(pinSpeaker, LOW);
Blynk.virtualWrite(V0, 0); // Turn off virtual LED in Blynk app
Blynk.virtualWrite(V3, 0);
}
}
BLYNK_WRITE(V1) { // assuming V1 is the virtual pin assigned to the button in the Blynk app
int pinValue = param.asInt();
if (pinValue == 1) {
isActivated = !isActivated;
digitalWrite(ledPin, isActivated ? HIGH : LOW);
digitalWrite(pinSpeaker, isActivated ? HIGH : LOW);
Blynk.virtualWrite(V0, isActivated ? 255 : 0);
Blynk.virtualWrite(V3, isActivated ? 255 : 0); // Update virtual LED in Blynk app
}
}
BLYNK_WRITE(V2) { // assuming V2 is the virtual pin assigned to the button in the Blynk app
int pinValue = param.asInt();
if (pinValue == 1) {
digitalWrite(ledPin, LOW);
digitalWrite(pinSpeaker, LOW);
}
}