//Dibawah itu key (?) dari Blynk.Console devies
#define BLYNK_TEMPLATE_ID "TMPL679szA_uq"
#define BLYNK_TEMPLATE_NAME "Smart Weather Monitor"
#define BLYNK_AUTH_TOKEN "WVMdQpei9kcVuDrX81WoJYGhPiMc53q7"
#define BLYNK_PRINT Serial
// --- Library yang Dibutuhkan ---
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHT.h"
#include <LiquidCrystal_I2C.h>
// --- Kredensial Wi-Fi Anda ---
char ssid[] = "Wokwi-GUEST"; //utk taro nama wifi
char pass[] = ""; // utk taro password wifi
// --- Pengaturan Pin & Objek ---
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
BlynkTimer timer; // Membuat objek timer dari Blynk
// --- Fungsi untuk Mengirim Data Sensor ---
// Fungsi ini akan dipanggil secara berkala oleh timer
void sendSensorData() {
float h = dht.readHumidity();
float t = dht.readTemperature();
// Ngecek apakah data bener atau engga (Ini khusus arduino fisik)
//isnan = klo kosong
if (isnan(h) || isnan(t)) {
Serial.println("Gagal membaca dari sensor DHT!");
return;
}
// Kirim data ke pin virtual Blynk
Blynk.virtualWrite(V1, t); // V1 untuk Suhu
Blynk.virtualWrite(V2, h); // V2 untuk Kelembapan
// Tampilkan juga di LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu: " + String(t, 1) + " C");
lcd.setCursor(0, 1);
lcd.print("Lembab: " + String(h, 1) + "%");
Serial.print("Suhu: ");
Serial.print(t);
Serial.print(" *C, Kelembapan: ");
Serial.print(h);
Serial.println(" %");
}
void setup() {
Serial.begin(115200);
// Inisialisasi komponen
lcd.init();
lcd.backlight();
dht.begin();
// Koneksi ke Blynk (Perintah memulai Blynk)
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Atur timer untuk memanggil fungsi sendSensorData setiap 2 detik (2000L)
timer.setInterval(2000L, sendSensorData);
}
void loop() {
Blynk.run(); // Menjalankan semua proses Blynk (koneksi, dll)
timer.run(); // Menjalankan timer
}
Latihan 5a - Sensor & Suhu + Blynk - Elvina Divawidyatna