// 1. Identitas Blynk
#define BLYNK_TEMPLATE_ID "MASUKKAN_ID_DISINI"
#define BLYNK_TEMPLATE_NAME "Monitoring Suhu"
#define BLYNK_AUTH_TOKEN "MASUKKAN_TOKEN_DISINI"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <Wire.h> // ✅ Tambahan untuk I2C
#include <LiquidCrystal_I2C.h> // ✅ Tambahan untuk LCD
// 2. Konfigurasi WiFi & Sensor
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// ✅ Inisialisasi LCD (alamat 0x27, 16 kolom, 2 baris)
LiquidCrystal_I2C lcd(0x27, 16, 2);
BlynkTimer timer;
// 3. Fungsi Kirim Data Sensor
void kirimDataSensor() {
float h = dht.readHumidity();
float t = dht.readTemperature();
// Cek jika sensor gagal terbaca
if (isnan(h) || isnan(t)) {
Serial.println("Gagal membaca sensor DHT!");
// ✅ Tampilkan error di LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sensor Error!");
return;
}
// Kirim data ke Virtual Pin Blynk
Blynk.virtualWrite(V1, t);
Blynk.virtualWrite(V2, h);
// ✅ Tampilkan data di LCD
lcd.clear();
lcd.setCursor(0, 0); // Baris pertama
lcd.print("Suhu : ");
lcd.print(t, 1); // 1 angka desimal
lcd.print(" C");
lcd.setCursor(0, 1); // Baris kedua
lcd.print("Lembab: ");
lcd.print(h, 1);
lcd.print(" %");
// Tampilkan di Serial Monitor
Serial.print("Suhu: ");
Serial.print(t);
Serial.print("°C | Kelembapan: ");
Serial.print(h);
Serial.println("%");
}
void setup() {
Serial.begin(115200);
dht.begin();
// ✅ Inisialisasi LCD
Wire.begin(21, 22); // SDA = GPIO21, SCL = GPIO22
lcd.init();
lcd.backlight(); // Nyalakan backlight LCD
// ✅ Tampilan awal LCD saat booting
lcd.setCursor(0, 0);
lcd.print(" Monitoring ");
lcd.setCursor(0, 1);
lcd.print(" Suhu & Lembab");
delay(2000); // Tampil 2 detik
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Connecting WiFi");
Blynk.begin(auth, ssid, pass);
// ✅ Tampilkan status setelah terhubung
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("WiFi Connected!");
delay(1500);
timer.setInterval(2000L, kirimDataSensor);
}
void loop() {
Blynk.run();
timer.run();
}Loading
esp32-s2-devkitm-1
esp32-s2-devkitm-1