#define BLYNK_TEMPLATE_ID "TMPL63AkWdb8v"
#define BLYNK_TEMPLATE_NAME "ceksuhu"
#define BLYNK_AUTH_TOKEN "STORfU5hqbJ-oFUBKTop30w5K2N_kbpZ"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
#define led 15
#define DHTPIN 5 // Mention the digital pin where you connected
#define DHTTYPE DHT22 // DHT 11
DHT dht(DHTPIN, DHTTYPE); //membuat objek dht
#define TRIG_PIN 4 // ESP32 pin GIOP23 connected to Ultrasonic Sensor's TRIG pin
#define ECHO_PIN 18 // ESP32 pin GIOP22 connected to Ultrasonic Sensor's ECHO pin
float durasi, jarak;
BlynkTimer timer;
void setup(){
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(led, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
dht.begin();
timer.setInterval(500L, sendSensor);
timer.setInterval(500L, ultra);
}
void loop(){
Blynk.run();
timer.run();
// Serial.print("jarak = ");
// Serial.println(jarak);
// delay(300);
}
void sendSensor(){
float h = dht.readHumidity();//cara membaca kelembaban
float t = dht.readTemperature(); // cara membaca suhu or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) { //isnan itu untuk mengecek apakah data bukan angka,jika data ny angka maka false
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V1, h); //ini menyesuaikan pin virtual pada blynk yaitu V1 untuk nilai kelembaban pada "h"
Blynk.virtualWrite(V0, t);
if((h>=50)&& (t>=50)){
digitalWrite(led, HIGH);
Blynk.virtualWrite(V3, HIGH);
}
else{
digitalWrite(led, LOW);
Blynk.virtualWrite(V3, LOW);
}
Serial.print("Temperature : ");
Serial.print(t);
Serial.print(" Humidity : ");
Serial.println(h);
// if(t > 30){
// // Blynk.email("[email protected]", "Alert", "Temperature over 28C!");
// Blynk.logEvent("temp_alert","Temp above 30 degrees");
// }
}
void ultra(){
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
durasi = pulseIn(ECHO_PIN, HIGH);
jarak = 0.017 * durasi;
Blynk.virtualWrite(V4, jarak);
}