#include <WiFi.h>
#include <WiFiClient.h>
#include <DHT.h>
#include <BlynkSimpleEsp32.h>
// Wi-Fi credentials
char auth[] = "YourAuthToken"; // Blynk authentication token
char ssid[] = "Hfz'z";
char password[] = "123456789";
// Sensor pins
#define DHTPIN 32 // GPIO pin connected to the DHT sensor
#define MOISTURE_PIN 34 // GPIO pin connected to the moisture sensor
// Sensor setup
#define DHTTYPE DHT22 // DHT sensor type, change to DHT11 if you're using that sensor
DHT dht(DHTPIN, DHTTYPE);
// Water delivery setup
const int WATER_PUMP_PIN = 26; // GPIO pin connected to the water pump relay module
const int MOISTURE_THRESHOLD = 500; // Adjust the threshold value as per your soil moisture sensor
void setup() {
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Initialize Blynk
Blynk.begin(auth, ssid, password);
// Initialize sensors
dht.begin();
// Initialize water pump pin
pinMode(WATER_PUMP_PIN, OUTPUT);
digitalWrite(WATER_PUMP_PIN, LOW);
}
void loop() {
Blynk.run();
// Read temperature and humidity
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Read soil moisture
int moistureValue = analogRead(MOISTURE_PIN);
// Send sensor data to Blynk app
Blynk.virtualWrite(V1, temperature); // Virtual pin V1 for temperature
Blynk.virtualWrite(V2, humidity); // Virtual pin V2 for humidity
Blynk.virtualWrite(V3, moistureValue); // Virtual pin V3 for moisture
// Check if the soil moisture is below the threshold
if (moistureValue < MOISTURE_THRESHOLD) {
// Activate water pump
digitalWrite(WATER_PUMP_PIN, HIGH);
delay(5000); // Run the pump for 5 seconds (adjust as per your requirements)
digitalWrite(WATER_PUMP_PIN, LOW);
}
delay(5000); // Wait for 5 seconds before the next reading
}