#define BLYNK_PRINT Serial //deklarasi untuk menampilkan keterangan mulai koneksi ke blynk pada serial monitor
#define BLYNK_TEMPLATE_ID "TMPL66jMOriNy"
#define BLYNK_TEMPLATE_NAME "Project IoT Sederhana 2"
#define BLYNK_AUTH_TOKEN "i2jHR9ypD2J_X3sg6FGUf_J5hTiKoLfz"
#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[] = BLYNK_AUTH_TOKEN;
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,V2, 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
}