#define BLYNK_TEMPLATE_ID "TMPL6ErGtoExP"
#define BLYNK_TEMPLATE_NAME "DHT Control"
#define BLYNK_AUTH_TOKEN "vBtvwuqNQ_I_rJeDXt6NNjSoW77fCADv"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const int pins[] = {2, 4, 5, 16, 17, 18, 19, 21, 22, 23};
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
void setup() {
Serial.begin(115200);
dht.begin();
for (int i = 0; i < 10; i++) {
pinMode(pins[i], OUTPUT);
}
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
timer.setInterval(2000L, sendSensorData);
}
void displayBarGraph(int value, int max_value) {
int numBars = map(value, 0, max_value, 0, 10);
for (int i = 0; i < 10; i++) {
digitalWrite(pins[i], (i < numBars) ? HIGH : LOW);
}
}
void sendSensorData() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Temperature: "));
Serial.print(temperature);
Serial.println(F("°C"));
Serial.print(F("Humidity: "));
Serial.print(humidity);
Serial.println(F("%"));
displayBarGraph(temperature, 80);
Blynk.virtualWrite(V0, temperature);
Blynk.virtualWrite(V1, humidity);
}
void loop() {
Blynk.run();
timer.run();
}