#define BLYNK_TEMPLATE_ID "TMPL6P1tws6zF"
#define BLYNK_TEMPLATE_NAME "ESP8266 WIFI 2"
#define BLYNK_AUTH_TOKEN "k1qSb3Tje4q1ah8UzYgbYL8vl-m9GVf1"
#if defined(ESP8266)
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#elif defined(ESP32)
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#endif
#include <DHT.h>
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define BUZZERPIN 4
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
BLYNK_CONNECTED() {
Blynk.setProperty(V3, "offImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png");
Blynk.setProperty(V3, "onImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png");
Blynk.setProperty(V3, "url", "https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made");
}
void sendSensor() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
if (t > 40) {
tone(BUZZERPIN, 2000);
} else {
noTone(BUZZERPIN);
}
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" °C, Humidity: ");
Serial.print(h);
Serial.println(" %");
Blynk.virtualWrite(V0, t); // Kirim suhu ke Virtual Pin V0
Blynk.virtualWrite(V1, h); // Kirim kelembaban ke Virtual Pin V1
}
void setup() {
// Debug console
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
dht.begin();
pinMode(BUZZERPIN, OUTPUT);
timer.setInterval(2000L, sendSensor);
}
void loop() {
Blynk.run();
timer.run();
}