My project is an automated plant watering system. when it is below 20% it will turn on the pump and when it is above 80% it will turn off the pump. Now, I want the automated system to turn on and off manually using blynk. The system will turn on when I turn it on and off when I turn it off.
#define BLYNK_FIRMWARE_VERSION "0.1.0"
#define BLYNK_PRINT Serial
#define APP_DEBUG
#include <ESP8266WiFi.h>
#include<DHT.h>
#include "BlynkEdgent.h"
#define DHTTYPE DHT22
#define DHTPIN 3 //RX
#define S0 D3
#define S1 D4
#define S2 D5
#define S3 D6
#define SIG A0
#define pump1 13//D7
#define pump2 15//D8
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
int sensor0;
int sensor1;
BLYNK_WRITE(V8){
if(param.asInt() == 1) {
digitalWrite(pump1,HIGH);
Blynk.virtualWrite(V1,1);
} else {
digitalWrite(pump1, LOW);
Blynk.virtualWrite(V1,0);
}
}
void sensors(){
float humid = dht.readHumidity();
float temp = dht.readTemperature();
Blynk.virtualWrite(V6,humid);
Blynk.virtualWrite(V7,temp);
// 00
digitalWrite(S0,LOW);
digitalWrite(S1,LOW);
sensor0 = analogRead(SIG);
sensor0 = map(sensor0, 1024, 578 ,0 ,100);
if (sensor0 < 20)
{
digitalWrite(pump1, LOW); //on
}
else if(sensor0 >85){
digitalWrite(pump1,HIGH); //off
}
Blynk.virtualWrite(V1,sensor0);
// 10
digitalWrite(S0,HIGH);
digitalWrite(S1,LOW);
sensor1 = analogRead(SIG);
sensor1 = map(sensor1,1024, 610, 0, 100);
if (sensor1 < 20)
{
digitalWrite(pump2, LOW); //on
}
else if(sensor1 >85){
digitalWrite(pump2,HIGH); //off
}
Blynk.virtualWrite(V2,sensor1);
/*Serial.print("sensor0: ");
Serial.println(sensor0);
Serial.print("sensor1: ");
Serial.println(sensor1);*/
}
void setup() {
Serial.begin(115200);
BlynkEdgent.begin();
pinMode(pump1, OUTPUT);
pinMode(pump2, OUTPUT);
pinMode(S0,OUTPUT);
pinMode(S1,OUTPUT);
pinMode(S2,OUTPUT);
pinMode(S3,OUTPUT);
pinMode(SIG, INPUT);
dht.begin();
timer.setInterval(1000L,sensors);
}
void loop() {
BlynkEdgent.run();
timer.run();
}