// Blynk settings
#define BLYNK_TEMPLATE_ID "TMPLYJiSr6vb"
#define BLYNK_TEMPLATE_NAME "DHT22Blynk"
#define BLYNK_AUTH_TOKEN "lOColDT-Qjz4a7S7XE2buhiD-DOVVqD2"
// Libraries
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHTesp.h"
// Pin definitions
#define LED 23
#define BLYNK_PRINT Serial
// DHT sensor pin
const int DHT_PIN = 15;
DHTesp dhtSensor;
// WiFi credentials
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// Blynk timer
BlynkTimer timer;
// Callback when Blynk is connected
BLYNK_CONNECTED() {
// Sync virtual pin 2 on connection
Blynk.syncVirtual(2);
}
// State variable for the toggle button
bool toggleState_1 = LOW;
// Blynk callback for virtual pin V5
BLYNK_WRITE(V5) {
// Read the state from the app
toggleState_1 = param.asInt();
// Control the LED based on the state
digitalWrite(LED, toggleState_1 ? HIGH : LOW);
}
// Function to send sensor data to Blynk
void sendSensor() {
// Read temperature and humidity from DHT sensor
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("-----------------------------------");
// Send data to Blynk app
Blynk.virtualWrite(V0, data.temperature);
Blynk.virtualWrite(V1, data.humidity);
delay(100);
}
void setup() {
// Initialize serial communication
Serial.begin(9600);
// Connect to WiFi and Blynk
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Set LED pin as output
pinMode(LED, OUTPUT);
// Initialize DHT sensor
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
// Set up timer to send sensor data every 2 seconds
timer.setInterval(2000L, sendSensor);
}
void loop() {
// Run Blynk tasks
Blynk.run();
// Run timer tasks
timer.run();
}