#define BLYNK_TEMPLATE_ID "TMPL6Ax32ffep"
#define BLYNK_TEMPLATE_NAME "ESP32 DHT"
#define BLYNK_AUTH_TOKEN "hRW7RyXwcm64eumM0bJHUDZ91k9FvEeb"
#define BLYNK_PRINT Serial // Mengaktifkan output serial untuk debugging
// INCLUDE!!!
#include <WiFi.h> // Library untuk koneksi WiFi
#include <WiFiClient.h> // Library untuk koneksi WiFi
#include <BlynkSimpleEsp32.h> // Library Blynk untuk ESP32
#include <DHT.h> // Library untuk sensor DHT
// TOKEN !!!
char auth[] = BLYNK_AUTH_TOKEN;
// WIFI !!!
char ssid[] = "Wokwi-GUEST"; // Nama jaringan WiFi yang digunakan
char pass[] = ""; // Password jaringan WiFi
#define DHTPIN 5 // Pin digital tempat sensor DHT22 terhubung
#define DHTTYPE DHT22 // Jenis sensor DHT yang digunakan adalah DHT22
DHT dht(DHTPIN, DHTTYPE); // Membuat objek DHT dengan pin dan tipe yang telah ditentukan
BlynkTimer timer; // Membuat objek timer Blynk
void setup() {
Serial.begin(115200); // Memulai komunikasi serial dengan baud rate 115200
Blynk.begin(auth, ssid, pass); // Memulai koneksi ke Blynk dengan token autentikasi dan kredensial WiFi
// Anda juga bisa menentukan server:
// Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
// Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
dht.begin(); // Memulai sensor DHT
timer.setInterval(2500L, sendSensor); // Menentukan interval waktu untuk memanggil fungsi sendSensor setiap 2500 ms
}
void loop() {
Blynk.run(); // Menjalankan Blynk
timer.run(); // Menjalankan timer Blynk
}
void sendSensor() {
float h = dht.readHumidity(); // Membaca nilai kelembaban dari sensor DHT22
float t = dht.readTemperature(); // Membaca nilai suhu dari sensor DHT22
if (isnan(h) || isnan(t)) { // Jika pembacaan sensor gagal (menghasilkan NaN)
Serial.println("Failed to read from DHT sensor!"); // Tampilkan pesan kesalahan
return;
}
Blynk.virtualWrite(V1, h); // Mengirim nilai kelembaban ke Virtual Pin V1 di Blynk
Blynk.virtualWrite(V0, t); // Mengirim nilai suhu ke Virtual Pin V0 di Blynk
Serial.print("Temperature : ");
Serial.print(t); // Menampilkan nilai suhu di serial monitor
Serial.print(" Humidity : ");
Serial.println(h); // Menampilkan nilai kelembaban di serial monitor
}