#define BLYNK_TEMPLATE_ID "TMPL6QB095y-g"
#define BLYNK_TEMPLATE_NAME "UAS1"
#define BLYNK_AUTH_TOKEN "vhamS2ovQR5j2tvHUlgilWhQ4AHQf6FY"
#include <ESP32Servo.h>
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
Servo servo;
int servoPin = 16;
int servoOpenAngle = 90;
int servoCloseAngle = 0;
unsigned long openTime = 0;
bool isServoOpen = false;
void setup() {
Serial.begin(115200);
servo.attach(servoPin);
servo.write(servoCloseAngle);
Serial.println("Servo initialized.");
Serial.println("Connecting to WiFi...");
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected.");
Serial.println("Connecting to Blynk...");
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
Serial.println("Connected to Blynk.");
}
BLYNK_WRITE(V0) {
int value = param.asInt();
Serial.print("Switch value: ");
Serial.println(value);
if (value == 1 && !isServoOpen) {
Serial.println("Opening secure box...");
servo.write(servoOpenAngle);
openTime = millis();
isServoOpen = true;
}
}
void loop() {
Blynk.run();
if (isServoOpen && millis() - openTime >= 10000) { // tertutup otomatis setelah 10 detik
Serial.println("Closing secure box...");
servo.write(servoCloseAngle); // atau Tutup box menggunakan Switch
isServoOpen = false;
}
}