#define BLYNK_TEMPLATE_ID "TMPL6X0dNyxfX"
#define BLYNK_TEMPLATE_NAME "Rain Amount"
#define BLYNK_AUTH_TOKEN "rGMdTMxqpfC2oJpTWNYrwN-bzBS1RFee"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define rainSensorPin 34
int directionPin = 2;
int stepPin = 4;
int numberOfSteps = 200; // full rotion = 200 steps
int millisbetweenSteps = 10; // milliseconds - or try 100 for slower steps
int n = 0;
char ssid[] = "Wokwi-GUEST"; //wifi user name
char pass[] = ""; //wifi password
void setup() {
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
Serial.begin(9600);
pinMode(directionPin, OUTPUT);
pinMode(stepPin, OUTPUT);
}
void loop(){
int sensorReading = analogRead(rainSensorPin);
Blynk.virtualWrite(V0, sensorReading); // sending sensor values to Blynk cloud
if (sensorReading > 700){
Serial.print(sensorReading);
Serial.println(": Heavy Rain is Detected");
digitalWrite(directionPin, HIGH);
if (n != 200){
for(;n < numberOfSteps; n++) {
digitalWrite(stepPin, HIGH);
digitalWrite(stepPin, LOW);
delay(millisbetweenSteps);
}
}
}
else{
Serial.print(sensorReading);
Serial.println(" :Rain is not Detected or rain is not heavy");
digitalWrite(directionPin, LOW);
if(n != 0){
for( ;n > 0; n--) {
digitalWrite(stepPin, HIGH);
digitalWrite(stepPin, LOW);
delay(millisbetweenSteps);
}
}
}
delay(1000);
}