Vyhotovil som RFID systém na otváranie elektronických dverí. Systém je postavený na komponentoch pre Arduino, teda čítačka kariet a kľúčeniek na 13.56MHz RC522, kompatibilné karty a kľúčenky. Čítačka dokáže prečítať karty štandardu ISO/IEC 14443 A.
Tento štandard funguje i na ISIC kartách, bankomatových kartách, či autobosových, zamestnaneckých a je ich možné taktiež prečítať a využiť pre takýto projekt. Nie je potrebné nakupovať nové karty, stačí použiť existujúce. Čítačkou RC522 čítam MAC adresy kariet a tie prevádzam na špecifický DEC formát, aby som sa vyhol kolíziám a pod.

V úlohe mikrokontroléru pre spracovanie a odosielanie dát som použil dosku NodeMCU v3 Lolin, ktorá disponuje wifi konektivitou a je pre tento účel viac než dostačujúca. Neskôr som systém doplnil aj o možnosť použitia následovníka ESP8266 a to ESP32. Objavila sa aj verzia pre použitie Arduina s Ethernet shieldom (modulom) od Wiznetu. Systém je vhodný pre haly, firemné vstupné vrátnice, elektronické dvere a pre podobné využitie.
Úlohou mikrokontroléraje odosielať dáta na web vždy, keď zaznamená kartu (v nečinnosti neodosiela nič) a na základe navrátenej odpovede z webservera (štandardne OK/NO) otvorí, alebo neotvorí dvere. Vo dverách sa okrem klasického mechanizmu s kľučkou nachádza aj elmg. jazýček, princíp solenoidu ktorý je otváraný mikrokontrolérom na určitú dobu po úspešnej odpovedi z webservera (nastavené v programe na 5500ms). Z vonkajšej strany dverí je guľa, z vnútornej strany kľučka, ktorá je prepojená i na jazýček. Z tohto dôvodu teda nie je nutné inštalovať dve čítačky a pod. Zaznamenáva sa iba príchod. Používateľ odchádza bez priloženia karty. Po stlačení kľučky zvnútra sa vtiahne aj elektromagnetický jazýček - solenoid.

Dáta sa odosielajú na server a spracujú sa v jazyku PHP. Všetky karty, ktoré boli kedy priložené sú archivované a z administračného rozhrania, kde je možné vidieť i real-time vstupy do objektu je možné dané karty povoliť - autorizovať, alebo zamietnuť - deautorizovať jedným kliknutím do dynamickej tabuľky. Aby nebolo ľahké určiť zdrojovú adresu karty. Prevádza sa na špecifickú adresu už na strane mikrokontroléra a na strane webservera sa adresa pozmení algoritmom druhý krát.
Klienta je teda možné autorizovať do 1 sekundy od prvotného priloženia karty, ktoré jeho prístup odmietne, keďže sa jeho MAC adresa karty nenachádza v systéme. Real-time aktualizácia dát sa realizuje AJAX-ovým volaním .php súboru, ktorý vracia tabuľku.

Systém je rýchly a pravidlá pre karty na jej autorizáciu, alebo deautorizáciu je možné vykonať pohodlne odkiaľkoľvek a pravidlo platí ihneď. Je teda veľmi jednoduché takýto systém spravovať i pre laikov. V prípade nedostupnosti webu/výpadku internetu je možné vždy do objektu vstúpiť kľúčom, ktorý dokáže jazýček odtiahnuť spolu s jazýčkom mechanizmu zámku.

Obšírnejšie info o projekte je možné nájsť i na: http://arduino.clanweb.eu/rfid-system.php
Vyskúšať môžete na (vrátane programu pre mikrokontróler - HTTP variant):
http://arduino.clanweb.eu/rfid/
Datasheet čítačky RC522: https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf
Datasheet NodeMCU (ESP8266): http://www.handsontec.com/pdf_learn/esp8266-V10.pdf
Projekt je zdarma dostupný pod MIT licenciou bez supportu. Je to vlastne okresaná verzia pôvodného projektu bez overenia mikrokontroléru na strane servera a bez loginu do webového rozhrania. Každý, kto má adresu, kde sa rozhranie nachádza vie ho spravovať. Nemá teda všetky bezpečnostné prvky pôvodného projektu. V ostatných veciach je identický s pôvodnou verziou. Systém si môžete rozšíriť o vaše funkcie, vytvoriť úrovne prístupu, pridať mená pre karty, aby ste vedeli aj menovite koho systém pustil/nepustil do objektu.
Zhrnutie možností z pohľadu používateľov:
Administrátor |
Používateľ  |
Spravuje webové rozhranie |
Fyzicky prikladá NFC tag/kľúčenku/náramok/kartu |
V reálnom čase vidí priloženie karty s výsledkom overenia |
Pri overeni sú mu odistené dvere na 5 sekúnd |
Historicky vidí 100 posledných priložení |
Pri neoverení používateľa sa jazýček nevtiahne |
Jedným klikutím môže schváliť už priloženú kartu |
Používateľ o overení/neoverení nie je informovaný (led/buzzer) |
Manuálne zadanie adresy karty |
Používateľ použije bankomatovú kartu, ISIC kartu, spĺňajú štandard ISO/IEC 14443 A |
Odstránenie karty jedným kliknutím |
Informovanie používateľa o výsleku overenia cez diódu/buzzer (len platená verzia) |
Grafická reprezentácia prístupov + štatistika vrátnika |
|
Vidí zdrojový kód pre NodeMCU |
|
Projekt na Githube: https://github.com/martinius96/RFID-otvaranie-dveri
Video pre lepšiu predstavu (farby sa javia o dosť tmavšie ako v skutočnosti na webe sú): https://www.youtube.com/watch?v=u2VE5SCkHs0