#include <ESP32Servo.h>
#define BLYNK_TEMPLATE_ID "TMPL6eYaYSIGc"
#define BLYNK_TEMPLATE_NAME "wikikutry"
#define BLYNK_AUTH_TOKEN "e3kuqlYtxm2QAKvi2lKJKuObFd1oq-vU"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define trigPin 12
#define echoPin 13
#define servoPin 14
int move=0;
Servo servo;
BLYNK_WRITE(V0){
int pin_value = param.asInt();
if(pin_value == 1) {
digitalWrite(pinled, HIGH);
Serial.println("Led Menyala!");
Blynk.virtualWrite(V1, "ON");
}else{
digitalWrite(pinled, LOW);
Serial.println("Led Mati!");
Blynk.virtualWrite(V1, "OFF");
}
}
BLYNK_WRITE(V1){
move = param.asInt();
}
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo.attach(servoPin);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
if (distance <= 8) { // Jika objek berjarak 8cm atau kurang
openDoor(); // Buka pintu
delay(4000); // Tambahkan penundaan 4 detik setelah servo mencapai posisi 1400
} else {
closeDoor(); // Tutup pintu
}
delay(1000); // Delay sebelum mengulangi pembacaan sensor
}
void openDoor() {
servo.write(move); // Menggerakkan servo untuk membuka pintu ke posisi 1400
Serial.println("Pintu terbuka"); // Mencetak pesan ke serial monitor
}
void closeDoor() {
servo.write(0); // Menggerakkan servo untuk menutup pintu
Serial.println("Pintu tertutup"); // Mencetak pesan ke serial monitor
}