#define BLYNK_TEMPLATE_ID "YourTemplateID"
#define BLYNK_TEMPLATE_NAME "ESP32 MultiSensor"
#define BLYNK_AUTH_TOKEN "YourAuthToken"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHT.h"
#define DHTPIN 15
#define DHTTYPE DHT22 // or DHT11
#define TRIG_PIN 5
#define ECHO_PIN 18
#define LDR_PIN 4
#define LED_PIN 2
DHT dht(DHTPIN, DHTTYPE);
char ssid[] = "YourWiFiSSID";
char pass[] = "YourWiFiPassword";
// LED control from Blynk
BLYNK_WRITE(V4) {
int ledState = param.asInt();
digitalWrite(LED_PIN, ledState);
}
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(LDR_PIN, INPUT);
dht.begin();
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}
long readUltrasonicDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
long distance = duration * 0.034 / 2;
return distance;
}
void loop() {
Blynk.run();
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
int ldrValue = digitalRead(LDR_PIN);
long distance = readUltrasonicDistance();
// Print to Serial Monitor
Serial.print("Temp: "); Serial.print(temperature);
Serial.print(" °C, Humidity: "); Serial.print(humidity);
Serial.print(" %, Distance: "); Serial.print(distance);
Serial.print(" cm, LDR: "); Serial.println(ldrValue == LOW ? "Dark" : "Light");
// Send to Blynk
Blynk.virtualWrite(V0, temperature);
Blynk.virtualWrite(V1, humidity);
Blynk.virtualWrite(V2, distance);
Blynk.virtualWrite(V3, ldrValue == LOW ? "Dark" : "Light");
delay(2000); // Adjust as needed
}