AttenScan NFC reader for simple attendance system.

AttenScan

AttenScan v3 AttenScan je hardvérový modul, ktorý dokáže prečítať jedinečný identifikátor z NFC tagu/prístupovej karty. Tento údaj je použitý pre evidenciu prezenčnej účasti na výučbe. Neoddeliteľnou súčasťou celého systému je systém pre evidenciu účasti na výučbe – NFCdance.

Vlastnosti modulu AttenScan

  • 1.4" TFT displej (vizuálna spätná väzba)
  • bzučiak (zvuková spätná väzba),
  • integrovaná batéria,
  • USB-C rozhranie:
    • pre dobíjanie batérie,
    • pre komunikáciu s aplikáciou AttenMan (voliteľne),
  • WiFi konektivita – parametre pripojenia sa nastavujú cez aplikáciu AttenMan

Technické parametre:

  • Výdrž na batériu: cca 12 hod
  • Čas nabíjania: 1 hod
  • Hmotnosť: 150 g
  • Rozmery: 60 x 90 x 22 mm

Firmvér

Verzia 1.0.1

  • Pripojenie sa sieť so skrytým SSID.
  • Vylepšené UI.

Verzia 1.0.0

Plná základná funkcionalita:

  • zobrazenie aktuálneho stavu a stavových kódov na displeji,
  • konfigurácia pripojenia k wifi cez USB (aplikácia AttenMan),
  • úsporný režim: automatické vypínanie displeja, uvedenie do stavu SLEEP pri nečinnosti,
  • indikátor vybitia batérie,
  • automatický vyhľadanie wifi sietí a pokus o pripojenie sa:
    • pri 3 po sebe detegovaných chybách siete,
    • pri detekcii odpojenia wifi siete.

Vývoj

Aplikačné Programové Rozhranie

Komunikácia medzi PC (konfiguračný program AttenMan, alebo sériová konzola) je cez rozhranie UART (115200 baud, 8N1). Komunikácia je v režime ASCII, na konci každej správy sa musí nachádzať znak pre nový riadok '\n'. Komunikačný protokol je typu master/slave. Formát požiadavky je:

AttenScan command <params>

Príkaz "info"

Informácia o harvérových častiach modulu AttenScan.

AttenScan info

odpoveď:

{ "status":1,
  "request": "info",
  "name": "<NAME_OF_MODULE>",
  "version":"<FIRMWARE_VERSION>",
  "server":"<IP_OF_ATTENDANCE_SERVER>",
  "mac":"<MAC_ADDRESS>",
  "low_power":0/1,   #info o použitom režime LowPower  
  "lp_timeout":<n>,  #počet sekúnd pre automatické uspanie
  "app_mcu":"<USED_MCU>",   
  "app_nfc":"<USED_NFC_CHIP>",  
  "battery":<BATTERY_IN_mV>,
}

Príkaz "wifi"

Modul AttenScan dokáže uložiť informácie k 5-tim wifi sieťam (z toho je jedna eduroam) Pridanie novej wifi siete do modulu

AttenScan wifi add <ssid> <password>

odpoveď:

{ "status":1,
  "request": "wifiadd",
  "wifi":"SSID"
}

kde n bude 1..5

Chybová odpoveď

{ "status": 0,
  "request": "wifiadd",
  "error":"ERROR_MESSAGE"
}

kde ERROR_MESSAGE je dôvod chyby (Wrong parameter count, Max 5 wifi allowed)

Pridanie wifi eduroam siete do modulu

AttenScan wifi add eduroam <password> <login>

Kde password a login sú prístupové údaje do wifi siete eduroam.

Upozornenie: Aktuálne je podporovaný len protokol WPA2. Odpoveď má rovnaký formát ako pri príkaze attenscan wifi add. Chybový stav je rozšírený o "Too few oparameters".

Informácia o uloženej wifi sieti

AttenScan wifi get <index>

Kde index je číslo wifi siete (1..5). Odpoveď:

{ "status": 1,
  "request": "wifiget",
  "index": <n>,
  "ssid":"<ERROR_MESSAGE>"
}

V prípade siete eduroam je odpoveď doplnená o "login": "<LOGIN>" Kde ssid je názov siete. Heslo wifi siete sa nedá z modulu AttenScan prečítať.

Informácia o uložených wifi sieťach

AttenScan wifi status

Odpoveď:

{ "status": 1,
  "request": "wifistatus",
  "count": <n>
}

Kde n je počet uložených sietí.

Zmazanie uložeej wifi siete Z modulu je možné zmazať uložené wifi siete. Zmazať sa dá len posledný záznam.

AttenScan wifi delete <n>
AttenScan wifi delete eduroam

kde <n> je číslo wifi siete. V druhom prípade sa zmaže záznam o pripojení na sieť eduroam.

Odpoveď:

{ "status": 1,
  "request": "prefdelete", #"prefdeleteeduroam"
  "count": <n
}

Zmazanie uložených wifi sietí Z modulu je možné zmazať všetky uložené wifi siete.

AttenScan pref delete <part>

Kde part môže byť:

  • pref_wifi - zmažú sa všetky wifi siete
  • pref_api - zmažú sa nastavenie modulu API (adresa servera nfcdance) Odpoveď:
    { "status": 1,
    "request": "prefdelete",
    "count": 0
    }

Nastavenia

Príkaz: attenscan settings

Odpoveď:

{ 
  "status":1,
  "request":"settings",
  "enable_sound":[0/1],
  enable_lp":[0/1],
  "time_to_sleep":[time in seconds],
  "nfc_time_delay":[time in seconds],
  "api_server_url":"URL_OF_SERVER_API",
  "force_first_wifi":[0/1]
}

Nastavenie parametrov Parametre modulu AttenScan mo6no mastoavť len samostatne. Syntax je nasledovná:

attenscan settings <SETTING_NAME>

kde <SETTING_NAME> môže byť:

  • enable_sound - aktivuje/deaktivuje zvukovú spärnú väzbu
  • enable_lp - aktivuje/deaktivuje režim s úsporou energie
  • tt_sleep - nastaví čas v sekundách po ktorých prejde modulu do režimu s nízkou spotrebou
  • api_server - API server pre odoslanie naskenovaných údajov z NFC tagov (ISIC kariet)
  • nfc_time_delay - čas zobrazenia údaju na displeji po načítaní NFC tagu.
  • force_first_wifi - bude sa vždy pokúšať pripojiť na prvú wifi sieť uloženú v konfigurácii. Vhodné použiť pre wifi sieti so skrytým SSID.

Odpoveď môže byť

{ "status": 1,
  "request": "<SETTING_NAME>",
  "<SETTING_NAME>": "<SETTING_VALUE>",
  "count": 0
}

alebo chybová odpoveď

{ 
  "status": 0,
  "request": "<SETTING_NAME>",
  "error": "ERROR_MESSAGE",
}

Hardvér

Schéma zapojenia modulu schema zapojenia

Aktualizácia firmvéru

esptool.py  -p  /dev/ttyACM0  -b  460800  --before  default_reset  --after  hard_reset  --chip  esp32  write_flash  --flash_mode  dio  --flash_size  detect  --flash_freq  40m  0x1000  bootloader.bin  0x8000  partitions.bin  0x10000  attenscan.bin

Po rozbalení finárnych súborov stačí spustiť príkaz make flash (Linux) alebo flash.bat (Windows)

Contributors 2
Juraj Ďuďák 74.4%
Aleš Hrehuš 25.6%
Languages
  • C++ [83.47%]
  • C [16.29%]
  • Makefile [0.23%]
  • Created at 01.02.2024
    Last update 05.03.2025, 20:42:06