#define BLYNK_TEMPLATE_ID "TMPL6iPGkytQP"
#define BLYNK_TEMPLATE_NAME "butcam malming"
#define BLYNK_AUTH_TOKEN "rhDYcn02ZjCeomH2lT2o2r4Jy6gfugFy"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h> // Library untuk sensor DHT22
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// Pin yang digunakan
#define DHT_PIN 19 // Pin data untuk DHT22
#define LED_PIN 13 // Pin untuk LED
DHTesp dht; // Objek DHT22
BlynkTimer timer; // Timer Blynk untuk mengirim data berkala
void sendSensorData() {
TempAndHumidity data = dht.getTempAndHumidity(); // Membaca data suhu & kelembaban
float suhu = data.temperature;
float kelembaban = data.humidity;
// Kirim data ke Blynk Virtual Pin
Blynk.virtualWrite(V0, suhu); // Kirim suhu ke V0
Blynk.virtualWrite(V1, kelembaban); // Kirim kelembaban ke V1
// Tampilkan data pada Serial Monitor
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.println(" °C");
Serial.print("Kelembaban: ");
Serial.print(kelembaban);
Serial.println(" %");
}
// Fungsi untuk mengontrol LED dari aplikasi Blynk
BLYNK_WRITE(V2) {
int ledState = param.asInt(); // Membaca nilai dari Virtual Pin V2
digitalWrite(LED_PIN, ledState); // Mengatur LED ON/OFF
Serial.print("LED State: ");
Serial.println(ledState);
}
void setup() {
Serial.begin(115200);
// Inisialisasi Blynk
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Inisialisasi DHT22
dht.setup(DHT_PIN, DHTesp::DHT22);
// Konfigurasi pin LED
pinMode(LED_PIN, OUTPUT);
// Mengatur interval pengiriman data sensor setiap 2 detik
timer.setInterval(2000L, sendSensorData);
}
void loop() {
Blynk.run(); // Menjalankan koneksi Blynk
timer.run(); // Menjalankan timer untuk pengiriman data
}