// Menggunakan Serial untuk debugging dan mencetak informasi ke Serial Monitor
#define BLYNK_PRINT Serial
// Konfigurasi Template Blynk
#define BLYNK_TEMPLATE_ID "TMPL6qluLpFvs"
#define BLYNK_TEMPLATE_NAME "Kontroll LED"
#define BLYNK_AUTH_TOKEN "xdQugfWMmBtYee-oYwN0u9nNqaRUdlZq"
// Mengimpor library WiFi dan Blynk untuk ESP32
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h>
// Informasi otentikasi untuk koneksi Blynk
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// Menginisialisasi objek DHT untuk sensor suhu dan kelembaban
DHTesp dhtSensor;
// Timer Blynk untuk manajemen waktu
BlynkTimer timer;
// Pin sensor DHT22
const int DHT_PIN = 13;
// Pin yang digunakan untuk mengendalikan LED
#define LED1 12
// Variabel untuk menyimpan status LED
int kondisi = 0;
// Fungsi untuk mengirim data suhu dan kelembaban ke Blynk
void sendSensor()
{
TempAndHumidity data = dhtSensor.getTempAndHumidity();
// Menampilkan suhu pada Serial Monitor
Serial.print("% Temperature: ");
Serial.print(data.temperature);
Serial.println("C ");
// Menampilkan kelembaban pada Serial Monitor
Serial.print("% Kelembaban: ");
Serial.print(data.humidity);
Serial.println("% ");
// Mengirim data suhu ke Virtual Pin V1 di Blynk Cloud
Blynk.virtualWrite(V1, data.temperature);
// Mengirim data kelembaban ke Virtual Pin V2 di Blynk Cloud
Blynk.virtualWrite(V2, data.humidity);
}
// Fungsi ini dipanggil setiap kali nilai tombol di aplikasi Blynk diubah
BLYNK_WRITE (V0)
{
kondisi = param.asInt();
// Jika nilai tombol adalah 1, nyalakan LED dan kirimkan pesan ke Serial Monitor
if (kondisi == 1)
{
digitalWrite(LED1, HIGH);
Serial.println("LED 1 ON");
Blynk.virtualWrite(V0, HIGH);
}
// Jika nilai tombol adalah 0, matikan LED dan kirimkan pesan ke Serial Monitor
else
{
digitalWrite(LED1, LOW);
Serial.println("LED 1 OFF");
Blynk.virtualWrite(V0, LOW);
}
}
void setup() {
// Mengatur kecepatan komunikasi Serial Monitor
Serial.begin(115200);
// Mengatur konfigurasi sensor DHT22
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
// Konfigurasi pin LED sebagai output
pinMode(LED1, OUTPUT);
// Memulai koneksi ke Blynk menggunakan informasi otentikasi dan kredensial WiFi
Blynk.begin(auth, ssid, pass);
// Mengatur interval waktu untuk mengirim data sensor ke Blynk
timer.setInterval(1000, sendSensor);
}
void loop() {
// Menjalankan loop Blynk dan timer Blynk
Blynk.run();
timer.run();
}