#define BLYNK_TEMPLATE_ID "TMPL6pN3mhQZu"
#define BLYNK_TEMPLATE_NAME "Smart City"
#define BLYNK_AUTH_TOKEN "MLvtw0GKWURDWuZwW64SoJL_e-RsJQrw"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
#include <DHTesp.h>
const int DHT_PIN = 12;
DHTesp dhtSensor;
float suhu, kelembaban;
#define echoPin 0
#define trigPin 2
void setup()
{
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
timer.setInterval(1000L, myTimerEvent);
}
void myTimerEvent()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
int duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2;
TempAndHumidity data = dhtSensor.getTempAndHumidity();
suhu = data.temperature;
kelembaban = data.humidity;
Serial.println("Suhu: " + String(suhu, 1) + "C");
Serial.println("Kelembaban: " + String(kelembaban, 1) + "%");
if (suhu > 35)
{
Serial.println("Suhu Naik");
Blynk.logEvent("high_temp");
}
delay(1000);
Blynk.virtualWrite(V0, suhu);
Blynk.virtualWrite(V1, kelembaban);
Blynk.virtualWrite(V2, distance);
}
void loop()
{
Blynk.run();
timer.run();
}