#define BLYNK_TEMPLATE_ID "TMPL6l_WpbnaU"
#define BLYNK_TEMPLATE_NAME "Suhu"
#define BLYNK_AUTH_TOKEN "W1iuiKvXzEzZI04jsP_CXAxahCmC07kk"
#define BLYNK_PRINT Serial
#include <DHT.h>
#include <ESP32Servo.h>
#include <BlynkSimpleEsp32.h>
#define DHTPIN 4 // Pin untuk sensor DHT
#define DHTTYPE DHT22 // Tipe sensor DHT (DHT11/DHT22)
DHT dht(DHTPIN, DHTTYPE);
#define RELAYPIN 16 // Pin untuk relay
#define LEDPIN 13 // Pin untuk LED
#define SERVOPIN 17 // Pin untuk servo
#define POTPIN 34 // Pin untuk potensiometer
Servo servo;
int potValue;
// Token Blynk
char auth[] = BLYNK_AUTH_TOKEN;
// Info WiFi
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
void setup() {
// Inisialisasi Serial Monitor
Serial.begin(115200);
// Inisialisasi DHT sensor
dht.begin();
// Inisialisasi servo
servo.attach(SERVOPIN);
// Set pinMode untuk LED dan Relay
pinMode(LEDPIN, OUTPUT);
pinMode(RELAYPIN, OUTPUT);
// Inisialisasi koneksi Blynk
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run(); // Jalankan koneksi Blynk
// Baca nilai dari potensiometer
potValue = analogRead(POTPIN);
// Dapatkan nilai suhu dan kelembaban
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Kirim data sensor ke Blynk
Blynk.virtualWrite(V1, temperature); // Virtual pin V1 untuk suhu
Blynk.virtualWrite(V2, humidity); // Virtual pin V2 untuk kelembaban
Blynk.virtualWrite(V3, potValue); // Virtual pin V3 untuk nilai potensiometer
delay(1000); // Delay 1 detik
}
// Fungsi untuk mengontrol relay dari aplikasi Blynk
BLYNK_WRITE(V4) {
int relayState = param.asInt(); // Membaca status dari Blynk
digitalWrite(RELAYPIN, relayState);
}
// Fungsi untuk mengontrol LED dari aplikasi Blynk
BLYNK_WRITE(V5) {
int ledState = param.asInt(); // Membaca status dari Blynk
digitalWrite(LEDPIN, ledState);
}
// Fungsi untuk mengontrol sudut servo dari aplikasi Blynk
BLYNK_WRITE(V6) {
int servoAngle = param.asInt(); // Membaca sudut servo dari Blynk
servo.write(servoAngle);
}