/* ==========================================
PROYEK: GERBANG PINTAR IoT
========================================== */
// 1. MASUKKAN IDENTITAS BLYNK BAPAK DI SINI
// (Salin dari web Blynk -> Device Info)
#define BLYNK_TEMPLATE_ID "TMPL6c4dUUBbz"
#define BLYNK_TEMPLATE_NAME "Membuka gerbang sekolah"
#define BLYNK_AUTH_TOKEN "hgmPmji8cZcg2D1h3TRXzShYgULLZmI8"
// 2. MEMANGGIL BUKU PANDUAN (LIBRARY)
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <ESP32Servo.h> // Ahli penggerak motor servo
// 3. PENGATURAN KONEKSI INTERNET WOKWI
char auth[] = "BLYNK_AUTH_TOKEN";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// 4. PENGENALAN ALAT SESUAI KABEL BAPAK
Servo gerbangServo; // Kita beri nama alatnya: gerbangServo
int pinServo = 18; // Kabel Kuning (Data) tertancap di Pin 18
// 5. MENERIMA PERINTAH DARI HP (Lewat Jalur V1)
BLYNK_WRITE(V1) {
int perintah = param.asInt(); // Membaca tombol di HP (0 atau 1)
if (perintah == 1) {
// Jika tombol ON -> Buka Gerbang
gerbangServo.write(90);
Serial.println("Diterima perintah BUKA: Palang naik ke 90 derajat.");
} else {
// Jika tombol OFF -> Tutup Gerbang
gerbangServo.write(0);
Serial.println("Diterima perintah TUTUP: Palang turun ke 0 derajat.");
}
}
// 6. PERSIAPAN SAAT ALAT PERTAMA DINYALAKAN
void setup() {
Serial.begin(115200);
// Memberitahu ESP32 bahwa servo ada di Pin 18
gerbangServo.attach(pinServo);
// Keamanan: Pastikan gerbang tertutup dulu saat baru menyala
gerbangServo.write(0);
// Mulai menyambungkan ke WiFi dan Blynk
Serial.println("Menyambungkan ke Internet...");
Blynk.begin(auth, ssid, pass);
}
// 7. TUGAS RUTIN (MENJAGA KONEKSI)
void loop() {
Blynk.run();
}