#define BLYNK_PRINT Serial //deklarasi untuk menampilkan keterangan mulai koneksi ke blynk pada serial monitor
#define BLYNK_TEMPLATE_ID "TMPLLDXtGRTA"
#define BLYNK_TEMPLATE_NAME "Test"
#define BLYNK_AUTH_TOKEN "0IWTbU9XamrJl3SWhjKKb3xAhwDtBrJi"
#define LED1 2 //deklarasi pin led
#include <WiFi.h> //deklarasi library WiFi.h
#include <WiFiClient.h> //deklarasi library WiFiClient.h
#include <BlynkSimpleEsp32.h> //deklarasi library blynk
#include <DHTesp.h> //deklarasi library DHT khusus Board ESP
int PIN_DHT = 15; //deklrasi pin DHT
DHTesp dht; //merubah perintah dari DHTesp menjadi perintah "dht"
char auth[] = "0IWTbU9XamrJl3SWhjKKb3xAhwDtBrJi"; //deklarasi auth token dari device blynk yang dibuat, bisa dilihat pada bagian device info
char ssid[] = "Wokwi-GUEST"; //ssid wifi yang digunakan
char pass[] = ""; //password wifi yang digunakan
BlynkTimer timer; //merubah perintah BlynksasaTimer menjadi "timer"
void kirimData(){ //void untuk mengirimkan pembacaan sensor atau nilai ke blynk
TempAndHumidity data = dht.getTempAndHumidity(); //mengakses nilai kelembaban dan suhu dari sensor DHT 22
Blynk.virtualWrite(V1, data.temperature); //mengirimkan data suhu ke virtual pin1 pada blynk
Blynk.virtualWrite(V2, data.humidity); //mengirimkan data suhu ke virtual pin1 pada blynk
Serial.println("Temp: " + String(data.temperature, 2) + "C"); //menampilkan tulisan Temp: nilai suhu dhtC ke dalam serial monitor
Serial.println("------");
Serial.println("Hum: " + String(data.humidity, 2)); //menampilkan tulisan Temp: nilai suhu dhtC ke dalam serial monitor
Serial.println("------");
}
BLYNK_READ(V1){ //perintah untuk membaca nilai yang dikirim oleh blynk
Serial.println(V1);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Blynk.begin(auth, ssid, pass); //inisialisasi komunikasi dengan server blynk
pinMode(LED1, OUTPUT);
dht.setup(PIN_DHT, DHTesp::DHT22); //inisialisasi pembacaan sensor DHT22, jika jenis DHT-nya berbeda tinggal disesuaikan pada DHTesp::DHT22 menjadi seri dht yang digunakan. Misal DHT11 menjadi DHTesp::DHT11
timer.setInterval(2000L, kirimData); //interval pengiriman data dari mikrokontroler ke blynk
}
void loop() {
// put your main code here, to run repeatedly:
Blynk.run(); //menjalankan perintah yang ada di library blynk
timer.run(); //menjalankan timer dari blynk
}