#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6KL2JSrQ0"
#define BLYNK_TEMPLATE_NAME "SmartHome"
#define BLYNK_AUTH_TOKEN "Drdiv6g-_sV4eAHRGhrZ_js66SIQ7ZFA"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define ECHO_PIN1 15 //Pins for Sensor 1
#define TRIG_PIN1 2 //Pins for Sensor 1
#define ECHO_PIN2 5 //Pins for Sensor 2
#define TRIG_PIN2 18 //Pins for Sensor 2
int LEDPIN1 = 13;
int LEDPIN2 = 12;
BlynkTimer timer;
void sendSensorStatus() {
float distance1 = readDistance1CM();
float distance2 = readDistance2CM();
bool isNearby1 = distance1 > 200;
bool isNearby2 = distance2 > 200;
// Update Virtual Pins in Blynk app
Blynk.virtualWrite(V1, isNearby1); // Update SLOT 1 status on Datastream V1
Blynk.virtualWrite(V2, isNearby2); // Update SLOT 2 status on Datastream V2
}
void setup() {
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(LEDPIN1, OUTPUT);
pinMode(TRIG_PIN1, OUTPUT);
pinMode(ECHO_PIN1, INPUT);
pinMode(LEDPIN2, OUTPUT);
pinMode(TRIG_PIN2, OUTPUT);
pinMode(ECHO_PIN2, INPUT);
timer.setInterval(1000L, sendSensorStatus); // Update every 1 second
}
void loop() {
Blynk.run();
timer.run();
}
float readDistance1CM() {
digitalWrite(TRIG_PIN1, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN1, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN1, LOW);
int duration = pulseIn(ECHO_PIN1, HIGH);
return duration * 0.034 / 2;
}
float readDistance2CM() {
digitalWrite(TRIG_PIN2, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN2, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN2, LOW);
int duration = pulseIn(ECHO_PIN2, HIGH);
return duration * 0.034 / 2;
}