#define BLYNK_TEMPLATE_ID "TMPL64m1rZf1P"
#define BLYNK_TEMPLATE_NAME "Sensor"
#define BLYNK_AUTH_TOKEN "iUfwYhcu2QxvAMm98iIMEHV8sy9zpdAg"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
// Blynk Auth Token
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// DHT Sensor
#define DHTPIN 4 // Pin connected to the data pin of DHT sensor
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE);
// Relay pin for the pump
#define RELAY_PIN 5
BlynkTimer timer;
void sendSensorData() {
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Print to serial monitor
Serial.print("Humidity: ");
Serial.print(h);
Serial.print("% Temperature: ");
Serial.print(t);
Serial.println("°C");
// Send to Blynk
Blynk.virtualWrite(V5, h); // Virtual pin V5 for humidity
Blynk.virtualWrite(V6, t); // Virtual pin V6 for temperature
}
BLYNK_WRITE(V1) {
int pinValue = param.asInt();
if (pinValue) {
digitalWrite(RELAY_PIN, LOW); // Turn on the pump (assuming active low relay)
Serial.println("Pump ON");
} else {
digitalWrite(RELAY_PIN, HIGH); // Turn off the pump
Serial.println("Pump OFF");
}
}
void setup() {
// Debug console
Serial.begin(115200);
// Initialize the DHT sensor
dht.begin();
// Set relay pin as output
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, HIGH); // Initial state is off
// Connect to WiFi
Blynk.begin(auth, ssid, pass);
// Setup a function to be called every second
timer.setInterval(1000L, sendSensorData);
}
void loop() {
Blynk.run();
timer.run(); // Run the Blynk timer
}