//Tiga parameter di bawah ini biasanya ada saat kita membuat template baru
#define BLYNK_TEMPLATE_ID "TMPL6VGLU3s0J"
#define BLYNK_TEMPLATE_NAME "BRUHHHHHHHHHHHH 1" //Tulis nama template Blynk
#define BLYNK_AUTH_TOKEN "DW30ZC-nQugNje-CSEwmv9vcTwZ2OTKs" //Tulis token Blynk
#define BLYNK_PRINT Serial //Kita menggunakan Blynk serial
#include <WiFi.h> //Library WiFi
#include <WiFiClient.h> //Library WiFiClient
#include <BlynkSimpleEsp32.h> //Library BlynkESP32
char ssid[] = "Wokwi-GUEST"; //Nama WiFi yang digunakan
char pass[] = ""; //Password WiFi yang digunakan
BlynkTimer timer; //Untuk push data dibutuhkan blynk timer (untuk code push data dapat dilihat di blynk example)
//SENSOR DHT
#include <DHTesp.h> //Library untuk sensor DHT
const int DHT_PIN = 15; //Pin signal DHT
byte led_merah = 13; //Pin LED adalah D5
byte led_biru = 12;
DHTesp dhtSensor; //Buat objek bernama dhtSensor
float suhu, kelembapan; //Variabel suhu dan kelembaban
void setup()
{
Serial.begin(115200); //Menginisiasi serial monitor
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); //Menginisiasi Blynk
dhtSensor.setup(DHT_PIN, DHTesp::DHT22); //Mendefine dht sensor (DHT22 merupakan jenis DHT yang digunakan)
timer.setInterval(1000L, myTimerEvent); //Mengirim data tiap satu detik
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
}
void myTimerEvent()
{
TempAndHumidity data = dhtSensor.getTempAndHumidity(); //Inisiasi pengambilan data
suhu = data.temperature; //Mendefinisikan variabel suhu
kelembapan = data.humidity; //Mendefinisikan variabel kelembaban
Serial.println("Suhu: " + String(suhu, 1) + "C");
Serial.println("Kelembapan: " + String(kelembapan, 1) + "%");
//KODE UNTUK MENGIRIM NOTIFIKASI
if (suhu > 35) //Jika suhu lebih dari 35,maka...
{
Serial.println("Suhu Naik");
Blynk.logEvent("high_temp"); //...Blynk akan mengirimkan notifikasi ke Gmail, dgn event "suhu_naik"
Serial.println(led_merah, 13);
}else (suhu < 35);
{
Serial.println("Suhu menurun");
Blynk.logEvent("Low_temp");
}
if (kelembapan > 50) {
Serial.println("Kelembapan Naik");
Blynk.logEvent("High_humidity");;
Serial.println(led_biru, 12);
}else (kelembapan > 50);
{
Serial.println("Kelembapan menurun");
Blynk.logEvent("low_humidity");
}
delay(1000);
Blynk.virtualWrite(V0, suhu); //Mengirim data suhu menurut pin V0 di Blynk
Blynk.virtualWrite(V1, kelembapan); //Mengirim data kelembaban pin V1
digitalWrite(led_merah, 13);
digitalWrite(led_biru, 12);
}
void loop()
{
Blynk.run(); //Menjalankan Bylnk
timer.run(); //Menjalankan timer
}