Skema papan papan ESPDuino-32 bisa dilihat
Gambaran Umum Proyek
Tujuan utama:
- Merebuild firmware mesin absensi berbasis ESP32.
- Meniru arsitektur sistem lama yang sudah matang.
- Tetap kompatibel dengan backend Laravel yang sudah dimiliki.
- Tidak bergantung pada cloning firmware lama.
- Membuat sistem modular dan scalable untuk banyak device.
Stack Sistem
Backend
- Laravel 12
- PHP 8.2
- MySQL
Hardware Device
- ESP32 D1 R32
- RFID RC522
- LCD 16x2 I2C
- Tombol setup/reset
- Buzzer
Fitur Existing yang Sudah Diketahui
- RFID attendance
- QRCode attendance
- Multi device pairing
- Device activation
- Offline queue
- Captive portal setup
- Token activation
- MAC validation
- Factory reset
Arsitektur Sistem
Flow Utama
ESP32 Boot
↓
Cek konfigurasi tersimpan
↓
Belum ada config → Setup Mode
Sudah ada config → Normal Mode
Setup Mode ESP32
Trigger
Masuk setup mode:
- tahan tombol ±5 detik
Factory reset:
- tahan tombol >10 detik
Captive Portal
ESP32 membuat:
- Access Point sendiri
- Web setup internal
- Login setup
Informasi LCD yang tampil bergantian
Screen 1
SSID: SETUP-8CE0
PASS: 1234567890
Makna:
- ESP32 membuat WiFi AP.
- Password AP statis.
- SSID digenerate otomatis.
Kemungkinan source:
String apName = "SETUP-" + chipId;
WiFi.softAP(apName.c_str(), "1234567890");
Screen 2
IP: 192.168.10.1
PASS: FE8CE0
Makna:
- IP captive portal.
- Password login halaman setup.
- Password kemungkinan digenerate dari chip ID/MAC.
Screen 3
SERIAL NUMBER
CA6377651238324
Makna:
- Serial unik device.
- Dipakai untuk aktivasi di dashboard Laravel.
Kemungkinan serial dibuat dari:
- MAC address
- chip ID
- random/checksum
UI Setup Portal
Halaman yang sudah diketahui
- Login setup
- Form konfigurasi
Teknologi yang kemungkinan dipakai
- HTML custom
- CSS custom
- ESPAsyncWebServer
- LittleFS/SPIFFS
Kemungkinan struktur filesystem
/data
index.html
login.html
style.css
app.js
Konfigurasi yang Diinput User
Form setup
- Server URL
- SSID WiFi
- Password WiFi
- Timezone
- LCD text line 1
- LCD text line 2
Flow Aktivasi Device
Alur Aktivasi
Dashboard Laravel
↓
Tambah Device + Serial Number
↓
ESP32 connect ke server
↓
ESP kirim serial + MAC
↓
Laravel validasi
↓
Laravel kirim token aktivasi
↓
ESP simpan token
↓
Device ACTIVE
API yang Kemungkinan Ada
Aktivasi device
POST /api/device/activate
Payload:
{
"serial_number":"CA6377651238324",
"mac":"AA:BB:CC:DD",
"firmware":"1.9.5"
}
Response:
{
"status":"ok",
"token":"xxxxx"
}
Sistem Anti Clone
Ditemukan pesan:
MAC MISMATCH
MAC DIPAKAI
Kesimpulan:
- Device diikat ke MAC address.
- 1 serial kemungkinan hanya untuk 1 ESP.
- Clone firmware belum tentu bisa dipakai.
Offline Queue
Pesan:
OFFLINE
Queue saved
Kesimpulan:
- Scan disimpan lokal saat internet mati.
- Akan dikirim ulang saat koneksi kembali.
Kemungkinan storage:
- Preferences
- SPIFFS
- LittleFS
Library ESP32 yang Kemungkinan Dipakai
| Fungsi | Library |
|---|---|
| AP Mode | WiFi.h |
| DNS Redirect | DNSServer |
| Web Server | ESPAsyncWebServer |
| HTTP API | HTTPClient |
| JSON | ArduinoJson |
| RFID | MFRC522 |
| LCD | LiquidCrystal_I2C |
| Storage | Preferences / LittleFS |
Kesimpulan Strategi
Pilihan 1 — Clone Firmware
Kelebihan:
- cepat
- device langsung identik
Kekurangan:
- bisa gagal jika secure/encryption aktif
- sulit maintenance
- sulit modifikasi
- masih tergantung firmware lama
Pilihan 2 — Rebuild Firmware (REKOMENDASI)
Kelebihan:
- kontrol penuh sistem
- mudah dikembangkan
- mudah maintenance
- scalable multi device
- support OTA
- bisa custom kebutuhan madrasah
Kesimpulan:
Rebuild firmware lebih realistis dan lebih powerful dibanding reverse engineering firmware lama.
Target Versi Baru
Fitur Minimal
- RFID scan
- Captive portal setup
- Login setup
- Pairing device
- Device activation
- Token auth
- Offline queue
- LCD info
- Buzzer
- Factory reset
Pengembangan Lanjutan
Ide fitur modern
- OTA update
- Dashboard monitoring device
- QR pairing
- Auto WiFi reconnect
- Hybrid RFID + QR
- Device online/offline realtime
- RSSI monitoring
- Multi server fallback
Posisi Saat Ini
Status:
- Backend Laravel tersedia.
- Database tersedia.
- Hardware tersedia.
- Flow aktivasi sudah dipahami.
- Blueprint arsitektur sudah cukup jelas.
- Rebuild firmware sangat memungkinkan.
Tahap berikutnya:
- Bedah struktur Laravel API.
- Buat endpoint aktivasi device.
- Buat firmware captive portal dasar.
- Implement login setup.
- Implement pairing + token.
- Implement RFID attendance.
- Tambahkan offline queue.
- Finalisasi UI setup.

0 Komentar