RFID systém s on-line správou v reálnom čase
Ve dnešním článku se podíváme na přístupový systém založený na RFID kartách od našeho fanouška s přezdívkou martinius96.
Zdar bastlíři, dnes by som rád predstavil systém, ktorý som vyvíjal pred niekoľkými mesiacmi.
Vyhotovil som RFID systém na otváranie dverí s elektomagnetickým jazýčekom na základe overenia užívateľa po priložení karty s takmer okamžitou odpoveďou. Systém je postavený na komponentoch pre Arduino, teda čítačka kariet a kľúčeniek na 13.56MHz RC522, kompatibilné karty a kľúčenky, relé. Tieto komponenty sú plne kompatibilné aj s ESP modulmi. Rozhodol som sa pre NodeMCU s wifi čipom ESP8266. Čítačka RC522 dokáže prečítať karty štandardu ISO/IEC 14443 A. Tento štandard funguje i na ISIC, bankomatové, autobusové, či zamestnanecké karty a je ich možné taktiež prečítať a využiť pre takýto projekt bez nutnosti investovať do nových kariet, či menších kľúčeniek. RC522 podporuje SPI zbernicu, po ktorej komunikuje s mikrokontrolérom.
Aký je princíp funkčnosti tohto systému?
Čítačkou čítam MAC adresy kariet, ktoré si prevádzam na špecifický decimálny formát (0-9 na každú pozíciu). Obsah karty sa nečíta! V úlohe mikrokontroléru pre spracovanie a odosielanie dát som použil dosku NodeMCU v3 Lolin, ktorá disponuje wifi konektivitou, podporuje šifrovaný prenos a je pre tento účel je viac než dostačujúca.
Úlohou NodeMCU je odosielať dáta na web backend vždy, keď zaznamená kartu a na základe návratovej HTTP hlavičky určí podľa odpovede z webservera, či je užívateľovi povolený prístup. Dvere otvorí, alebo neotvorí, záznam s výsledkom si uloží do logu. Vo dverách sa okrem klasického mechanizmu s kľučkou nachádza i špeciálny elmg. jazýček, ktorý otvára mikrokontrolér na určitú dobu po úspešnej odpovedi z webservera. Funguje rovnako ako solenoid ventil. Nakoľko je na 5V a vyžaduje väčší prúd, využil som elektomagnetické relé na 3.3V so spínacím prúdom od 10mA (NodeMCU dáva 12mA na výstup), ktorým spínam mechanizmus jazýčka. Z vonkajšej strany dverí je guľa, z druhej strany kľučka, ktorá je prepojená i na jazýček. Z tohto dôvodu teda nie je nutné inštalovať dve čítačky, overuje sa iba užívateľ vchádzajúci do objektu.
Dáta sa odosielajú na server a spracúvajú sa na strane webservera v jazyku PHP. Všetky karty, ktoré boli kedy priložené sú archivované v MySQL databáze vrátane úspešných, alebo neúspešných overení používateľa vrátane času udalosti. 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ť. Real-time aktualizácia dát sa realizuje AJAX-ovým volaním.
Systém je rýchly a nastavenia pre karty na ich autorizáciu, alebo deautorizáciu je možné vykonať pohodlne odkiaľkoľvek jedným kliknutím. Je teda veľmi jednoduché takýto systém spravovať i pre laikov, ktorí nemajú skúsenosti. Systém je navrhnutý automatizovane. Administrátor sa iba stará o výber povolených – autorizovaných kariet, s ktorými je umožnený vstup do objektu. 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.
Môžem systém použiť? Sú zdrojové kódy dostupné?
Áno, systém je momentálne dostupný zdarma a je ho možné využívať. Systém je zbalený v repozitári na Github-e. Systém stačí rozbaliť, celú webovú časť nahrať na webserver, ktorý je pod HTTPS protokolom. Do MySQL databázy je nutné importovať tabuľky z sql priečinku repozitára a v súbore connect.php nastaviť údaje pre prístup do vašej databázy. Priamo vo web rozhraní je možné prezrieť si zdrojový kód pre mikrokontróler NodeMCU vrátane schémy zapojenia systému. Zdrojový kód je potrebné vhodne upraviť pre vaše použitie. Potrebujete zmeniť názov wifi siete, na ktorú sa budete s ESP pripájať, zmeniť jej heslo, zmeniť webovú lokalitu, kde sa bude vykonávať HTTPS request po priložení karty. Pripojte RFID čítačku RC522 podľa priloženej schémy zapojenia, pripojte relé, pripojte svorkovicu relé na jazýček, nahrajte program a môžete ho využívať. V momentálnom nastavení budú dvere otvorené na 4 sekundy. Po uplynutí časť sa jazýček vystrčí, nakoľko má skosenú hranu, dvere je možné pribúchnuť a jazýček tak bezpečne zapadne do zárubne. Systém si môžete vhodne upraviť, pridať ďalšie zaujímavé prvky, napríklad buzzer, ktorý sa rozpípa pri priložení neautorizovanej karty. Niektoré elektronické zámky využívajú motorčeky pre jazýčky, ktoré je taktiež možné ovládať vhodným hardvérom.
Github repozitár s projektom je dostupný na: https://github.com/martinius96/RFID-otvaranie-dveri
Pre zaujímavosť datasheety čítačky a NodeMCU dosky:
- 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
Děkujeme za projekt. Máte i vy projekt, se kterým byste se chtěli pochlubit? Přečtěte si, jak na to.
- Sledovač slunce s Arduinem - 23.3.2022
- Programovatelný kytarový pedál s Arduinem - 26.2.2020
- Arduino infračervený teploměr vytištěný na 3D tiskárně - 11.2.2020