#define BLYNK_TEMPLATE_ID "TMPL3GWYNlabR"
#define BLYNK_TEMPLATE_NAME "smart soil monitoring"
#define BLYNK_AUTH_TOKEN "HzMJTiKriDNXygy9h9JatLrDnqP06uWq"
#include <WiFi.h>
#include <WiFiClient.h>
#include <DHT.h>
#include <BlynkSimpleEsp32.h>
#define DHT_PIN 2
#define DHT_TYPE DHT22
#define LDR_PIN 32
#define POT_PIN 33
DHT dht(DHT_PIN, DHT_TYPE);
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASS ""
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Blynk.begin(BLYNK_AUTH_TOKEN, WIFI_SSID, WIFI_PASS);
}
void loop() {
Blynk.run();
// Read temperature and humidity from DHT sensor
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Read light intensity from LDR
int lightIntensity = analogRead(LDR_PIN);
// Invert the analog reading to represent higher values for higher light intensity
lightIntensity = 2048 - lightIntensity;
// Read soil moisture simulation from potentiometer
int soilMoisture = analogRead(POT_PIN);
int soilMoisturePercentage = map(soilMoisture, 0, 2048, 0, 100);
// Send data to Blynk
Blynk.virtualWrite(V0, temperature);
Blynk.virtualWrite(V1, humidity);
Blynk.virtualWrite(V5, lightIntensity);
Blynk.virtualWrite(V6, soilMoisturePercentage);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C\t Humidity: ");
Serial.print(humidity);
Serial.print(" %\t Moisture: ");
Serial.print(map(soilMoisture, 0, 1023, 100, 0));
Serial.println(" %");
delay(2000);
}