#define BLYNK_TEMPLATE_ID "TMPL6H1aa8YJ7"
#define BLYNK_TEMPLATE_NAME "Iot Hama Identifier"
#define BLYNK_AUTH_TOKEN "3ejooP5Yhz6KzAiAOBxjlvbAdCW0ABX5"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Ultrasonic.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
Ultrasonic ultrasonic(2,4);
int pinled = 12;
int buzzerPin = 33;
double distance = 0;
int switchBuzz = 0;
void myTone(int pin){
ledcAttachPin(pin, 0);
ledcWriteNote(0, NOTE_F, 8);
}
void myNoTone(int pin){
ledcDetachPin(pin);
}
BLYNK_WRITE(V2){
int pin_value = param.asInt();
Serial.println(pin_value);
if(pin_value == 1){
switchBuzz = 1;
} else {
switchBuzz = 0;
}
}
void sendSensor(){
delay(1000);
double distance = ultrasonic.read(CM);
Blynk.virtualWrite(V0, distance);
Serial.print("Jarak : ");
Serial.print(distance);
Serial.println(" cm");
if(distance < 200){
if(switchBuzz == 1){
digitalWrite(pinled, HIGH);
Serial.println("Hama terdeteksi kurang dari 2 meter");
Blynk.virtualWrite(V1, 1);
myTone(buzzerPin);
Blynk.logEvent("notifikasi", "Ada hama terdeteksi kurang dari 2meter");
} else {
digitalWrite(pinled, LOW);
Serial.println("Buzzer & Notifikasi dimatikan");
Blynk.virtualWrite(V1, 0);
myNoTone(buzzerPin);
}
} else {
digitalWrite(pinled, LOW);
Serial.println("Tidak ada hama dalam radius");
Blynk.virtualWrite(V1, 0);
myNoTone(buzzerPin);
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(pinled, OUTPUT);
pinMode(buzzerPin, OUTPUT);
delay(1000);
Blynk.begin(auth, ssid, pass);
timer.setInterval(2500L, sendSensor);
}
void loop() {
// put your main code here, to run repeatedly:
delay(1000); // this speeds up the simulation
Blynk.run();
sendSensor();
timer.run();
}