#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL5WaC2CdoZ"
#define BLYNK_TEMPLATE_NAME "Ultrasonic Distance Sensor Testing with 2 LED"
#define BLYNK_AUTH_TOKEN "-shpZOflUM5aqrudWKDdVREvVzsdSaMm"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define t 26 // Trigger pin
#define e 25 // Echo pin
#define greenLED 17 // Green LED pin
#define redLED 16 // Red LED pin
long echo;
float distance;
void setup() {
Serial.begin(9600);
pinMode(t, OUTPUT);
pinMode(e, INPUT);
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}
void loop() {
Blynk.run();
readSensor();
}
long pre = 0;
void readSensor(){
if(millis() - pre > 2000){
pre = millis();
digitalWrite(t, LOW);
delay(10);
digitalWrite(t, HIGH);
delayMicroseconds(10);
digitalWrite(t, LOW);
echo = pulseIn(e, HIGH);
distance = (echo / 2.0) / 29.0;
Blynk.virtualWrite(V5, distance); // Send distance to Blynk app
if(distance < 100){
Blynk.virtualWrite(V1, HIGH); // Turn on green LED widget
Blynk.virtualWrite(V2, LOW); // Turn off red LED widget
digitalWrite(greenLED, HIGH);
digitalWrite(redLED, LOW);
} else {
Blynk.virtualWrite(V1, LOW); // Turn off green LED widget
Blynk.virtualWrite(V2, HIGH); // Turn on red LED widget
digitalWrite(greenLED, LOW);
digitalWrite(redLED, HIGH);
}
Serial.println(distance);
}
}
// Blynk virtual pin write handlers
BLYNK_WRITE(V1) {
int pinValue = param.asInt();
digitalWrite(greenLED, pinValue);
}
BLYNK_WRITE(V2) {
int pinValue = param.asInt();
digitalWrite(redLED, pinValue);
}