#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6IsHG74PP"
#define BLYNK_TEMPLATE_NAME "water level"
#define BLYNK_AUTH_TOKEN "T8FYDddwgi5DkPOAymqmMRcOfcYn9RV3"
#define PIN_TRIG 4
#define PIN_ECHO 2
#define LowLevel 26
#define MidLevel 27
#define HighLevel 14
#define Motor 5
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
unsigned int level = 0;
void setup() {
pinMode (LowLevel,OUTPUT);
pinMode (MidLevel,OUTPUT);
pinMode (HighLevel,OUTPUT);
pinMode (Motor,OUTPUT);
digitalWrite(LowLevel, LOW);
digitalWrite(MidLevel, LOW);
digitalWrite(HighLevel, LOW);
digitalWrite(Motor, LOW);
Serial.begin(115200);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
Serial.begin(9600);
Blynk.begin(BLYNK_AUTH_TOKEN,ssid,pass);
timer.setInterval(100L, myTimerEvent);
}
void myTimerEvent()
{
Blynk.virtualWrite(V4, level);
}
void loop() {
// Start a new measurement:
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Read the result:
int duration = pulseIn(PIN_ECHO, HIGH);
Serial.print("Distance in CM: ");
Serial.println(duration / 58);
Serial.print("Distance in inches: ");
Serial.println(duration / 148);
level = duration / 58;
Blynk.virtualWrite(V4,level);
if (level<100)
{
digitalWrite(LowLevel, LOW);
digitalWrite(MidLevel, HIGH);
digitalWrite(HighLevel, HIGH);
digitalWrite(Motor, HIGH);
Blynk.virtualWrite(V0,HIGH);
Blynk.virtualWrite(V1,LOW);
Blynk.virtualWrite(V2,LOW);
Blynk.virtualWrite(V3,HIGH);
}
else if((level>200)&(level<400))
{
digitalWrite(LowLevel, HIGH);
digitalWrite(MidLevel, LOW);
digitalWrite(HighLevel, HIGH);
digitalWrite(Motor, HIGH);
Blynk.virtualWrite(V0,LOW);
Blynk.virtualWrite(V1,HIGH);
Blynk.virtualWrite(V2,LOW);
}
else if (level>=400)
{
digitalWrite(HighLevel, LOW);
digitalWrite(MidLevel, HIGH);
digitalWrite(LowLevel, HIGH);
digitalWrite(Motor, HIGH);
Blynk.virtualWrite(V0,LOW);
Blynk.virtualWrite(V1,LOW);
Blynk.virtualWrite(V2,HIGH);
Blynk.virtualWrite(V3,LOW);
}
delay(1000);
Blynk.run();
timer.run();
}