#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define BLYNK_PRINT Serial
#define trig 23
#define echo 22
long duration;
int distance;
// You should get Auth Token in the Blynk App.
char auth[] = "Qnh92oD_PlDvQMexKWGgPDUcK_0nNiGK";
char ssid[] = "Wokwi-GUEST"; // your ssid
char pass[] = ""; // your wifi pass
BlynkTimer timer;
void setup()
{
// Debug console
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(18, OUTPUT);
pinMode(trig, OUTPUT); // Sets the trigPin as an Output
pinMode(echo, INPUT); // Sets the echoPin as an Inpu
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run();
timer.run();
}
void sendSensor()
{
digitalWrite(trig, LOW); // Makes trigPin low
delayMicroseconds(2); // 2 micro second delay
digitalWrite(trig, HIGH); // tigPin high
delayMicroseconds(10); // trigPin high for 10 micro seconds
digitalWrite(trig, LOW); // trigPin low
duration = pulseIn(echo, HIGH); //Read echo pin, time in microseconds
distance = duration * 0.034 / 2; //Calculating actual/real distance
Serial.print("Distance = "); //Output distance on arduino serial monitor
Serial.println(distance);
if(distance >=0)
{
digitalWrite(2, HIGH);
}
if(distance >=100)
{
digitalWrite(2, LOW);
}
if(distance >=100)
{
digitalWrite(4, HIGH);
}
if(distance <=100)
{
digitalWrite(4, LOW);
}
if(distance >=200)
{
digitalWrite(4, LOW);
}
if(distance >=200)
{
digitalWrite(5, HIGH);
}
if(distance >=300)
{
digitalWrite(5, LOW);
}
if(distance <=200)
{
digitalWrite(5, LOW);
}
if(distance >=300)
{
digitalWrite(18, HIGH);
}
else{
digitalWrite(18, LOW);
}
Blynk.virtualWrite(V0, distance);
delay(1000); //Pause for 3 seconds and start measuring distance again
}