#define BLYNK_TEMPLATE_ID "TMPL6my5gtzC1"
#define BLYNK_TEMPLATE_NAME "Smart Home with ESP32"
#include "DHT.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN,DHTTYPE);
char auth[] = "imwTT55dqg0cmLuRWCzHAym1Der8xf8e"; // Your Blynk authentication token
char ssid[] = "CLASS ROOM"; // Your WiFi SSID
char pass[] = "ADB@2021$"; // Your WiFi password
#define RELAY_1_PIN 23 // Relay 1 control pin
#define RELAY_2_PIN 22 // Relay 2 control pin
#define RELAY_3_PIN 21 // Relay 3 control pin
#define RELAY_4_PIN 19 // Relay 4 control pin
#define TEMPERATURE_VIRTUAL_PIN V4 // Blynk virtual pin for temperature
#define HUMIDITY_VIRTUAL_PIN V5 // Blynk virtual pin for humidity
BlynkTimer timer;
void sendSensorData() {
float temperature = dht.readTemperature(); // Read temperature
float humidity = dht.readHumidity(); // Read humidity
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(TEMPERATURE_VIRTUAL_PIN, temperature); // Send temperature data to Blynk
Blynk.virtualWrite(HUMIDITY_VIRTUAL_PIN, humidity); // Send humidity data to Blynk
Serial.println(temperature);
Serial.println(humidity);
}
void setup() {
Serial.begin(115200);
dht.begin();
Blynk.begin(auth, ssid, pass); // Connect to Blynk server
pinMode(RELAY_1_PIN, OUTPUT);
pinMode(RELAY_2_PIN, OUTPUT);
pinMode(RELAY_3_PIN, OUTPUT);
pinMode(RELAY_4_PIN, OUTPUT);
timer.setInterval(1000L, sendSensorData); // Send sensor data every 1 second
}
void loop() {
Blynk.run();
timer.run();
}
BLYNK_WRITE(V0) { // Blynk button widget for Relay 1
int state = param.asInt();
digitalWrite(RELAY_1_PIN, state);
}
BLYNK_WRITE(V1) { // Blynk button widget for Relay 2
int state = param.asInt();
digitalWrite(RELAY_2_PIN, state);
}
BLYNK_WRITE(V2) { // Blynk button widget for Relay 3
int state = param.asInt();
digitalWrite(RELAY_3_PIN, state);
}
BLYNK_WRITE(V3) { // Blynk button widget for Relay 4
int state = param.asInt();
digitalWrite(RELAY_4_PIN, state);
}