//Tiga parameter di bawah ini biasanya ada saat kita membuat template baru
#define BLYNK_TEMPLATE_ID "TMPL6QEflKd4_"
#define BLYNK_TEMPLATE_NAME "Pemantauan keamanan rumah dan kontrol jarak jauh"
#define BLYNK_AUTH_TOKEN "MWl0n8eEMPEvVBumyuaA08N73UBn3TPK"
#define BLYNK_PRINT Serial //Kita menggunakan Blynk serial
#include <WiFi.h> //Library WiFi
#include <WiFiClient.h> //Library WiFiClient
#include <BlynkSimpleEsp32.h> //Library BlynkESP32
#include <HTTPClient.h>
// #include <Adafruit_GFX.h>
// #include <Adafruit_ILI9341.h>
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 = 14; //Pin signal DHT
byte led = 5; //Pin LED adalah D5
DHTesp dhtSensor; //Buat objek bernama dhtSensor
float suhu, kelembaban; //Variabel suhu dan kelembaban
//LCD
// #define BTN_PIN 5
// #define TFT_DC 2
// #define TFT_CS 15
// Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
//Relay
#define relay1 25
#define relay2 26
#define relay3 27
void setup()
{
Serial.begin(115200); //Menginisiasi serial monitor
// WiFi.begin(ssid, pass, 6);
// tft.begin();
// tft.setRotation(3);
// tft.setTextColor(ILI9341_WHITE);
// tft.setTextSize(2);
// tft.print("Connecting to WiFi");
// while (WiFi.status() != WL_CONNECTED) {
// delay(100);
// tft.print(".");
// }
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(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
// tft.print("Connected");
}
void myTimerEvent()
{
TempAndHumidity data = dhtSensor.getTempAndHumidity(); //Inisiasi pengambilan data
suhu = data.temperature; //Mendefinisikan variabel suhu
kelembaban = data.humidity; //Mendefinisikan variabel kelembaban
Serial.println("Suhu: " + String(suhu, 1) + "C");
Serial.println("Kelembaban: " + String(kelembaban, 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"
}
delay(100);
Blynk.virtualWrite(V4, suhu); //Mengirim data suhu menurut pin V0 di Blynk
Blynk.virtualWrite(V5, kelembaban); //Mengirim data kelembaban pin V1
}
BLYNK_WRITE(V1) //V2, sesuai dengan pin Blynk yang ingin dipakai
{
int pinValue1 = param.asInt();
Serial.print("V2 Switch value is: ");
Serial.println(pinValue1);
digitalWrite(relay1, pinValue1);
}
BLYNK_WRITE(V2) //V2, sesuai dengan pin Blynk yang ingin dipakai
{
int pinValue2 = param.asInt();
Serial.print("V2 Switch value is: ");
Serial.println(pinValue2);
digitalWrite(relay2, pinValue2);
}
BLYNK_WRITE(V3) //V2, sesuai dengan pin Blynk yang ingin dipakai
{
int pinValue3 = param.asInt();
Serial.print("V2 Switch value is: ");
Serial.println(pinValue3);
digitalWrite(relay3, pinValue3);
}
void loop()
{
Blynk.run(); //Menjalankan Bylnk
timer.run(); //Menjalankan timer
}