#define BLYNK_TEMPLATE_ID "TMPL6Hf2XkGNL"
#define BLYNK_TEMPLATE_NAME "themiya"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
// Replace with your credentials
char auth[] = "XnFqmDXj_V8IpuZBSDcWc5Febr8R43R8";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define LED_PIN 12
#define DHT_PIN 13
#define DHT_TYPE DHT22
#define TRIG_PIN 5 // Ultrasonic Sensor Trigger Pin
#define ECHO_PIN 4 // Ultrasonic Sensor Echo Pin
DHT dht(DHT_PIN, DHT_TYPE);
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
dht.begin();
Blynk.begin(auth, ssid, pass);
}
// Control LED (V0)
BLYNK_WRITE(V0) {
digitalWrite(LED_PIN, param.asInt());
}
// Send DHT22 data (V1 - Humidity, V2 - Temperature)
void sendSensorData() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (!isnan(temp) && !isnan(hum)) {
Blynk.virtualWrite(V1, hum);
Blynk.virtualWrite(V2, temp);
}
}
void getDistance(){
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
int distance = duration * 0.017; // Convert to cm
Blynk.virtualWrite(V3, distance);
}
void loop() {
Blynk.run();
sendSensorData();
delay(200); // Send data every 2 seconds
getDistance();
delay(100);
}