//Declaration
#define BLYNK_TEMPLATE_ID "TMPLjWogd9b9"
#define BLYNK_PRINT Serial //deklarasi untuk menampilkan keterangan mulai koneksi ke blynk pada serial monitor
#define LED1 2
#define LED2 4
int DHT = 15;
//Libraries
#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
DHTesp dht; //merubah perintah dari DHTesp menjadi perintah "dht"
BlynkTimer timer; //merubah perintah BlynkTimer menjadi "timer"
char auth[] = "rde9hIxAt73tBCA75jQxDNUNRoTCcoim"; //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
//Functions
void sendData(){ //void untuk mengirimkan pembacaan sensor atau nilai ke blynk
TempAndHumidity data = dht.getTempAndHumidity(); //mengakses nilai kelembaban dan suhu dari sensor DHT 22
Blynk.virtualWrite(V2, data.temperature); //mengirimkan data suhu ke virtual pin1 pada blynk
Blynk.virtualWrite(V3, data.humidity); //mengirimkan data suhu ke virtual pin1 pada blynk
Serial.println("Temperature: " + String(data.temperature, 2) + "C"); //menampilkan tulisan Temp: nilai suhu dhtC ke dalam serial monitor
Serial.println("Humidity: " + String(data.humidity, 2) + "%"); //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 LED1 menyala sesuai dengan kondisi button virtual pada blynk
}
BLYNK_WRITE(V1){ //perintah untuk membaca nilai yang dikirim oleh blynk
int pinVal = param.asInt(); //perintah untuk memasukkan nilai dari pin virtual blynk ke variabel pinVal
digitalWrite(LED2, pinVal); //perintah untuk membuat LED1 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);
pinMode(LED2, OUTPUT);
dht.setup(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, sendData); //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
}