#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Ultrasonic.h>
#define BLYNK_TEMPLATE_ID "TMPL6blvH8yxt"
#define BLYNK_TEMPLATE_NAME "UTS IoT arkan"
#define BLYNK_AUTH_TOKEN "ZeismzRdhfUdYfFHXliwGhQiuikJdiCY"
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
Ultrasonic ultrasonic(13,12);
int buzzerPin = 15;
int relayPin = 22;
int activateBuzzer = 1;
int octave = 4;
int activateLamp = 1;
int activateNotification = 1;
BLYNK_WRITE(V2){
activateBuzzer = param.asInt();
}
BLYNK_WRITE(V3){
activateNotification = param.asInt();
}
BLYNK_WRITE(V5){
activateLamp = param.asInt();
}
BLYNK_WRITE(V1){
octave = param.asInt();
}
void turnOnBuzzer(int octave){
ledcAttachPin(buzzerPin, 0);
ledcWriteNote(0, NOTE_F, octave);
}
void turnOffBuzzer(){
ledcDetachPin(buzzerPin);
}
void sendToBlynk(){
float distance = ultrasonic.read(CM);
distance = distance / 100;
Serial.print("Distance : ");
Serial.print(distance);
Serial.println(" M");
if (distance < 2){
if (activateBuzzer == 1){
turnOnBuzzer(octave);
}else{
turnOffBuzzer();
}
if (activateLamp == 1){
digitalWrite(relayPin, HIGH);
}else{
digitalWrite(relayPin, LOW);
}
if (activateNotification == 1){
Blynk.virtualWrite(V4, 1);
Blynk.logEvent("notification","HAMA TERDETEKSI!");
}else{
Blynk.virtualWrite(V4, 0);
}
}else{
turnOffBuzzer();
digitalWrite(relayPin, LOW);
Blynk.virtualWrite(V4, 0);
}
Blynk.virtualWrite(V0, distance);
}
void setup() {
Serial.begin(115200);
Serial.println("Initializing...");
pinMode(buzzerPin, OUTPUT);
pinMode(relayPin, OUTPUT);
Serial.println("Connect to Blynk...");
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
timer.setInterval(1000L, sendToBlynk);
}
void loop() {
delay(100);
sendToBlynk();
Blynk.run();
timer.run();
}