#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <BlynkTimer.h>
#define TRIG_PIN 12
#define ECHO_PIN 13
#define BUZZER_PIN 14
#define WIFI_LED_PIN 2
char auth[] = "YourAuthTokenHere";
char ssid[] = "YourWiFiSSIDHere";
char pass[] = "YourWiFiPasswordHere";
char blynk_template_id[] = "YourTemplateIDHere";
BlynkTimer timer;
long distance;
void sendDistanceToBlynk() {
distance = constrain(distance, 1, 50);
Blynk.virtualWrite(V2, distance);
}
void setup() {
Serial.begin(115200);
pinMode(WIFI_LED_PIN, OUTPUT);
digitalWrite(WIFI_LED_PIN, LOW);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
digitalWrite(WIFI_LED_PIN, HIGH);
Blynk.config(auth);
while (!Blynk.connected()) {
if(Blynk.connect()) {
Blynk.virtualWrite(BLYNK_TEMPLATE_ID, blynk_template_id);
break;
}
delay(1000);
}
timer.setInterval(1000L, sendDistanceToBlynk);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
Blynk.run();
timer.run();
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.034 / 2;
if (distance < 50) {
tone(BUZZER_PIN, 1000);
} else {
noTone(BUZZER_PIN);
}
delay(100);
}