#define BLYNK_TEMPLATE_ID "TMPL6rBrJECYY"
#define BLYNK_TEMPLATE_NAME "Pelatihan IoT BPVP"
#define BLYNK_AUTH_TOKEN "h70ZlBY29GsnrdcbgZmK-murkQtGEHLu"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 12
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE); //Inisialisasi sensor DHT dengan pin dan jenisnya
BlynkTimer timer; //Membuat objek timer dari Blynk untuk pengaturan interval
LiquidCrystal_I2C lcd(0x27, 16, 2); //Inisialisasi layar LCD dengan alamat I2C dan ukuran 16x2
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
void sendSensor(){
float t= dht.readTemperature(); // Membaca suhu dari sensor DHT
float h= dht.readHumidity(); // Membaca kelembaban dari sensor DHT
Blynk.virtualWrite(V1, t);//mengaktifkan sensor suhu saat dinyalakan
Blynk.virtualWrite(V2, h);//mengaktifkan sesnsor kelembapan saat di nyalakan
}
//Membuat fungsi untuk V0
BLYNK_WRITE(V0) {
int pinValue = param.asInt(); // Mendapatkan nilai yang dikirim dari Blynk melalui pin virtual V0
float t = dht.readTemperature(); // Membaca suhu dari sensor DHT
float h = dht.readHumidity(); // Membaca kelembaban dari sensor DHT
if (t >= 38) {
digitalWrite(12, HIGH); // Mengatur lampu LED yang terhubung pin 12 menjadi HIGH (ON) jika suhu lebih besar atau sama dengan 38°C
}
if (t <= 38) {
digitalWrite(12, LOW); // Mengatur lampu LED yang terhubung pin 12 menjadi LOW (OFF) jika suhu kurang dari 38°C
Serial.print("V0 Slider value is: ");
Serial.println(pinValue); // Mencetak nilai slider dari Blynk
}
}
void setup()
{
Serial.begin(115200); // Inisialisasi komunikasi serial dengan kecepatan 115200 bps
pinMode(12, OUTPUT); // Mengatur pin 12 sebagai OUTPUT
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); // Menghubungkan ke server Blynk dengan token dan informasi Wi-Fi
dht.begin(); // Memulai komunikasi dengan sensor DHT
timer.setInterval(1000L, sendSensor); // Mengatur interval timer untuk membaca sensor setiap 1 detik
}
void loop()
{
Blynk.run(); // Memproses permintaan Blynk
timer.run(); // Menjalankan timer
}