#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
// Blynk authentication token
#define BLYNK_AUTH_TOKEN "VNYANE5V3JeWQhfTTxwzNKFKzPn1is5n" // Enter your Blynk auth token
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST"; // Enter your WiFi name
char pass[] = ""; // Enter your WiFi password
// Define LED pins
const int led1Pin = 4;
const int led2Pin = 0;
const int led3Pin = 2;
// Define DHT sensor pin and type
#define DHTPIN 13 // DHT22 sensor connected to GPIO 15
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE);
// Blynk virtual pins
#define BUTTON1_PIN V0
#define BUTTON2_PIN V1
#define BUTTON3_PIN V2
#define TEMP_PIN V3
#define HUM_PIN V4
BLYNK_WRITE(BUTTON1_PIN) {
int buttonState = param.asInt();
digitalWrite(4, buttonState);
}
BLYNK_WRITE(BUTTON2_PIN) {
int buttonState = param.asInt();
digitalWrite(0, buttonState);
}
BLYNK_WRITE(BUTTON3_PIN) {
int buttonState = param.asInt();
digitalWrite(2, buttonState);
}
void setup() {
// Initialize serial communication
Serial.begin(115200);
// Initialize the LED pins as outputs
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
// Initialize the DHT sensor
dht.begin();
// Initialize Blynk
Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
}
void loop() {
// Run Blynk
Blynk.run();
// Read temperature and humidity data from DHT22
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Check if any reads failed and exit early (to try again)
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Print temperature and humidity data to the serial monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C ");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
// Send temperature and humidity data to Blynk
Blynk.virtualWrite(TEMP_PIN, temperature);
Blynk.virtualWrite(HUM_PIN, humidity);
// Wait a few seconds between measurements
delay(2000);
}