// Langkah 1 Blynk - Wifi - Servo
#define BLYNK_TEMPLATE_ID "TMPL6WzjMFGT2" // Nama Tempalte ID Blynk
#define BLYNK_TEMPLATE_NAME "PRAKTIKUM 1 DHT22" // Nama Template Blynk
#define BLYNK_AUTH_TOKEN "RvddvgRw0Cp3_4S-Cok8vFWV3mDKb1t0"// Token Blynk
#define BLYNK_PRINT Serial // Menggunakan Blink Serial
#include <WiFi.h> //Library WiFi
#include <WiFiClient.h> //Library WiFi Client
#include <BlynkSimpleEsp32.h> //Library BlynkESP32
#include <ESP32Servo.h> //Library Servo
char ssid[] = "Wokwi-GUEST"; // Nama WiFi
char pass[] = ""; // Password WiFi
BlynkTimer timer; //Untuk push data yang dibutuhkan blynk timer
Servo servo; // inisialisasi motor servo
// Langkah 2 Sensor DHT & LED
#include <DHTesp.h> //Library Sensor DHT
const int DHT_PIN = 15; // Pin LED
byte led = 5; // pin LED
DHTesp dhtSensor; // Buat objek yang bernama dhtSensor
float suhu, kelembapan; // variabel suhu dan kelembapan
// Langkah 3 - Void Setup
void setup(){
Serial.begin(115200); // Serial Monitor
// attach servo pin with a min/max timings of 500 microseconds and 2400 microseconds
servo.attach(18, 500, 2400);
Blynk.begin(BLYNK_AUTH_TOKEN,ssid, pass); //inisialisasi Blynk
dhtSensor.setup(DHT_PIN, DHTesp::DHT22); //define DHT22
timer.setInterval(1000L, myTimerEvent); //data terkirim setiap 1 detik
pinMode(led, OUTPUT);
}
// Langkah 4 MyTimerEvent
void myTimerEvent(){
TempAndHumidity data = dhtSensor.getTempAndHumidity(); //inisialisasi pengambilan data DHT22
suhu = data.temperature; //Mendefinisikan variabel suhu
kelembapan = data.humidity;// Mendefinisikan variabel kelembapan
Serial.println("Suhu : " + String(suhu, 1) + "C");
Serial.println("Kelembapan : " + String(kelembapan, 1) + "%");
// IF CONDITIONAL
if (suhu > 20){
Serial.println("TEMPERATURE UP");
//Blynk.logEvent("high_temp");
servo.write(90);
delay(1000);
servo.write(0);
delay(1000);
}
delay(1000);
Blynk.virtualWrite(V0, suhu); // Mengirim data suhu sesuai dengan pin V0 di Blynk
Blynk.virtualWrite(V1, kelembapan); //Mengirim Data kelembapan sesuai dengan pin V1 Blynk
}
BLYNK_WRITE(V2){ //V2, sesuai dengan pin di Blynk
int pinValue = param.asInt();
Serial.print("V2 Switch value is : ");
Serial.println(pinValue);
digitalWrite(led, pinValue);
}
// Langkah 5 VOID LOOP
void loop(){
Blynk.run(); // menjalankan Blynk
timer.run(); // menjalankan Timer
}