#define BLYNK_TEMPLATE_ID "TMPL3qNs3lxX3"
#define BLYNK_TEMPLATE_NAME "water monitoring system"
#define BLYNK_AUTH_TOKEN "bSEWIAKXOETgsI9PjCeoSxeCsusnpCP4"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 13
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
char auth[] = BLYNK_AUTH_TOKEN;
BlynkTimer timer;
#define pin 34
#define pin1 33
#define pin2 32
#define sound 0.034
void sendSensor1(){
int sensorValue = analogRead(pin);
float voltage = sensorValue * (5.0 / 1024.0);
Blynk.virtualWrite(V2,voltage);
Serial.println ("Sensor Output (V):");
Serial.println (voltage);
if(voltage>=15){
Serial.println ("Good");
Blynk.virtualWrite(V3,"Good");
}
else if(voltage>8&&voltage<=15){
Serial.println ("50% good");
Blynk.virtualWrite(V3,"bad");
}else{
Serial.println("Bad");
Serial.println();
Blynk.virtualWrite(V3,"too bad");
} delay(500);
delay(500);
}
void sendSensor()
{
sensors.requestTemperatures();
Serial.print("Celsius temperature: ");
Serial.print(sensors.getTempCByIndex(0));
Serial.print(" - Fahrenheit temperature: ");
Serial.println(sensors.getTempFByIndex(0));
int tempC=sensors.getTempCByIndex(0);
int tempF=sensors.getTempFByIndex(0);
delay(500);
Blynk.virtualWrite(V0, tempC);
Blynk.virtualWrite(V1, tempF);
if(tempC>=27&&tempC<=31)
Blynk.virtualWrite(V5,"Normal");
else if(tempC>=27)
Blynk.virtualWrite(V5, "Hot");
else if(tempC>=18)
Blynk.virtualWrite(V5, "Medium");
else
Blynk.virtualWrite(V5, "Cold");
delay(500);
}
void sendSensor2()
{
digitalWrite(pin1,1);
delayMicroseconds(10);
digitalWrite(pin1,0);
long s= pulseIn(pin2,1);
float d=(s*sound)/2;
Serial.println("distance");
Serial.println(d);
Blynk.virtualWrite(V4, d);
if(d>0&&d<=5)
Blynk.virtualWrite(V6,"LOW");
else if(d>=7&&d<=8)
Blynk.virtualWrite(V6, "FULL");
else if(d>11)
Blynk.virtualWrite(V6, "Error");
else
Blynk.virtualWrite(V6, "Empty");
delay(500);
}
void setup()
{
pinMode(pin1,OUTPUT);
pinMode(pin2,INPUT);
Serial.begin(9600);
sensors.begin();
Blynk.begin(auth, "Mohan","12345678");
timer.setInterval(100L, sendSensor);
timer.setInterval(100L, sendSensor1);
timer.setInterval(100L, sendSensor2);
}
void loop()
{
Blynk.run();
timer.run();
}