#include <WiFi.h>
#include <HTTPClient.h>
#define sensorPower 22
#define MOISTURE_PIN 34// ESP32 pin GIOP34 that connects to AOUT pin of moisture sensor
int fan=19;
int hledPin1 = 17;
int hledPin2 = 18;
int pump=5;
int ledf=27;
int ledh2=26;
int ledh1=14;
int ledp=12;
int dst = 0;
String value1;
String value2;
int p=16;
int wl=4;
int L1=2;
int L2=15;
int THRESHOLD=520;
void setup() {
pinMode(fan,OUTPUT);
pinMode(hledPin1,OUTPUT);
pinMode(hledPin2,OUTPUT);
pinMode(pump,OUTPUT);
pinMode(ledf,OUTPUT);
pinMode(ledh1,OUTPUT);
pinMode(ledh2,OUTPUT);
pinMode(ledp,OUTPUT);
digitalWrite(sensorPower,LOW);
Serial.begin(115200);
}
int x=0;
void loop() {
if (p==HIGH){
digitalWrite(sensorPower,HIGH);
unsigned long start_time;
unsigned long current_time;
unsigned long elapsed_time;
if(wl==HIGH){
int vals = analogRead(MOISTURE_PIN);
if (vals > THRESHOLD && wl==HIGH) {
start_time = millis();
do {
current_time = millis();
elapsed_time = current_time - start_time;
digitalWrite(ledf, HIGH);
digitalWrite(ledp, LOW);
digitalWrite(fan, HIGH);
digitalWrite(pump, LOW);
wl=digitalRead(4);
Serial.print("The bowl is DRY => turn pump ON");
// turn LED on:
while(elapsed_time>1800000 && elapsed_time<3599999 && wl==HIGH)
{
digitalWrite(ledf, LOW);
digitalWrite(ledp, LOW);
digitalWrite(fan, LOW);
digitalWrite(pump, LOW);
wl=digitalRead(4);
Serial.println("pump off");
}
} while(elapsed_time < 3600000 );// for 30 minutes use this(5min) * (60s/min) * (1000ms/s)
}
if (vals < THRESHOLD && wl==HIGH) {
start_time = millis();
do {
current_time = millis();
elapsed_time = current_time - start_time;
digitalWrite(ledf, HIGH);
digitalWrite(ledp, HIGH);
digitalWrite(fan, HIGH);
digitalWrite(pump, HIGH);
wl=digitalRead(4);
Serial.print("The bowl is DRY => turn pump ON");
// turn LED on:
while(elapsed_time>1800000 && elapsed_time<3599999 && wl==HIGH)
{
digitalWrite(ledf, LOW);
digitalWrite(ledp, LOW);
digitalWrite(fan, LOW);
digitalWrite(pump, LOW);
wl=digitalRead(4);
Serial.println("pump off");
}
} while(elapsed_time < 3600000 );// for 30 minutes use this(5min) * (60s/min) * (1000ms/s)
}
}
if (L1==HIGH ){
start_time = millis();
do {
current_time = millis();
elapsed_time = current_time - start_time;
digitalWrite(ledh1, HIGH);
// turn LED on:
while(elapsed_time>57599999999 && wl==HIGH)
{digitalWrite(ledh1, LOW);
Serial.println("pump off");
}
} while(elapsed_time < 57600000000 );// for 16 hours use this (16hours)*(60min) * (60s/min) * (1000ms/s)
digitalWrite(ledh1, LOW);
}
if (L2==HIGH ){
start_time = millis();
do {
current_time = millis();
elapsed_time = current_time - start_time;
digitalWrite(ledh2, HIGH);
// turn LED on:
while(elapsed_time>57599999999 && L2==HIGH)
{
digitalWrite(ledh1, LOW);
Serial.println("led1 off");
}
} while(elapsed_time < 57600000000 );// for hours minutes use this(5min) * (60s/min) * (1000ms/s)
digitalWrite(ledh2, LOW);
}
digitalWrite(ledh2, LOW);
}
else{
digitalWrite(ledf, LOW);
digitalWrite(ledp, LOW);
digitalWrite(fan, LOW);
digitalWrite(pump, LOW);
digitalWrite(ledh1, LOW);
digitalWrite(ledh2, LOW);
}
//end of loop
}