#define BLYNK_TEMPLATE_ID "TMPL6MyM3TkDh"
#define BLYNK_TEMPLATE_NAME "Smart Home"
#define BLYNK_AUTH_TOKEN "MEMBt9wsIqeX5HYYKjq-IuriAnKrLdkL"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h> //Library untuk DHT
char auth[] = BLYNK_AUTH_TOKEN ; //Auth Token
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
const int DHT_PIN = 15;
int value1, value2;
int LED1 = 13;
int LED2 = 12;
DHTesp dht;
BlynkTimer timer;
//function untuk pengiriman sensor
void sendSensor()
{
float temperature = dht.getTemperature();
float humidity = dht.getHumidity();
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
Blynk.virtualWrite(V3, temperature); //mengirimkan data temperatur ke Virtual pin VO di Blynk Cloud
Blynk.virtualWrite(V4, humidity); //mengirimkan data kelemaban ke Virtual pin V1 di Blynk Cloud
if (temperature > 30) {
//Blynk.email("[email protected]", "Alert", "Temperature over 30°C!");
//Blynk.notify("Alert : Temperature over 30°C!");
Blynk.logEvent("temp_alert", "Temperature above 30°C");
}
}
BLYNK_WRITE(V1)
{
value1 = param.asInt();
digitalWrite(LED1, value1);
}
BLYNK_WRITE(V2)
{
value2 = param.asInt();
digitalWrite(LED2, value2);
}
void setup()
{
// Debug console
Serial.begin(115200); //serial monitor menggunakan bautrate 9600
dht.setup(DHT_PIN, DHTesp::DHT22);
pinMode(LED1, OUTPUT);
pinMode(LED2, 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
}