#define BLYNK_TEMPLATE_ID "TMPL60HCQiLWn"
#define BLYNK_TEMPLATE_NAME "Quickstart Template"
#define BLYNK_AUTH_TOKEN "g2XRpIfO3ziodtVTPN_QktmvkvS8K8tP"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST"; // Ganti dengan nama jaringan Wi-Fi Anda
char pass[] = ""; // Ganti dengan password jaringan Wi-Fi Anda, jika ada
#define DHTPIN 4
#define DHTTYPE DHT22
#define LED_TEMP_PIN 2 // Pin untuk LED indikator suhu fisik
#define LED_HUMID_PIN 5 // Pin untuk LED indikator kelembapan fisik
// Virtual pins
#define VIRTUAL_PIN_TEMP V0
#define VIRTUAL_PIN_HUMIDITY V1
#define VIRTUAL_LED_TEMP V2
#define VIRTUAL_LED_HUM V3
// Ambang batas untuk suhu dan kelembapan
const float tempThreshold = 50.0;
const float humThreshold = 75.0;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
pinMode(LED_TEMP_PIN, OUTPUT);
pinMode(LED_HUMID_PIN, OUTPUT);
Blynk.begin(auth, ssid, pass);
dht.begin();
}
void loop() {
Blynk.run();
// Ada delay di sini, tapi lebih baik gunakan timer
delay(2000);
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Humidity: "));
Serial.print(humidity);
Serial.print(F("% Temperature: "));
Serial.println(temperature);
Blynk.virtualWrite(VIRTUAL_PIN_TEMP, temperature);
Blynk.virtualWrite(VIRTUAL_PIN_HUMIDITY, humidity);
if (temperature > tempThreshold) {
Blynk.virtualWrite(VIRTUAL_LED_TEMP, 255); // Menyalakan LED di aplikasi Blynk
digitalWrite(LED_TEMP_PIN, HIGH); // Menyalakan LED fisik untuk suhu
} else {
Blynk.virtualWrite(VIRTUAL_LED_TEMP, 0); // Mematikan LED di aplikasi Blynk
digitalWrite(LED_TEMP_PIN, LOW); // Mematikan LED fisik untuk suhu
}
if(humidity > humThreshold) {
Blynk.virtualWrite(VIRTUAL_LED_HUM, 255); // Menyalakan LED di aplikasi Blynk
digitalWrite(LED_HUMID_PIN, HIGH); // Menyalakan LED fisik untuk kelembapan
} else {
Blynk.virtualWrite(VIRTUAL_LED_HUM, 0); // Mematikan LED di aplikasi Blynk
digitalWrite(LED_HUMID_PIN, LOW); // Mematikan LED fisik untuk kelembapan
}
}