TKK_E32230273/flowchart_alat.md

4.5 KiB

Flowchart Alat (ESP32)

Berikut adalah flowchart lengkap khusus untuk alur kerja dan navigasi pada alat (ESP32 + Layar TFT + Sensor Sidik Jari) berdasarkan logika program di main.cpp.

flowchart TD
    Mulai([Mulai / Alat Dinyalakan]) --> Init[Inisialisasi Sistem & Koneksi WiFi]
    Init --> Standby[Layar Utama / Standby\nSCR_MAIN]

    %% Dua jalur utama saat di layar Standby
    Standby -->|Tempelkan Jari| BacaJari[Sensor Membaca Sidik Jari]
    Standby -->|Sentuh Layar| Menu[Layar Daftar Menu\nSCR_MENU_LIST]

    %% Alur Validasi Sidik Jari (Akses Masuk)
    BacaJari --> Validasi{Cek ID Jari\nAktif & Terdaftar?}
    Validasi -->|Benar| AksesBuka[Pintu Terbuka]
    Validasi -->|Salah| AksesTolak[Tampilkan Layar Akses Ditolak\nBuzzer Bunyi Gagal]
    AksesTolak --> Standby
    
    AksesBuka --> Sinkronisasi[Kirim Laporan Absensi ke Server\nSync Task]
    Sinkronisasi --> StatusKoneksi{Apakah Koneksi\nInternet Ada?}
    StatusKoneksi -->|Online| QRReport[Tampilkan Layar QR Laporan\nSCR_QR_REPORT]
    StatusKoneksi -->|Offline| FormOffline[Tampilkan Formulir Aktivitas Offline\nSCR_ACTIVITY_FORM]
    
    QRReport --> SelesaiAbsen([Selesai])
    FormOffline --> SimpanOffline[Simpan Log di Memori Alat\nNVS]
    SimpanOffline --> SelesaiAbsen
    SelesaiAbsen -->|Timeout/Tutup Pintu| Standby

    %% Alur Navigasi Menu
    Menu --> PilihDaftar[Pilih: Registrasi Baru]
    Menu --> PilihHelpdesk[Pilih: Bantuan / Helpdesk]
    Menu --> PilihDarurat[Pilih: Keadaan Darurat]

    %% Alur Bantuan
    PilihHelpdesk --> LayarHelpdesk[Tampilkan Info Bantuan\nSCR_HELPDESK]
    LayarHelpdesk -->|Kembali| Menu

    %% Alur Keadaan Darurat
    PilihDarurat --> LayarDarurat[Tampilkan Peringatan Darurat\nSCR_EMERGENCY]
    LayarDarurat --> InputDarurat[Input Nomor HP/PIN Darurat\nSCR_EMERGENCY_HP]
    InputDarurat --> CekDarurat{Verifikasi PIN/HP\nDarurat}
    CekDarurat -->|Benar| AksesBuka
    CekDarurat -->|Salah| AksesTolak

    %% Alur Pendaftaran Baru (Enrollment)
    PilihDaftar --> MenuDaftar[Layar Menu Pendaftaran\nSCR_REGISTER_MENU]
    MenuDaftar --> InputData[Ketik Keyboard Data Diri:\nNama, NIK, No HP, PIN]
    InputData --> AmbilFoto[Layar QR Code Untuk Foto\nSCR_QR_REG_FOTO]
    AmbilFoto --> DaftarJari[Layar Pendaftaran Sidik Jari\nSCR_REG_FINGER]
    DaftarJari --> RekamJari[Tempel Jari 2x ke Sensor]
    RekamJari --> CekRekam{Perekaman\nBerhasil?}
    CekRekam -->|Gagal| DaftarJari
    CekRekam -->|Sukses| KirimData[Kirim Data Registrasi ke Server]
    KirimData --> SelesaiDaftar([Selesai Pendaftaran])
    SelesaiDaftar --> Standby

    %% Tambahan Kondisi Akun
    Validasi -->|Akun Diblokir| AkunMati[Layar Akun Dinonaktifkan\nSCR_ACCESS_DEACTIVATED]
    AkunMati --> Standby

Penjelasan Alur Flowchart Alat (ESP32):

1. Kondisi Layar Utama (Standby) Layar utama (SCR_MAIN) adalah pusat kendali saat alat tidak sedang dioperasikan. Dari sini, alat mendeteksi 2 (dua) jenis interaksi:

  • Jari Ditempelkan langsung ke sensor tanpa menekan layar.
  • Layar Disentuh untuk menavigasi menu.

2. Alur Akses (Buka Pintu)

  • Saat jari ditempel, sistem mengecek ke local storage alat apakah ID jari tersebut aktif dan berhak masuk.
  • Jika Gagal/Ditolak/Diblokir, alat akan menyalakan lampu merah, buzzer berbunyi, dan menampilkan peringatan.
  • Jika Berhasil, alat membuka relay (pintu). Setelah pintu terbuka, alat akan mengirimkan data sync ke server.
  • Setelah berhasil terbuka, pengguna diminta melakukan absensi. Jika ada internet, muncul QR Code. Jika WiFi putus (offline), akan muncul Formulir Aktivitas di layar sentuh untuk diisi manual yang akan tersimpan sementara di memori internal ESP32 (NVS).

3. Alur Menu & Fitur Lain Bila pengguna menyentuh layar, ia akan diarahkan ke beberapa opsi:

  • Bantuan (Helpdesk): Hanya menampilkan informasi kontak atau bantuan standar.
  • Darurat (Emergency): Meminta pengguna memasukkan Nomor HP atau PIN Cadangan Darurat apabila terjadi kendala pada sidik jari untuk memaksa pintu terbuka.
  • Registrasi Penghuni Baru: Ini adalah proses berantai yang paling panjang di alat:
    1. Pengguna mengetikkan data pribadi (Nama, NIK, Nomor HP, PIN) di keyboard virtual yang muncul pada layar TFT.
    2. Sistem lalu memunculkan QR Code khusus pendaftaran foto.
    3. Setelah selesai, masuk ke pendaftaran Sidik Jari. Pengguna harus menempelkan jari 2x ke sensor untuk membaca guratan jari.
    4. Bila berhasil direkam di alat, data ID dan biodata akan dilempar (POST) ke server via API untuk disimpan sebagai Penghuni baru.