#include <ESP32Servo.h>
#include <NewPing.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define TRIGGER_PIN 4
#define ECHO_PIN 2
#define MAX_DISTANCE 400
#define SERVO_PIN 12
#define BUZZER_PIN 33
Servo servo;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int distance = 0;
int pos=0;
char auth[] = "IwUsSPWag3d47s9K__zrqRJIiAJliGjp";
BlynkTimer timer;
void setup() {
Serial.begin(9600);
servo.attach(SERVO_PIN, 500, 2500); // Specify servo pin and pulse width range
servo.setPeriodHertz(50); // Set the servo PWM frequency (optional)
pinMode(BUZZER_PIN, OUTPUT);
Blynk.begin(auth, "Wokwi-GUEST", "");
timer.setInterval(1000L, checkDistance);
}
void loop() {
Blynk.run();
timer.run();
}
void checkDistance() {
distance = sonar.ping_cm();
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
Blynk.virtualWrite(V1, distance); // Update the distance on Gauge widget
if (distance < 50) {
servo.write(90);
digitalWrite(BUZZER_PIN, HIGH);
delay(5000);
servo.write(0);
digitalWrite(BUZZER_PIN, LOW);
}
}
BLYNK_WRITE(V0) {
int servoPosition = param.asInt();
servo.write(servoPosition);
}