#define BLYNK_TEMPLATE_ID "TMPL6UOTgCUid"
#define BLYNK_TEMPLATE_NAME "KASUS"
#define BLYNK_AUTH_TOKEN "t3LyvYMfwqGZaSQavyXfbfxa4Nr3S1db"
//**********BLYNK, library**************************************
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <ESP32Servo.h>
//define lebar dan tinggi oled
#define lebarOLED 128
#define tinggiOLED 64
Adafruit_SSD1306 OLED(lebarOLED, tinggiOLED, &Wire, -1);
BlynkTimer timer;
//*********DHT22, library****************************************
#include <DHTesp.h>
//**********BLYNK, ssid, pass, token****************************
char auth[] = "t3LyvYMfwqGZaSQavyXfbfxa4Nr3S1db";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
//*********DHT22, deklarasi pin**********************************
const int DHT_PIN = 15;
const int servo_pin = 4;
DHTesp dhtSensor;
float suhu;
float kelembapan;
Servo servo;
BLYNK_WRITE(V1)
{
int sepur=param.asInt();
servo.write(sepur);
}
//*****BLYNK, kirim nilai sensor*****************************
void sendSensor()
{
//*********DHT22, membaca suhu dan kelembaban******************
TempAndHumidity data = dhtSensor.getTempAndHumidity();
suhu=data.temperature;
kelembapan=data.humidity;
//*****SERIAL MONITOR, menampilkan data suhu dan kelembaban****
OLED.clearDisplay();
OLED.setCursor(0,0);
OLED.print("Suhu : ");
OLED.print(suhu);
OLED.setCursor(0,10);
OLED.print("Kelembapan: ");
OLED.print(kelembapan);
OLED.display();
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
if (suhu<20&&kelembapan>40)
{
servo.write(90);
}
else
{
servo.write(0);
}
//*****BLYNK, kirim nilai sensor*****************************
Blynk.virtualWrite(V2, suhu);
Blynk.virtualWrite(V0, kelembapan);
}
void setup() {
Serial.begin(115200);
if (!OLED.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.print(F("Gagal menghubungkan OLED"));
while(1);
}
delay(2000);
OLED.clearDisplay();
OLED.setTextSize(1);
OLED.setTextColor(WHITE);
//********BLYNK, mulai koneksi ke blynk***********************
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sendSensor);
//*****SERIAL MONITOR, setting baud rate***********************
Serial.begin(115200);
//*****DHT 22, setting*****************************************
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
servo.attach(4);
}
void loop() {
//********BLYNK, menjalankan blynk****************************
Blynk.run();
timer.run();
}