#define BLYNK_TEMPLATE_ID "TMPL6UOTgCUid"
#define BLYNK_TEMPLATE_NAME "KASUS"
#define BLYNK_AUTH_TOKEN "t3LyvYMfwqGZaSQavyXfbfxa4Nr3S1db"//*********DHT22, library****************************************
#include "DHTesp.h"
#include <ESP32Servo.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <BlynkSimpleEsp32.h>
char auth[]="t3LyvYMfwqGZaSQavyXfbfxa4Nr3S1db";
char ssid[]="Wokwi-GUEST";
char pass[]="";
BlynkTimer timer;
Servo servo;
//*********DHT22, deklarasi pin**********************************
#define DHT_PIN = 15;
#define SERVO_PIN = 2;
DHTesp dhtSensor;
float suhu = 0;
float kelembaban = 0;
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
servo.attach(2);
servo.write(90); // Inisialisasi posisi servo ke 90 derajat (tengah)
timer.setInterval(10000L, sendSensorData);
//*****SERIAL MONITOR, setting baud rate***********************
Serial.begin(115200);
//*****DHT 22, setting*****************************************
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
servo.attach(2);
}
void loop() {
Blynk.run();
timer.run();
//*********DHT22, membaca suhu dan kelembaban******************
TempAndHumidity data = dhtSensor.getTempAndHumidity();
suhu=data.temperature;
kelembaban=data.humidity;
//*****SERIAL MONITOR, menampilkan data suhu dan kelembaban****
Serial.print("Temp: ");
Serial.print(suhu);
Serial.println("C");
Serial.print("Hum: ");
Serial.print(kelembaban);
Serial.println("%");
delay(1000);
}
void sendSensorData() {
float temperature = dht.readTemperature(); // Baca suhu
Blynk.virtualWrite(V5, temperature); // Kirim suhu ke widget V5 di Blynk
// Kontrol servo berdasarkan suhu
if (temperature > 28) {
servo.write(0); // Putar servo ke 0 derajat
} else if (temperature < 20) {
servo.write(180); // Putar servo ke 180 derajat
} else {
servo.write(90); // Kembalikan servo ke 90 derajat (tengah)
}