#define BLYNK_TEMPLATE_ID "TMPL6vdVyRndi"
#define BLYNK_TEMPLATE_NAME "ProjectIoT"
#define BLYNK_AUTH_TOKEN "MEAhT0CpNG9AiuUVn5U7OLQ19hvO0dL1"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <string.h>
#include <DHTesp.h>
#include <ESP32Servo.h>
#define BLYNK_PRINT Serial
#define DHTTYPE DHT22
#define DHT_PIN 14
#define LED 27
#define Hot_water_tank 13
#define Servo_Pin 4
Servo servo;
DHTesp dhtSensor;
WidgetLED LED_ON_APP(V2);
WidgetLED Hot_water_tank_ON_APP(V4);
int button;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char password[] = "";
void setup()
{
servo.attach(04);
pinMode(Hot_water_tank, OUTPUT);
pinMode(LED, OUTPUT);
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
Blynk.begin(auth, ssid, password);
}
BLYNK_WRITE(V2) {
servo.write(param.asInt());
}
BLYNK_WRITE(V3) {
button = param.asInt();
if(button == 1) {
digitalWrite(LED, HIGH);
LED_ON_APP.on();
} else {
digitalWrite(LED, LOW);
LED_ON_APP.off();
}
}
BLYNK_WRITE(V4) {
button = param.asInt();
if(button == 1) {
digitalWrite(Hot_water_tank, HIGH);
Hot_water_tank_ON_APP.on();
} else {
digitalWrite(Hot_water_tank, LOW);
Hot_water_tank_ON_APP.off();
}
}
void loop()
{
Blynk.run();
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float t = data.temperature;
float h = data.humidity;
if (isnan(h) || isnan(t)) {
delay(500);
Serial.println("Failed to read from DHT sensor!\n");
return;
}
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, h);
Serial.print("\n");
Serial.print("Humidity: " + String(h) + "%");
Serial.print("\t");
Serial.print("Temperature: " + String(t) + " C");
delay(1000);
}