#define BLYNK_TEMPLATE_ID "TMPL6E51wacmV"
#define BLYNK_TEMPLATE_NAME "Wokwi to Blynk Test 1"
#define BLYNK_AUTH_TOKEN "dW4NoB2U4UAtzI7JLtT56CXq7_Bfbe5Y"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2
#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(V0, h);//mengaktifkan sesnsor kelembapan saat di nyalakan
Blynk.virtualWrite(V1, t);//mengaktifkan sensor suhu saat dinyalakan
}
//Membuat fungsi untuk V0
BLYNK_WRITE(V3) {
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("V3 Slider value is: ");
Serial.println(pinValue); // Mencetak nilai slider dari Blynk
}
}
//Membuat fungsi untuk v3 untuk mengatur hidup dan nyala lcd
BLYNK_WRITE(V2)
{
lcd.init(); // Menginisialisasi layar LCD
lcd.backlight(); // Mengaktifkan pencahayaan layar LCD
Serial.begin(115200); // Inisialisasi komunikasi serial dengan kecepatan 115200 bps
dht.begin(); // Memulai komunikasi dengan sensor DHT
pinMode(22, OUTPUT); // Mengatur pin 12 sebagai OUTPUT
float t = dht.readTemperature();
float h = dht.readHumidity();
lcd.setCursor(0,0); // Mengatur kursor layar LCD ke baris 1, kolom 1
lcd.print("Temp : "); // Menampilkan teks "Temp : "
lcd.print(t); // Menampilkan suhu
lcd.print((char)223); // Menampilkan simbol derajat Celsius
lcd.print("C"); // Menampilkan karakter "C"
lcd.setCursor(0,1); // Mengatur kursor layar LCD ke baris 2, kolom 1
lcd.print("Humid : "); // Menampilkan teks "Humid : "
lcd.print(h); // Menampilkan kelembaban
lcd.print("%"); // Menampilkan karakter persen
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.println("Suhu : "); // Mencetak teks "Suhu : "
Serial.println(t); // Mencetak nilai suhu
delay(1000); // Menunggu selama 1 detik untuk looping data berikutnya
}
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
}