// defining blynk connection settings
#define BLYNK_TEMPLATE_ID "TMPL3NR7Ow8Qe"
#define BLYNK_TEMPLATE_NAME "Motor"
#define BLYNK_AUTH_TOKEN "szYqC9r_vCGNGt00SiiotDMl7BA2rgK0"
#define BLYNK_PRINT Serial
#include<WiFi.h>
#include<BlynkSimpleEsp32.h>
// defining all pins for circuit connections
#define PIN_TRIG 26
#define PIN_ECHO 25
#define LOWLED 18
#define MIDLED 19
#define HIGHLED 21
#define MOTOR 27
unsigned int level = 0;
// blynk connection details
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
BLYNK_WRITE(V1)
{
int value = param.asInt();
Blynk.virtualWrite(V1, value);
if(value == 1)
{
Serial.println("MOTOR ON");
digitalWrite(MOTOR, HIGH);
}
else if(value == 0)
{
Serial.println("MOTOR Off");
digitalWrite(MOTOR, LOW);
}
}
void setup()
{
Serial.begin(115200);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
pinMode(LOWLED, OUTPUT);
pinMode(MIDLED, OUTPUT);
pinMode(HIGHLED, OUTPUT);
pinMode(MOTOR, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
timer.run();
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
int duration = pulseIn(PIN_ECHO, HIGH);
Serial.print("Distance in CM:");
Serial.println(duration / 58);
Serial.print("Distance in inches : ");
Serial.println(duration / 148);
delay(1000);
level = duration / 50;
if (level < 100)
{
digitalWrite(LOWLED, LOW);
digitalWrite(MIDLED, HIGH);
digitalWrite(HIGHLED, HIGH);
digitalWrite(MOTOR, HIGH);
}
else if ((level > 200) && (level < 400))
{
digitalWrite(LOWLED, HIGH);
digitalWrite(MIDLED, LOW);
digitalWrite(HIGHLED, HIGH);
digitalWrite(MOTOR, HIGH);
}
else if (level >= 400)
{
digitalWrite(LOWLED, HIGH);
digitalWrite(MIDLED, HIGH);
digitalWrite(HIGHLED, LOW);
digitalWrite(MOTOR, LOW);
}
}