LAPORAN PRAKTIKUN
SIMULASI ESP32 SMART ACCESS CONTROL MENGGUNAKAN WOKWI
Disusun Oleh:
Firman Nova Prayoga 24051204088
Haidar Ali Yafi 24051204111
Nita Aini Rohima 24051204217
Arsyanda Nareswari
Widaryanto 24051204109
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan Internet of Things (IoT) membuat mikrokontroler yang memiliki kemampuan komunikasi nirkabel semakin banyak digunakan dalam berbagai aplikasi. Salah satu mikrokontroler yang mendukung kebutuhan tersebut adalah ESP32. Berdasarkan modul praktikum, ESP32 memiliki konektivitas Wi-Fi dan Bluetooth yang terintegrasi, performa yang baik, serta fleksibilitas GPIO untuk menghubungkan sensor dan aktuator. Modul juga menjelaskan beberapa mode Wi-Fi ESP32, antara lain Station (STA), Access Point (AP), kombinasi STA/AP, dan mode sniffer atau promiscuous.
Pada praktikum ini, kemampuan ESP32 difokuskan pada penggunaan mode Access Point (AP) dan Web Server. Dalam mode AP, ESP32 dapat bertindak sebagai titik akses yang memungkinkan perangkat lain berkomunikasi langsung dengan ESP32 melalui jaringan lokal. Kemampuan tersebut kemudian diterapkan pada simulasi sistem akses sederhana yang dapat dikendalikan melalui halaman web.
Proyek yang dibuat bernama ESP32 Smart Access Control. Proyek ini menggunakan ESP32 sebagai pusat sistem, LED merah dan LED hijau sebagai indikator kondisi akses, push button sebagai input akses, serta buzzer sebagai indikator ketika akses diberikan. Seluruh rangkaian dibuat secara virtual menggunakan Wokwi sehingga proyek dapat diuji tanpa perangkat keras fisik. Pendekatan simulasi ini juga memudahkan proses pembelajaran karena perubahan pada rangkaian dan program dapat langsung diamati.
1.2 Rumusan Masalah
1. Bagaimana membuat simulasi sistem kontrol akses menggunakan ESP32 pada platform Wokwi?
2. Bagaimana menerapkan mode Wi-Fi Access Point pada ESP32 dalam simulasi?
3. Bagaimana membuat Web Server sederhana untuk mengontrol status akses?
4. Bagaimana menghubungkan GPIO ESP32 dengan LED, push button, dan buzzer sebagai bagian dari sistem?
1.3 Tujuan Praktikum
1. Memahami penggunaan ESP32 sebagai mikrokontroler dengan konektivitas Wi-Fi.
2. Memahami konsep mode Access Point pada ESP32.
3. Membuat simulasi Web Server sederhana menggunakan ESP32.
4. Mengimplementasikan input push button dan output LED serta buzzer pada simulasi Wokwi.
5. Menguji sistem kontrol akses tanpa menggunakan perangkat keras fisik.
BAB II
TINJAUAN PUSTAKA
2.1 Dasar Teori
ESP32 merupakan mikrokontroler yang memiliki kemampuan komunikasi Wi-Fi dan Bluetooth yang terintegrasi. Modul menjelaskan bahwa ESP32 memiliki prosesor dual-core, fitur hemat daya, serta banyak pin GPIO yang dapat digunakan untuk berbagai fungsi seperti input, output, ADC, PWM, dan input sentuh. Karakteristik tersebut membuat ESP32 sesuai untuk berbagai aplikasi IoT.
Wi-Fi Access Point (AP) merupakan mode ketika ESP32 bertindak sebagai titik akses seperti router. Dalam mode ini perangkat lain dapat terhubung secara langsung ke ESP32 sehingga memungkinkan komunikasi pada jaringan lokal. Pada proyek ini, ESP32 membuat jaringan Wi-Fi bernama ESP32-ACCESS dan menyediakan halaman Web Server untuk menampilkan serta mengubah status sistem.
Web Server adalah layanan yang menerima permintaan dari klien melalui jaringan dan memberikan respons berupa halaman atau data. Pada proyek ini Web Server digunakan untuk menyediakan halaman kontrol dengan dua fungsi utama, yaitu Unlock dan Lock. Ketika fungsi Unlock dipanggil, program mengubah status sistem menjadi ACCESS GRANTED, menyalakan LED hijau, mematikan LED merah, dan membunyikan buzzer.
Wokwi merupakan lingkungan simulasi elektronik berbasis web yang dapat digunakan untuk menguji mikrokontroler dan komponen elektronik secara virtual. Dalam proyek ini Wokwi digunakan sebagai pengganti perangkat keras fisik sehingga rangkaian ESP32, LED, push button, dan buzzer dapat diuji melalui simulasi.
2.2 Komponen
ESP32 DevKit: Mikrokontroler utama yang menjalankan program, membuat Access Point, dan menyediakan Web Server.
LED Merah: Menunjukkan kondisi sistem terkunci atau LOCKED.
LED Hijau: Menunjukkan kondisi akses diberikan atau ACCESS GRANTED.
Push Button: Digunakan sebagai input fisik untuk memberikan akses.
Buzzer: Menghasilkan bunyi sebagai indikator ketika akses diberikan.
Resistor 220 ohm: Membatasi arus yang mengalir menuju LED.
Wokwi: Platform simulasi yang digunakan untuk menjalankan dan menguji seluruh rangkaian secara virtual.
Gambar 2.1 Rangkaian simulasi ESP32 Smart Access Control
BAB III
PEMBAHASAN
3.1 Penjelasan Simulasi Projek
Proyek ESP32 Smart Access Control dirancang sebagai simulasi sistem kontrol akses sederhana. ESP32 berfungsi sebagai pusat pengendali. Ketika program dijalankan, ESP32 mengaktifkan Wi-Fi dalam mode Access Point dengan SSID ESP32-ACCESS dan password 12345678. Setelah Access Point aktif, Web Server dijalankan pada ESP32.
Pada kondisi awal, sistem berada pada keadaan LOCKED. LED merah menyala sedangkan LED hijau mati. Kondisi tersebut juga ditampilkan pada halaman Web Server. Pengguna dapat memberikan perintah Unlock melalui halaman web. Ketika perintah tersebut diterima, program mengubah status menjadi ACCESS GRANTED, LED merah dimatikan, LED hijau dinyalakan, dan buzzer menghasilkan bunyi singkat.
Selain melalui Web Server, akses juga dapat diberikan menggunakan push button yang tersedia pada rangkaian Wokwi. Push button terhubung ke GPIO 27 dan menggunakan konfigurasi INPUT_PULLUP. Ketika tombol ditekan, ESP32 mendeteksi kondisi LOW dan menjalankan fungsi pemberian akses.
Akses yang diberikan tidak berlangsung terus-menerus. Program menetapkan durasi akses selama lima detik. Setelah durasi tersebut berakhir, sistem otomatis kembali ke kondisi LOCKED. Mekanisme ini digunakan untuk mensimulasikan perilaku pintu atau akses yang kembali terkunci setelah waktu tertentu.
Gambar 3.1 Kondisi awal sistem pada keadaan LOCKED
Gambar 3.2 Kondisi sistem setelah akses diberikan
3.2 Kode Program
Kode program berikut merupakan program utama yang digunakan pada simulasi. Program menggunakan library WiFi dan WebServer yang tersedia pada Arduino core ESP32. Fungsi utama program adalah membuat Access Point, menjalankan Web Server, membaca push button, mengatur LED, mengaktifkan buzzer, dan mengembalikan sistem ke kondisi terkunci setelah batas waktu akses berakhir.
#include <WiFi.h>
#include <WebServer.h>
const char* AP_SSID = "ESP32-ACCESS";
const char* AP_PASSWORD = "12345678";
WebServer server(80);
const int LED_RED = 25;
const int LED_GREEN = 26;
const int ACCESS_BUTTON = 27;
const int BUZZER = 14;
bool accessGranted = false;
unsigned long unlockedUntil = 0;
const unsigned long UNLOCK_DURATION = 5000;
unsigned long lastButtonTime = 0;
const unsigned long DEBOUNCE = 250;
void setLocked() {
accessGranted = false;
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_GREEN, LOW);
}
void setUnlocked() {
accessGranted = true;
unlockedUntil = millis() + UNLOCK_DURATION;
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, HIGH);
tone(BUZZER, 1200, 250);
}
String statusText() {
return accessGranted ? "ACCESS GRANTED" : "LOCKED";
}
String statusColor() {
return accessGranted ? "#16803a" : "#b42318";
}
String makePage() {
String html = R"rawliteral(
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1">
<title>ESP32 Smart Access</title>
</head>
<body>
<main>
<h1>Smart Access Control</h1>
<h2>%STATUS%</h2>
<form action="/unlock" method="GET">
<button type="submit">Unlock</button>
</form>
<form action="/lock" method="GET">
<button type="submit">Lock</button>
</form>
<p>WiFi Mode: Access Point</p>
<p>SSID: ESP32-ACCESS</p>
<p>IP Address: %IP%</p>
<p>Physical Button: GPIO 27</p>
</main>
</body>
</html>
)rawliteral";
html.replace("%STATUS%", statusText());
html.replace("%IP%", WiFi.softAPIP().toString());
return html;
}
void handleRoot() {
server.send(200, "text/html", makePage());
}
void handleUnlock() {
setUnlocked();
server.sendHeader("Location", "/");
server.send(303);
}
void handleLock() {
setLocked();
noTone(BUZZER);
server.sendHeader("Location", "/");
server.send(303);
}
void handleNotFound() {
server.send(404, "text/plain", "404 - Page not found");
}
void setup() {
Serial.begin(115200);
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(ACCESS_BUTTON, INPUT_PULLUP);
pinMode(BUZZER, OUTPUT);
setLocked();
WiFi.mode(WIFI_AP);
WiFi.softAP(AP_SSID, AP_PASSWORD);
Serial.println("ESP32 SMART ACCESS CONTROL");
Serial.println("WiFi AP : " + String(AP_SSID));
Serial.println("Password: " + String(AP_PASSWORD));
Serial.println("IP : " + WiFi.softAPIP().toString());
server.on("/", HTTP_GET, handleRoot);
server.on("/unlock", HTTP_GET, handleUnlock);
server.on("/lock", HTTP_GET, handleLock);
server.onNotFound(handleNotFound);
server.begin();
}
void loop() {
server.handleClient();
if (digitalRead(ACCESS_BUTTON) == LOW) {
if (millis() - lastButtonTime > DEBOUNCE) {
lastButtonTime = millis();
setUnlocked();
Serial.println("Physical button -> ACCESS GRANTED");
}
}
if (accessGranted && millis() >= unlockedUntil) {
setLocked();
Serial.println("Access timeout -> LOCKED");
}
}
Pada bagian awal program, library WiFi dan WebServer digunakan untuk menyediakan fungsi komunikasi Wi-Fi dan layanan web. Konstanta AP_SSID dan AP_PASSWORD menentukan identitas jaringan yang dibuat ESP32. GPIO 25 digunakan untuk LED merah, GPIO 26 untuk LED hijau, GPIO 27 untuk push button, dan GPIO 14 untuk buzzer.
Fungsi setLocked() mengatur sistem ke kondisi terkunci dengan menyalakan LED merah dan mematikan LED hijau. Sebaliknya, fungsi setUnlocked() mengubah status menjadi ACCESS GRANTED, menyalakan LED hijau, mematikan LED merah, serta membunyikan buzzer selama 250 milidetik.
Fungsi handleRoot() menampilkan halaman utama Web Server. Fungsi handleUnlock() dan handleLock() menangani permintaan pengguna ketika tombol Unlock atau Lock pada halaman web ditekan. Pada fungsi setup(), ESP32 diatur sebagai Access Point menggunakan WiFi.mode(WIFI_AP) dan WiFi.softAP(). Web Server kemudian dijalankan.
Pada fungsi loop(), server menangani permintaan yang masuk melalui server.handleClient(). Program juga memeriksa push button. Variabel debounce digunakan agar satu penekanan tombol tidak terbaca berkali-kali. Setelah lima detik sejak akses diberikan, program menjalankan setLocked() sehingga sistem kembali ke kondisi awal.
BAB IV
PENUTUP
4.1 Kesimpulan
Berdasarkan hasil perancangan dan simulasi proyek ESP32 Smart Access Control, dapat disimpulkan bahwa:
Proyek ESP32 Smart Access Control berhasil dibuat dan disimulasikan menggunakan platform Wokwi tanpa memerlukan perangkat keras fisik.
ESP32 berhasil digunakan sebagai Access Point dan Web Server untuk menyediakan antarmuka kontrol akses.
GPIO ESP32 berhasil digunakan untuk mengendalikan LED merah, LED hijau, push button, dan buzzer sebagai bagian dari sistem kontrol akses.
Sistem memiliki dua kondisi utama, yaitu LOCKED dan ACCESS GRANTED. Akses dapat diberikan melalui Web Server maupun push button.
Setelah akses diberikan, sistem secara otomatis kembali ke kondisi LOCKED setelah lima detik.
Penggunaan Wokwi memungkinkan proses perancangan dan pengujian sistem IoT dilakukan secara virtual sehingga dapat digunakan sebagai media praktikum sebelum diterapkan pada perangkat ESP32 secara langsung.
4.2 Saran
Adapun saran untuk pengembangan proyek selanjutnya adalah:
Menambahkan autentikasi pengguna pada halaman Web Server agar akses tidak dapat diberikan oleh sembarang pengguna.
Menambahkan sensor seperti RFID atau keypad sebagai metode verifikasi akses agar sistem kontrol akses menjadi lebih realistis.
Mengimplementasikan proyek pada perangkat ESP32 fisik untuk membandingkan hasil simulasi Wokwi dengan kondisi perangkat keras sebenarnya.
Mengembangkan antarmuka Web Server agar lebih informatif, misalnya dengan menambahkan riwayat akses dan waktu terjadinya akses.
DAFTAR PUSTAKA
Modul 04. Mengenal ESP32 dan Mode WiFi - Bluetooth. Materi praktikum yang diberikan.
Espressif Systems. ESP32 Series Documentation. Dokumentasi teknis ESP32.
Arduino. Arduino ESP32 Core Documentation. Dokumentasi penggunaan ESP32 dengan Arduino framework.
Wokwi. Wokwi Documentation. Dokumentasi simulator elektronik berbasis web.
Tidak ada komentar:
Posting Komentar