#include <ESP32Servo.h>
#define BLYNK_TEMPLATE_ID "TMPL6vdZzgEem"
#define BLYNK_TEMPLATE_NAME "Fire"
#define BLYNK_AUTH_TOKEN "yrLPu1OPU2HQT4Kznp08PpcXzx1XHMTV"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
char auth[] = "yrLPu1OPU2HQT4Kznp08PpcXzx1XHMTV";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int buzzer = 13;
int LED = 14;
int sensor;
Servo servo1;
BlynkTimer timer;
bool status = false;
BLYNK_WRITE(V0)
{
int pinValue = param.asInt();
if(pinValue ==1 ){
status = true;
Serial.println("TERDETEKSI API,KATUP AIR TERBUKA");
Blynk.virtualWrite(V0, HIGH);
BLYNK_WRITE(V0);
}
else{
status = false;
Blynk.virtualWrite(V0, LOW);
BLYNK_WRITE(V0);
}
}
void setup()
{
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.clear();
servo1.attach(25);
Blynk.begin(auth, ssid, pass);
pinMode(LED, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop()
{
Blynk.run();
timer.run();
sensor = map(analogRead(34),0,4096, 100,0);
if (status == true){
digitalWrite(LED, HIGH);
digitalWrite(buzzer, HIGH);
tone(buzzer, 1000);
servo1.write(180);
Serial.println("TERDETEKSI API,KATUP AIR TERBUKA");
lcd.setCursor(0, 0);
lcd.print("TERDETEKSI API");
Blynk.virtualWrite(V0, HIGH);
BLYNK_WRITE(V0);
}else{
if(sensor < 30){
digitalWrite(LED, LOW);
digitalWrite(buzzer, LOW);
noTone(buzzer);
servo1.write(0);
Serial.println("KONDISI AMAN");
lcd.setCursor(0, 0);
lcd.print("KONDISI AMAN..");
Blynk.virtualWrite(V0, LOW);
BLYNK_WRITE(V0);
}else{
digitalWrite(LED, HIGH);
digitalWrite(buzzer, HIGH);
tone(buzzer, 1000);
servo1.write(180);
Serial.println("TERDETEKSI API,KATUP AIR TERBUKA");
lcd.setCursor(0, 0);
lcd.print("TERDETEKSI API");
Blynk.virtualWrite(V0, HIGH);
BLYNK_WRITE(V0);
}
}
delay(500);
}