#define BLYNK_TEMPLATE_ID "TMPL3XcDNA1Ih"
#define BLYNK_TEMPLATE_NAME "soil"
#define BLYNK_AUTH_TOKEN "rNnrTGTf6JLPoFY9b0WsVZiYdV16K8cP"
#include <Wire.h>
#include <BlynkSimpleEsp32.h> // Include Blynk library
#include <DHT.h> // Include DHT sensor library
char auth[] = "rNnrTGTf6JLPoFY9b0WsVZiYdV16K8cP";
char ssid[] = "Wokwi-GUEST";
char pass[] = ""; // Enter your Wi-Fi password
#define DHTPIN 25 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Wire.begin(23, 22);
Serial.begin(9600);
Blynk.begin(auth, ssid, pass); // Initialize Blynk with Wi-Fi credentials
dht.begin();
}
void loop() {
float humidity = dht.readHumidity(); // Read humidity value from the sensor
float temperature = dht.readTemperature(); // Read temperature value from the sensor
// Check if any reads failed and exit early (to try again).
if (isnan(humidity) || isnan(temperature)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Send temperature and humidity data to Blynk virtual pins V0 and V1
Blynk.virtualWrite(V0, temperature); // Temperature to V0
Blynk.virtualWrite(V2, humidity); // Humidity to V1
// Determine soil moisture status
String soilStatus = "";
int16_t soilMoisture = analogRead(34);
if (soilMoisture < 2165) {
soilStatus = "WET";
} else if (soilMoisture > 3135) {
soilStatus = "DRY";
} else {
soilStatus = "OK";
}
// Send soil moisture status to Blynk virtual pin V2
Blynk.virtualWrite(V1, soilStatus);
Blynk.run(); // Run Blynk
delay(500);
}