// Blynk - Wifi - Servo
#define BLYNK_TEMPLATE_ID "TMPL6S3H61xBP"
#define BLYNK_TEMPLATE_NAME "Indobot praktik 1"
#define BLYNK_AUTH_TOKEN "6bUjq74FSSsaGtjLYCj9_5G2ZTpuwhhM"
#define BLYNK_PRINT Serial // menggunakan blynk serial
#include <WiFi.h> // library wifi
#include <WiFiClient.h> // library wificlient
#include <BlynkSimpleEsp32.h> // library blynkesp32
#include <ESP32Servo.h> // library servo
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer; // untuk push data dibutuhkan blynk timer
Servo servo; //inisiasi motor servo
// Sensor dht 22 & LED
#include <DHTesp.h> // library dht
#define DHT22
const int DHT_PIN = 15;
byte led = 5;
DHTesp dhtSensor; // buat objek bernama dhtsensor
float suhu, kelembaban; // Variabel suhu dan kelembaban
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
servo.attach(18, 500, 2400);
Blynk.begin(BLYNK_AUTH_TOKEN,ssid,pass); // inisiasi blynk
// dhtSensor.setup(DHT_PIN, DHTesp::DHT22); //define dht 22
timer.setInterval(1000L, myTimerEvent); // data terkirim setiap 1 detik
pinMode(led, OUTPUT);
}
// Mytimer event
void myTimerEvent(){
TempAndHumidity data = dhtSensor.getTempAndHumidity(); // inisialisasi pengambilan data dht 22
suhu = data.temperature; // mendefinisikan variabel suhu
kelembaban = data.humidity; // mendefinisikan variabel kelembaban
Serial.println("Suhu: " + String(suhu, 1) + "C");
Serial.println("Kelembaban: " + String(kelembaban, 1) + "C");
// 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, kelembaban); // mengirim data kelembaban sesuai dengan pin v1 di 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);
}
void loop() {
Blynk.run(); // menjalankan blynk
timer.run(); // menjalankan timer
}