#define BLYNK_TEMPLATE_ID "TMPL6MrSe_i-I"
#define BLYNK_TEMPLATE_NAME "Smart Irrigation IoT"
#define BLYNK_AUTH_TOKEN "BXoPafmQ__U_6AwO1Q2EzTlnSq2UwOMb"
#define BLYNK_PRINT Serial
#define BLYNK_FIRMWARE_VERSION "1.1.0"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
//Konfigurasi Sensor Kelembapan Tanah
const int pinSensor = 32;
int adc, persen = 0;
float dataSensor;
//KOnfigurasi Sensor DHT
#define DHTPIN 33
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define RELAY1 18
BlynkTimer timer;
void setup()
{
Serial.begin(115200);
dht.begin();
pinMode(RELAY1, OUTPUT);
pinMode(pinSensor, INPUT);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sensorTanah);
timer.setInterval(1000L, sensorDHT);
}
void sensorTanah(){
//Baca Sensor Tanah
adc = analogRead(pinSensor);
dataSensor = adc * (5.0 / 4095.0);
persen = (100.00 - ((adc / 4095.00) * 100.00));
Serial.print(persen);
Serial.print(" | ");
Blynk.virtualWrite(V0, persen);
}
void sensorDHT()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print(t);
Serial.print(" | ");
Serial.println(h);
Blynk.virtualWrite(V1, t);
Blynk.virtualWrite(V2, h);
}
BLYNK_WRITE(V3){
if(param.asInt() == 1)
{
digitalWrite(RELAY1, HIGH);
}
else
{
digitalWrite(RELAY1, LOW);
}
}
void loop()
{
Blynk.run();
timer.run();
}