// Blynk Configuration
#define BLYNK_TEMPLATE_ID "TMPL6VlLLDwVH" // Replace with your Template ID
#define BLYNK_TEMPLATE_NAME "IOT Programe" // Replace with your Template Name
#define BLYNK_AUTH_TOKEN "pIdMI31_xli7PY9b6V0ux3PnjCI7sKoI"// Replace with your Blynk Auth Token
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
// WiFi credentials
char ssid[] = "Your_WiFi_SSID"; // Replace with your WiFi SSID
char pass[] = "Your_WiFi_PASSWORD"; // Replace with your WiFi Password
// DHT22 configuration
#define DHTPIN 15 // GPIO pin connected to DHT22 signal
#define DHTTYPE DHT22 // DHT22 sensor type
DHT dht(DHTPIN, DHTTYPE);
// LCD configuration
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 for a 16x2 LCD display
// Virtual pins in Blynk
#define TEMP_VPIN V1 // Virtual pin for temperature
#define HUMID_VPIN V2 // Virtual pin for humidity
void setup() {
// Initialize Serial Monitor
Serial.begin(115200);
Serial.println("DHT22 Sensor with LCD and Blynk");
// Initialize DHT sensor
dht.begin();
// Initialize LCD
lcd.init();
lcd.backlight();
lcd.print("Connecting...");
// Connect to WiFi and Blynk
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
lcd.clear();
lcd.print("Connected!");
delay(2000);
lcd.clear();
}
void loop() {
// Run Blynk
Blynk.run();
// Read temperature and humidity from DHT22
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Check if the sensor returns valid data
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
lcd.setCursor(0, 0);
lcd.print("Sensor Error!");
delay(2000); // Retry after 2 seconds
return;
}
// Print data to Serial Monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("°C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println("%");
// Display data on the LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print(" %");
// Send data to Blynk
Blynk.virtualWrite(TEMP_VPIN, temperature); // Send temperature to Virtual Pin V1
Blynk.virtualWrite(HUMID_VPIN, humidity); // Send humidity to Virtual Pin V2
// Wait for 2 seconds before reading again
delay(2000);
}