#define BLYNK_TEMPLATE_ID "TMPL6MF3ALZ-4"
#define BLYNK_TEMPLATE_NAME "IoT based smart security system"
#define BLYNK_AUTH_TOKEN "Mwr17fj9rlcON0VgjUXfk81RSv33zZ1o"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN ; //Auth Token
char ssid[] = "Wokwi-GUEST"; //write wifi name when for real implementation
char pass[] = ""; //wifi password
#define solinoid_relay 19
#define PIR_SENSOR_PIN 4 // PIR sensor pin
#define SMOKE_SENSOR_PIN 2 // Smoke sensor pin
int smokeValue;
int pirValue;
BlynkTimer timer;
void Pirsensor()
{
pirValue = digitalRead(PIR_SENSOR_PIN);
if (pirValue == HIGH)
{
Blynk.logEvent("door_is_open");
digitalWrite(solinoid_relay, HIGH);
delay(3000);
digitalWrite(solinoid_relay, LOW);
Serial.println("Motion Detected!");
//delay(1000); // Delay to prevent reading multiple times
}
}
void smoke() {
smokeValue = digitalRead(SMOKE_SENSOR_PIN);
if (smokeValue == HIGH)
{
Blynk.logEvent("door_is_open");
Serial.println("Smoke Detected!");
digitalWrite(solinoid_relay, HIGH);
delay(3000);
digitalWrite(solinoid_relay, LOW);
}
}
// BLYNK_WRITE(V1) // this command is listening when something is written to V1
// {
// switch_value = param.asInt(); // assigning incoming value from pin V1 to a variable
// if(switch_value==1)
// {
// digitalWrite(pump, HIGH);
// track=1;
// }
// else
// {
// digitalWrite(pump, LOW);
// track=0;
// }
// }
void setup()
{
Serial.begin(115200); //serial monitor menggunakan bautrate 9600
pinMode(solinoid_relay,OUTPUT);
pinMode(PIR_SENSOR_PIN, INPUT); // Set PIR sensor pin as input
pinMode(SMOKE_SENSOR_PIN, INPUT); // Set smoke sensor pin as input
digitalWrite(solinoid_relay, LOW);
Blynk.begin(auth, ssid, pass); //memulai Blynk
timer.setInterval(1000, Pirsensor);
timer.setInterval(1000, smoke);
}
void loop()
{
Blynk.run(); //menjalankan blynk
timer.run(); //menjalankan tim
}