# Uji Perangkat SIMAP

Sketch pemeriksa untuk memastikan seluruh modul tersambung benar sebelum
firmware absensi yang sebenarnya dipasang.

Jalankan ini lebih dulu. Mencari satu kabel yang salah jauh lebih mudah di
sini daripada setelah firmware penuh berjalan, karena tiap modul diperiksa
sendiri-sendiri dan hasilnya dilaporkan satu per satu.

## Menjalankan

1. Buka `uji_perangkat.ino` di Arduino IDE
2. Board: **ESP32 Dev Module**
3. Unggah
4. Buka Serial Monitor, kecepatan **115200**
5. Ikuti petunjuk di layar — akan diminta menempelkan kartu

Pemeriksaan berjalan sekali saat menyala. Untuk mengulang, tekan tombol
**EN** pada ESP32.

## Yang diperiksa

| Tahap | Isi |
|---|---|
| 1 | Pemindaian I2C — alamat LCD dan RTC |
| 2 | LCD menyala dan menampilkan tulisan |
| 3 | RTC berjalan, baterai CR2032 masih hidup |
| 4 | Buzzer berbunyi |
| 5 | RDM6300 mengirim data, checksum benar, nomor kartu terbaca |
| 6 | WiFi tersambung |
| 7 | Server SIMAP dapat dihubungi |

Tahap 6 dan 7 dilewati bila `WIFI_SSID` dan `SERVER_URL` dikosongkan, jadi
pemeriksaan perangkat keras bisa dilakukan lebih dulu tanpa jaringan.

## Membaca hasilnya

Di akhir muncul ringkasan seperti ini:

```
  [ OK   ] Jalur I2C      —  2 perangkat
  [ OK   ] LCD            —  alamat 0x27
  [ OK   ] RTC DS3231     —  2026-09-03 15:22:10
  [ OK   ] Buzzer         —  sinyal dikirim, dengarkan sendiri
  [ GAGAL] RDM6300        —  tidak ada data masuk
```

Baris yang bertanda GAGAL disertai daftar hal yang perlu diperiksa.

## Arti temuan yang sering muncul

**Tidak ada perangkat I2C sama sekali** — SDA belum ke D21, SCL belum ke D22,
atau GND modul belum tersambung ke GND ESP32.

**LCD tidak terdeteksi** — hampir selalu karena VCC LCD tersambung ke 3V3,
bukan 5V. LCD tidak menyala pada 3,3V.

**LCD terdeteksi tetapi layar gelap** — kontras. Putar potensio biru di
belakang LCD beberapa putaran penuh dengan obeng minus kecil.

**RTC kehilangan daya** — baterai CR2032 habis atau belum terpasang. Jam
tetap berjalan selama listrik menyala, tetapi akan kacau setelah mati lampu.

**RDM6300 tidak ada data masuk** — kabel dari pin TX modul belum sampai ke
D16, atau terpasang di pin RX. Pindahkan ke pin sebelahnya lalu ulangi.

**Ada data tetapi kartu tidak terbaca** — kartunya bukan 125 kHz. Kartu
e-KTP, kartu bank, dan Mifare 13,56 MHz memang tidak akan terbaca modul ini.

**Checksum salah sesekali** — normal, kartu ditarik terlalu cepat. Yang perlu
dicurigai kalau checksum salah terus dan tidak pernah ada bingkai utuh:
antena terlalu dekat logam atau kabel daya.

**WiFi tidak tersambung** — ESP32 hanya mendukung 2,4 GHz. Jaringan 5 GHz
tidak akan terlihat sama sekali.

**Server kode 401** — server hidup dan terjangkau, tetapi perangkat belum
terdaftar. Buka menu Absensi → Mesin RFID, daftarkan, lalu salin kode dan
kuncinya ke firmware utama.

## Nomor kartu

Saat kartu terbaca, sketch menampilkan dua bentuk:

```
KARTU TERBACA -> desimal 0006168273  |  heks 005E24D1
```

Pakai yang **desimal** saat mendaftarkan kartu di menu Kartu Siswa, karena
itu bentuk yang sama dengan keluaran pembaca USB desktop. Firmware utama juga
mengirim bentuk desimal secara bawaan.
