#define BLYNK_TEMPLATE_ID "TMPL6Tss03nWr"
#define BLYNK_TEMPLATE_NAME "dht11"
#define BLYNK_AUTH_TOKEN "50cIUVaiZFUI04FBW239PkazSlv_ezIX"
#include <Arduino.h>
#include <DHT.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define LED_PIN 14
#define DHTPIN 18
#define DHTTYPE DHT22
#define BUTTON_PIN 4
DHT dht(DHTPIN, DHTTYPE);
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int tempSwitchState = LOW;
int buttonSwitchState = LOW;
int prevLedState = LOW;
int buttonToggleState = LOW;
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
dht.begin();
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
tempSwitchState = LOW;
if (temperature > 30) {
tempSwitchState = HIGH;
}
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW) {
buttonToggleState = !buttonToggleState;
}
int ledState = LOW;
if ((tempSwitchState == HIGH && buttonToggleState == LOW) || (tempSwitchState == LOW && buttonToggleState == HIGH)) {
ledState = HIGH;
}
if (ledState != prevLedState) {
digitalWrite(LED_PIN, ledState);
prevLedState = ledState;
}
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print("C, Humidity: ");
Serial.print(humidity);
Serial.print("%, LED State: ");
Serial.print(ledState);
Serial.print(", Button Toggle State: ");
Serial.println(buttonToggleState);
Blynk.virtualWrite(V1, humidity);
Blynk.virtualWrite(V2, temperature);
Blynk.virtualWrite(V3, ledState);
delay(1000);
}
//BLYNK_CONNECTED() {
// Blynk.virtualWrite(V5, 0);
// Blynk.attachVirtualWrite(V5, ledButtonHandler);
//}
//void ledButtonHandler(int value) {
// if (value == 1) {
// digitalWrite(LED_PIN, HIGH);
//} else {
// digitalWrite(LED_PIN, LOW);
// }
//}