#define BLYNK_TEMPLATE_ID "TMPL2PinXViV3"
#define BLYNK_TEMPLATE_NAME "irrigation system"
#define BLYNK_AUTH_TOKEN "WtfLVeNP9AZYBiqorsZNC4SEANeabc5Y"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char ssid[] = "ORANGE_7D38";
char pass[] = "T4P87Mfu";
BlynkTimer timer;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd ( 0x27, 16, 2 );
int led2=4;
int led1=2;
#include "DHTesp.h"
const int DHT_PIN = 15;
DHTesp dhtSensor;
BLYNK_WRITE(V0)
{
int value = param.asInt();
digitalWrite(led1,value);
Blynk.virtualWrite(V1, value);
}
BLYNK_CONNECTED()
{
Blynk.setProperty(V3, "offImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png");
Blynk.setProperty(V3, "onImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png");
Blynk.setProperty(V3, "url", "https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made");
}
void myTimerEvent()
{
Blynk.virtualWrite(V2, millis() / 1000);
}
void setup() {
lcd.init ( );
lcd.setCursor ( 0, 0 );
lcd.print ( "Irrigation System" );
lcd.setCursor ( 0, 1 );
lcd.print ( " using IOT " );
delay ( 1000 );
lcd.clear();
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
Serial.begin(115200);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);// optional
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
timer.setInterval(1000L, myTimerEvent);
}
void DHT_sensor()
{
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
Blynk.virtualWrite(V6,String(data.humidity, 1));
Blynk.virtualWrite(V5,String(data.temperature, 2));
lcd.setCursor ( 0, 0 );
lcd.print ( "Temp: " );
lcd.print ( String(data.temperature, 2)+ "°C");
lcd.setCursor ( 0, 1 );
lcd.print ( "Humidity:" );
lcd.print ( String(data.humidity, 1) + "%");
delay(2000);
}
void loop() {
Blynk.run();
timer.run();
DHT_sensor();
}