#define BLYNK_TEMPLATE_ID "YourTemplateID"
#define BLYNK_DEVICE_NAME "YourDeviceName"
#define BLYNK_AUTH_TOKEN "YourAuthToken"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "YourWiFiSSID";
char pass[] = "YourWiFiPassword";
// Pin definitions
#define DHTPIN 15
#define DHTTYPE DHT22 // Change to DHT11 if needed
#define TRIG_PIN 12
#define ECHO_PIN 14
#define LDR_PIN 27
#define LED_PIN 2
DHT dht(DHTPIN, DHTTYPE);
// LED control from Blynk (Virtual Pin V4)
BLYNK_WRITE(V4) {
int pinValue = param.asInt();
digitalWrite(LED_PIN, pinValue);
}
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LDR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
dht.begin();
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
sendSensorData();
delay(2000); // Send every 2 seconds
}
void sendSensorData() {
// DHT sensor
float temp = dht.readTemperature();
float hum = dht.readHumidity();
// Ultrasonic sensor
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2;
// LDR digital read
int ldrStatus = digitalRead(LDR_PIN); // 1 = DARK, 0 = LIGHT
// Debug prints
Serial.print("Temp: "); Serial.println(temp);
Serial.print("Humidity: "); Serial.println(hum);
Serial.print("Distance: "); Serial.println(distance);
Serial.print("LDR: "); Serial.println(ldrStatus);
// Send to Blynk
Blynk.virtualWrite(V0, temp);
Blynk.virtualWrite(V1, hum);
Blynk.virtualWrite(V2, distance);
Blynk.virtualWrite(V3, ldrStatus);
}