****āđāļāļ Code ESP32-S3 āđāļĨāļ°āđāļāļĢื่āļāļāļ่āļēāļ Smart Card USB āļāļĢี
ðŠŠ āļ่āļēāļāļัāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļĒāļ้āļ§āļĒ ESP32-S3 + āđāļāļĢื่āļāļāļ่āļēāļ Smart Card USB (āđāļĄ่āļ้āļāļāļ้āļāļāļāļĄāļิāļ§āđāļāļāļĢ์)
āđāļāļĒุāļāļี่āļุāļāļāļĢāļ์ IoT āđāļ้āļēāļĄāļēāļĄีāļāļāļāļēāļāļŠāļģāļัāļ āļāļēāļĢāļāļģāđāļŦ้āļĢāļ°āļāļāļāļģāļāļēāļāđāļ้āđāļāļ Standalone āļāļāļēāļāļāļ°āļัāļāļĢัāļāļืāļāđāļ็āļāļŦัāļ§āđāļāļŦāļĨัāļ āļŦāļึ่āļāđāļāđāļāļĢāđāļāļāļ์āļี่āđāļ้āļāļēāļāđāļ้āļāļĢิāļāđāļāļŠāļēāļĒāļāļēāļāļĢāļ°āļāļāļืāļ āļāļēāļĢāđāļ้āļāļāļĢ์āļ ESP32-S3 āļ่āļēāļāļ้āļāļĄูāļĨāļāļēāļāļัāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļĒāļ่āļēāļāđāļāļĢื่āļāļāļ่āļēāļ Smart Card (USB) āđāļ้āđāļāļĒāļāļĢāļ āļĨāļāļāļ§āļēāļĄāļĒุ่āļāļĒāļēāļ āđāļĄ่āļ้āļāļāļ่āļāļāļāļĄāļิāļ§āđāļāļāļĢ์ PC āđāļŦ้āđāļāļ°āļāļ°āļีāļāļ่āļāđāļ
ð āļุāļāđāļ่āļāļāļāļ ESP32-S3 āļัāļāļāļēāļ USB Host
ESP32-S3 āļĢāļāļāļĢัāļāļāļēāļĢāļāļģāļāļēāļāđāļāļ USB OTG (On-The-Go) āđāļāđāļŦāļĄāļ USB Host āļāļģāđāļŦ้āļัāļ§āļāļāļĢ์āļāļāļģāļŦāļ้āļēāļี่āđāļ็āļāđāļŪāļŠāļ์āļŦāļĨัāļ āļŠāļēāļĄāļēāļĢāļāļāļĢāļ§āļāļัāļ āđāļื่āļāļĄāļ่āļ āđāļĨāļ°āļŠื่āļāļŠāļēāļĢāļัāļāđāļāļĢื่āļāļāļ่āļēāļāļัāļāļĢāļŠāļĄāļēāļĢ์āļāļāļēāļĢ์āļāļี่āļĢāļāļāļĢัāļāļĄāļēāļāļĢāļāļēāļ CCID (Chip Card Interface Device) āļั่āļ§āđāļāđāļāļ้āļāļāļāļĨāļēāļāđāļ้āļัāļāļี
⚙️ āļŦāļĨัāļāļāļēāļĢāļāļģāļāļēāļāđāļĨāļ°āđāļāļĨāļ§์āļāļāļāļĢāļ°āļāļ
ð āđāļื่āļāļĄāļ่āļāļŪāļēāļĢ์āļāđāļ§āļĢ์: āļ่āļāļāļāļĢ์āļ USB Host āļāļāļ ESP32-S3 āđāļ้āļēāļัāļāđāļāļĢื่āļāļāļ่āļēāļ Smart Card āļ่āļēāļāļŠāļēāļĒ OTG
⚡ Detect & Activate: āđāļĄื่āļāđāļŠีāļĒāļāļัāļāļĢāļāļĢāļ°āļāļēāļāļ āļัāļ§āļāļāļĢ์āļāļāļ°āļāļĢāļ§āļāļัāļāļāļēāļĢāđāļื่āļāļĄāļ่āļ āđāļิāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāļิāļ āđāļĨāļ°āļึāļāļ่āļē ATR (Answer To Reset) āđāļื่āļāļĒืāļāļĒัāļāļŠāļāļēāļāļ°āļāļ§āļēāļĄāļāļĢ้āļāļĄ
ðĄ APDU Command: āļŠ่āļāļāļģāļŠั่āļāļĄāļēāļāļĢāļāļēāļ APDU āđāļื่āļāđāļĨืāļāļ Application āļāļāļŠāļĄāļēāļĢ์āļāļāļēāļĢ์āļ āđāļĨāļ°āļŠ่āļāļāļģāļŠั่āļāļ่āļēāļāļ้āļāļĄูāļĨāļāļēāļĄ Block Address āļ่āļēāļ āđ
ð Data Parsing & Encoding: āļ้āļāļĄูāļĨāļัāļ§āļัāļāļĐāļĢāļี่āļึāļāļāļāļāļĄāļēāļāļ°āļูāļāđāļ้āļēāļĢāļŦัāļŠāđāļāļ TIS-620 āļึāļāļ้āļāļāđāļāļĨāļāđāļ็āļ UTF-8 āļ่āļāļāļāļģāđāļāđāļŠāļāļāļāļĨāļāļāļŦāļ้āļēāļāļ, āļĒิāļāđāļ้āļē REST API āļŦāļĢืāļāļŠ่āļāļ่āļēāļ Wi-Fi āđāļ้āļēāļŠู่āļĢāļ°āļāļāļŦāļĨัāļ
ð āļ้āļāļĄูāļĨāļี่āļŠāļēāļĄāļēāļĢāļāļึāļāļāļāļāļĄāļēāđāļ้āļāļēāļāđāļ้
ð āđāļĨāļāļāļĢāļ°āļāļģāļัāļ§āļāļĢāļ°āļāļēāļāļ (CID 13 āļŦāļĨัāļ)
ðĪ āļื่āļ-āļāļēāļĄāļŠāļุāļĨ (āļั้āļāļ āļēāļĐāļēāđāļāļĒāđāļĨāļ°āļัāļāļāļĪāļĐ)
ð āļ§ัāļāđāļืāļāļāļีāđāļิāļ āđāļĨāļ°āđāļāļĻ
ð āļี่āļāļĒู่āļāļēāļĄāļāļ°āđāļีāļĒāļāļĢāļēāļĐāļāļĢ์
ðĒ āļŦāļ่āļ§āļĒāļāļēāļāļี่āļāļāļāļัāļāļĢ āļ§ัāļāļāļāļāļัāļāļĢ āđāļĨāļ°āļ§ัāļāļŦāļĄāļāļāļēāļĒุ
ðž️ āļĢูāļāļ่āļēāļĒāļŦāļ้āļēāļāļĢāļāļāļĢāļ°āļāļģāļัāļ§ (āļ้āļāļĄูāļĨāļ āļēāļāļāļāļēāļāļāļĢāļ°āļĄāļēāļ 5KB)
ðŧ āđāļāļ§āļāļēāļāļāļēāļĢāļัāļāļāļēāļāļāļāļ์āđāļ§āļĢ์ (Arduino IDE)
āļŠāļģāļŦāļĢัāļāļāļēāļĢāļัāļāļāļēāļāļ Arduino IDE āļŦāļĢืāļ ESP-IDF āļŠāļēāļĄāļēāļĢāļāđāļ้āđāļĨāļāļĢāļēāļĢีāļ่āļ§āļĒāļัāļāļāļēāļĢ USB Host āđāļ่āļ EspUsbHost āļี่āļāļĢāļāļāļāļĨุāļĄāļāļēāļĢāļัāļāļāļēāļĢ CCID Class āđāļāļĒāļัāļ§āđāļĨāļāļĢāļēāļĢีāļāļ°āļ่āļ§āļĒāļัāļāļāļēāļĢāļีāđāļ§āļāļ์āļŠāļģāļัāļāđāļŦ้āļัāļāđāļāļĄัāļิ:
ð Event āļāļĢāļ§āļāļัāļāļāļēāļĢāđāļŠีāļĒāļ/āļāļāļāđāļāļĢื่āļāļāļ่āļēāļāļัāļāļĢ
ðĨ Event āļāļĢāļ§āļāļัāļāļāļēāļĢāđāļŠีāļĒāļ/āļึāļāļัāļāļĢāļāļĢāļ°āļāļēāļāļ
⚡ āļัāļāļ์āļัāļ Power-Up / Reset āļิāļāļāļēāļĢ์āļ
ðĻ āļ่āļāļĢัāļ-āļŠ่āļāļāļģāļŠั่āļ APDU Request/Response
⚠️ āļ้āļāļāļ§āļĢāļĢāļ°āļ§ัāļāļŠāļģāļัāļāļŠāļģāļŦāļĢัāļāļŠāļēāļĒāļŪāļēāļĢ์āļāđāļ§āļĢ์
ð āđāļāđāļĨี้āļĒāļ 5V āļ้āļāļāļิ่āļ: āļāļāļĢ์āļ USB Host āļ้āļāļāļ่āļēāļĒāļāļĢāļ°āđāļŠāđāļ 5V āļี่āđāļีāļĒāļāļāļ āđāļāļĢื่āļāļāļ่āļēāļāļัāļāļĢāļŦāļĨāļēāļĒāļĢุ่āļāļึāļāļāļĢāļ°āđāļŠāļ่āļāļāļ้āļēāļāļŠูāļāļāļāļ°āļ่āļēāļāļ้āļāļĄูāļĨ āļŦāļēāļāđāļāļāļ āļĢāļ°āļāļāļāļ°āļĄāļāļāđāļĄ่āđāļŦ็āļāļุāļāļāļĢāļ์āļŦāļĢืāļāļŦāļĨุāļāļāļĨāļēāļāļัāļ āđāļāļ°āļāļģāđāļŦ้āļ่āļāļ§āļāļāļĢāļ่āļēāļĒāđāļ 5V āđāļĒāļāđāļŦ้āļāļāļĢ์āļ USB Host āđāļāļĒāđāļāļāļēāļ°
ð§ āđāļĨืāļāļāļิāļāļี่āļĄี PSRAM āļŦāļēāļāļ้āļāļāļāļēāļĢāļึāļāļĢูāļāļ āļēāļ: āļāļēāļĢāļ่āļēāļāļ āļēāļāļ่āļēāļĒāļŦāļ้āļēāļāļĢāļāļāļēāļāļัāļāļĢāļāļ°āļ้āļāļāļึāļāļ้āļāļĄูāļĨ Hex āđāļāļāđāļ่āļāļŦāļĨāļēāļĒ Chunk āđāļĨ้āļ§āļāļģāļĄāļēāļāļĢāļ°āļāļāļāđāļ็āļ Buffer āļāļāļēāļāđāļŦāļ่ āđāļāļ°āļāļģāđāļŦ้āđāļĨืāļāļāđāļ้āđāļĄāļูāļĨ ESP32-S3 āļĢุ่āļāļี่āļĄี PSRAM (āđāļ่āļ 4MB āļึ้āļāđāļ) āđāļื่āļāļ้āļāļāļัāļāļัāļāļŦāļēāļŦāļ่āļ§āļĒāļāļ§āļēāļĄāļāļģ Heap āđāļ็āļĄ (Out of Memory)
ðĄ āļāļēāļĢāļāļģāđāļāļ่āļāļĒāļāļāđāļĨāļ°āļ้āļāļāļāļŦāļĄāļēāļĒ (PDPA)
āđāļāļĨูāļัāļāļี้āđāļŦāļĄāļēāļ°āļāļĒ่āļēāļāļĒิ่āļāļŠāļģāļŦāļĢัāļāļāļēāļĢāļ่āļāļĒāļāļāđāļ็āļ:
ðą āļู้ Kiosk āļĒืāļāļĒัāļāļัāļ§āļāļāļāļāļēāļāļāļāļāļē
ðĨ āļุāļāļĨāļāļāļ°āđāļีāļĒāļāđāļĨāļ°āļัāļāļāļĢāļāļāļŦāļ้āļēāļāļēāļ
⏱️ āđāļāļĢื่āļāļāļัāļāļึāļāđāļ§āļĨāļēāđāļ้āļē-āļāļāļāļāļēāļāđāļāļāđāļĢ้āļŠāļēāļĒ
ð āļ้āļāļึāļāļĢāļ°āļ§ัāļ: āļ้āļāļĄูāļĨāļāļāļัāļāļĢāļāļĢāļ°āļāļēāļāļāđāļ็āļāļ้āļāļĄูāļĨāļŠ่āļ§āļāļุāļāļāļĨāļ่āļāļāđāļŦāļ§ (Sensitive PII) āļāļēāļĄ āļ.āļĢ.āļ. āļุ้āļĄāļāļĢāļāļāļ้āļāļĄูāļĨāļŠ่āļ§āļāļุāļāļāļĨ (PDPA) āļāļēāļĢāļāļģāđāļāđāļ้āļāļēāļāļāļĢิāļāļ้āļāļāļāļģāļึāļāļึāļāļāļēāļĢāļāļāļāļ§āļēāļĄāļĒิāļāļĒāļāļĄ (Consent) āļāļēāļĢāđāļ้āļēāļĢāļŦัāļŠāļ่āļāļāļāļēāļāļŠ่āļāļ้āļāļĄูāļĨ (HTTPS / TLS) āđāļĨāļ°āļŦ้āļēāļĄāļัāļāđāļ็āļāļ้āļāļĄูāļĨāļี่āđāļĄ่āļāļģāđāļ็āļāļ่āļāļ§ัāļāļุāļāļĢāļ°āļŠāļāļ์āđāļāļĒāđāļ็āļāļāļēāļ
ESP32-S3 āļึāļāđāļ็āļāļāļēāļāđāļĨืāļāļāļี่āļุ้āļĄāļ่āļē āļāļĨ่āļāļāļัāļ§ āđāļĨāļ°āļāļĢāļ°āļŦāļĒัāļāļāļĨัāļāļāļēāļāļี่āļŠุāļāļัāļ§āļŦāļึ่āļāļŠāļģāļŦāļĢัāļāļāļēāļāļ่āļēāļāļัāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļāļัāļāļัāļ§ (Embedded Identity Gateway) āđāļāļัāļāļุāļัāļ




















.png)

.png)



























