2. DHT11
3. Soil Moisture
4. Relay Module
5. Water Pump Module
C. Blok Diagram
D. Skematik
E. Code
#include <SimpleTimer.h>
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include "DHT.h"
#define DHTPIN D3
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
char auth() = "IQb8guDHXiFHNtgsmeiZ5QkcGb510we6";
char ssid() = "Kecoak";
char pass() = "12345678";
float moisturePercentage; //moisture reading
const int motorPin = D0;
float SensorValue; // moisteure sensor pin
SimpleTimer timer;
WidgetLED PUMP(V1);
void VirtualBlynk()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
SensorValue = analogRead(A0);
moisturePercentage = ((100 - (SensorValue / 1023.00) * 100.00));
Blynk.virtualWrite(V4,SensorValue);
Blynk.virtualWrite(V5,moisturePercentage);
Blynk.virtualWrite(V2,h);
Blynk.virtualWrite(V3,t);
if (isnan(h) || isnan(t))
{
Serial.println("Failed to read from DHT sensor!");
return;
}
if (moisturePercentage < 50)
{
digitalWrite(motorPin, HIGH); // tun on motor
PUMP.on();
}
if (moisturePercentage > 50 && moisturePercentage < 55)
{
digitalWrite(motorPin, HIGH); //turn on motor pump
PUMP.on();
}
if (moisturePercentage > 56)
{
digitalWrite(motorPin, LOW); // turn off mottor
PUMP.off();
}
}
void setup()
{
// Debug console
Serial.begin(115200);
dht.begin();
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L,VirtualBlynk);
pinMode(motorPin, OUTPUT);
digitalWrite(motorPin, LOW); // keep motor off initally
}
void loop()
{
Blynk.run();
timer.run();
}