#define BLYNK_PRINT Serial //deklarasi untuk menampilkan keterangan mulai koneksi ke blynk pada serial monitor
#define BLYNK_TEMPLATE_ID "TMPLvnPM-ddn" //template id dari template blynk yang dibuat, bagian dalam "" disesuaikan dengan device id masing-masing yang bisa di cek di bagian Device Info
#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[] = "Bbqc4Rmt-dfvGb6UlxzLk3hv-WlyHH-I"; //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 BlynkTimer 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
Serial.println("Temp: " + String(data.temperature, 2) + "C"); //menampilkan tulisan Temp: nilai suhu dhtC ke dalam serial monitor
Serial.println("------");
}
BLYNK_WRITE(V0){ //perintah untuk membaca nilai yang dikirim oleh blynk
int pinVal = param.asInt(); //perintah untuk memasukkan nilai dari pin virtual blynk ke variabel pinVal
digitalWrite(LED1, pinVal); //perintah untuk membuat LED menyala sesuai dengan kondisi button virtual pada blynk
}
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
}