Hi everyone. Im working with a ultrasonic sensor as a water level sensor project. I want to get notification when the water level is high but when I connect to blynk, the esp8266 keeps on online and offline repeatly. I dont know what happened. Can anyone help me out? This is my codeā¦
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SPI.h>
#include <SimpleTimer.h>
#define trigPin 6
#define echoPin 7
#define led1 8
#define led2 9
#define led3 10
#define buzzer 11
char auth[] = "f*************************";
char ssid[] = "Meeting";
char pass[] = "***********";
SimpleTimer timer;
void sendSensor() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(buzzer, OUTPUT);
if (distance >= 20)
{
digitalWrite(led1, HIGH);
Blynk.notify("Water Level: Low");
Serial.println("Water Level is low");
}
else
{
digitalWrite(led1, LOW);
}
if (distance < 20 && distance >= 10)
{
digitalWrite(led2, HIGH);
Blynk.notify("Water Level: Medium");
Serial.println("Water level is average");
}
else
{
digitalWrite(led2, LOW);
}
if (distance < 10 && distance >= 0)
{
digitalWrite(led3, HIGH);
Blynk.notify("Alert! Water Level: HIGH!");
Serial.println("Water level is high");
}
else
{
digitalWrite(led3, LOW);
}
if(distance <= 0)
{
Serial.println ("Out of range");
}
else
{
Serial.print(distance);
Serial.println(" cm");
}
}
void setup() {
Serial.begin(9600);
Blynk.begin(auth,ssid,pass);
timer.setInterval(2500L, sendSensor);
}
void loop() {
Blynk.run();
timer.run();
}