#define BLYNK_TEMPLATE_ID "TMPL6_8Gzbb08"
#define BLYNK_TEMPLATE_NAME "Wokwi"
#define BLYNK_AUTH_TOKEN "rZSOI1BhprGyag0FdUp93_6ojCT8QBBm"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <Adafruit_Sensor.h>
#include <ESP32Servo.h>
#define DHTPIN 12
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#define triggerPin 4
#define echoPin 2
#define MERAH 18
#define HIJAU 19
#define KUNING 21
long durasi, jarak;
int volt;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
Servo pintu1;
// Servo pintu2;
// Servo pintu3;
bool status = false;
BLYNK_WRITE(V0)
{
int pinValue = param.asInt();
if (pinValue == 1){
status = true;
}
else {
status = false;
}
}
void setup() {
Serial.begin(115200);
Serial.println("Sistem Monitoring Boiler");
dht.begin();
pintu1.attach(25);
// pintu2.attach(32);
// pintu3.attach(33);
Blynk.begin(auth, ssid, pass);
pinMode(MERAH, OUTPUT);
pinMode(HIJAU, OUTPUT);
pinMode(KUNING, OUTPUT);
}
void loop() {
delay (1000);
float t = dht.readTemperature();
float h = dht.readHumidity();
Blynk.run();
// ultrasonik = map(analogRead(), 0, 4096, 100, 0);
volt = map (analogRead (35), 0, 4096, 0, 100);
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
durasi = pulseIn(echoPin, HIGH);
jarak = durasi /29 /2;
Blynk.virtualWrite (V2, jarak);
Blynk.virtualWrite (V1, t);
if (jarak >50){
Serial.println ("Jarak lebih dari 50cm");
digitalWrite(MERAH, LOW);
digitalWrite(HIJAU, LOW);
digitalWrite(KUNING, LOW);
}
else if (jarak <50){
Serial.println ("Jarak kurang dari 50cm");
digitalWrite(MERAH, HIGH);
digitalWrite(HIJAU, LOW);
digitalWrite(KUNING, LOW);
}
if (status == true){
pintu1.write(0);
}
else {
if (jarak <50 || t >=80){
pintu1.write (180);
Serial.println("Boiler Buka");
}
else{
pintu1.write(0);
Serial.println("Boiler Tutup");
}
}
}