#define BLYNK_TEMPLATE_ID "TMPL6CD3WNqKI"
#define BLYNK_TEMPLATE_NAME "test"
#define BLYNK_AUTH_TOKEN "8yLlSIGS0fTR7NmB7Ka5_TDeNKmDZ2Vg"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h> //Memasukan data libraries
char auth[] = BLYNK_AUTH_TOKEN ; //Auth Token blynk
char ssid[] = "Wokwi-GUEST"; //nama Wifi
char pass[] = ""; //password Wifi
const int DHT_PIN = 15;//data DHT pin masuk
int value0, value1, value2, value3, value6;//untuk menyimpan status dari LED yang dikendalikan melalui aplikasi Blynk
byte LED_R = 26;
byte LED_Y = 27;
byte LED_G = 14;
byte LED_B = 12;//Mendefinisikan nama pin
DHTesp dht;//memanggil DHTesp membantu dht untuk berinteraksi dengan microcontoler
BlynkTimer timer;//mengupdate data ke blynk setiap 1000milidetik sekali
void sendSensor()
{
TempAndHumidity data = dht.getTempAndHumidity();//mengambil data suhu dan temperatur di dht fisik dan di antar ke program data
Serial.print("Temperature: ");
Serial.print(data.temperature);
Serial.println(" C");
Serial.print(" Kelembaban: ");
Serial.print(data.humidity);
Serial.println("% ");//berfungsi untuk menampilkan informasi berupa "Suhu: [nilai suhu] C" dan "Kelembaban: [nilai kelembaban] %" ke Serial Monitor.
Blynk.virtualWrite(V4, data.temperature); //mengirimkan data temperatur ke Virtual pin Blynk cloud
Blynk.virtualWrite(V5, data.humidity); //mengirimkan data kelemaban ke Virtual pin Blynk cloud
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BLYNK_WRITE(V0)
{
value0 = param.asInt();
digitalWrite(LED_R, value0);
}
BLYNK_WRITE(V1)
{
value1 = param.asInt();
digitalWrite(LED_Y, value1);
}
BLYNK_WRITE(V2)
{
value2 = param.asInt();
digitalWrite(LED_G, value2);;
}
BLYNK_WRITE(V3)
{
value3 = param.asInt();
digitalWrite(LED_B, value3);
}
void setup()
{
// Debug console
Serial.begin(115200); //serial monitor menggunakan bautrate 9600
dht.setup(DHT_PIN, DHTesp::DHT22);
pinMode(LED_R, OUTPUT);
pinMode(LED_Y, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
Blynk.begin(auth, ssid, pass); //memulai Blynk
timer.setInterval(1000, sendSensor); //Mengaktifkan timer untuk pengiriman data 1000ms
}
void loop()
{
Blynk.run(); //menjalankan blynk
timer.run(); //menjalankan timer
}