#define BLYNK_TEMPLATE_ID "TMPL6XxluVp48"
#define BLYNK_TEMPLATE_NAME "Percobaan UTP"
#define BLYNK_AUTH_TOKEN "fUJM6ll1EblKN9teaqOAzaLABigBTdIm"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <Ultrasonic.h>
#include <BlynkSimpleEsp32.h>
#define pinled 13
#define buzzer 5 // Pin buzzer
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
Ultrasonic ultrasonic(27,26);
double jarak = 0;
int switchBuzzer = 0;
// menyalakan buzzer
void myTone(int pin){
ledcAttachPin(pin, 0); // PIN , CHANEL
ledcWriteNote(0, NOTE_F, 8); //CHANEL, FREQ, OCT
}
// mematikan buzzer
void myNoTone(int pin){
ledcDetachPin(pin);
}
// mengatur switchnya
BLYNK_WRITE(V2){
int pin_value = param.asInt();
Serial.println(pin_value);
if (pin_value == 1){
switchBuzzer = 1;
}
else{
switchBuzzer = 0;
}
}
void sendSensor(){
delay(1000);
double jarak = ultrasonic.read(CM);
switchBuzzer == 1;
if(jarak > 300) {
digitalWrite(pinled, LOW);
Blynk.virtualWrite(V1, 0);
myNoTone(buzzer);
Serial.println("Aman");
}
else if(jarak >= 200 && jarak <= 300) {
digitalWrite(pinled, LOW);
Blynk.virtualWrite(V1, 0);
myNoTone(buzzer);
Serial.println("Hama Mendekat!");
}
else if(jarak < 200){
digitalWrite(pinled, HIGH);
Serial.println("Ada Hama dalam radius kurang dari 2 meter");
Blynk.virtualWrite(V1, 1);
myTone(buzzer);
Blynk.logEvent("notifikasi", "Ada Hama mendekat dalam radius kurang dari 2 meter");
}
else{
digitalWrite(pinled, LOW);
Serial.println("Tidak Ada Hama !");
Blynk.virtualWrite(V1, 0);
myNoTone(buzzer);
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(pinled, OUTPUT);
pinMode(buzzer, OUTPUT);
delay(1000);
Blynk.begin(auth, ssid, pass);
timer.setInterval(2500L, sendSensor);
}
void loop() {
// put your main code here, to run repeatedly:
delay(1000);
Blynk.run();
sendSensor();
timer.run();
}