#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6oj374o8C"
#define BLYNK_TEMPLATE_NAME "Pintu Otomatis"
#define BLYNK_AUTH_TOKEN "Q5SpWWaOwFWdfiXXJ1B1o9oPzFYjniJS"
#include <ESP32Servo.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char username[] = "Wokwi-GUEST";
char password [] = "";
const int trigPin = 12; // Pin Trigger HC-SR04
const int echoPin = 14; // Pin Echo HC-SR04
const int ledPin = 13; // Pin LED
Servo gateServo; // Objek Servo
void setup() {
Serial.begin(115200);
Blynk.begin(auth, username, password);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
gateServo.attach(4); // Hubungkan motor servo ke pin 4
}
void loop() {
Blynk.run();
long duration, distance;
// ... (bagian pengukuran jarak)
// Kontrol pintu gerbang berdasarkan jarak
if (distance < 10) {
openGate();
digitalWrite(ledPin, HIGH); // Nyalakan LED
} else {
closeGate();
digitalWrite(ledPin, LOW); // Matikan LED
}
delay(1000); // Interval pembacaan sensor
}
void openGate() {
gateServo.write(90); // Posisi buka pintu
delay(1000); // Delay agar motor servo stabil
}
void closeGate() {
gateServo.write(0); // Posisi tutup pintu
delay(1000); // Delay agar motor servo stabil
}
BLYNK_WRITE(V0) {
// Fungsi ini akan dipanggil saat tombol di pin virtual V0 di Blynk ditekan
int btnState = param.asInt();
if (btnState == 1) {
openGate();
digitalWrite(ledPin, HIGH); // Nyalakan LED
} else {
closeGate();
digitalWrite(ledPin, LOW); // Matikan LED
}
}