Modul RC522 RFID je jedným z najuniverzálnejších a najpopulárnejších zariadení pre elektronické projekty a systémy kontroly prístupu. Spolu s Arduino doskou umožňuje čítanie a zápis informácií na RFID karty a kľúčenky pomocou bezdrôtovej komunikácie. Tento typ technológie je veľmi užitočný v projektoch automatizácie, bezpečnosti a monitorovania, ako je automatické otváranie dverí alebo používanie personalizovaných identifikačných systémov.
V tomto článku podrobne preskúmame, ako modul RC522 funguje, ako ho pripojiť k mikrokontroléru, akým je napríklad Arduino, a niekoľko praktických príkladov, ktoré vám umožnia vyťažiť z neho maximum. Ak začínate s projektmi RFID, tento článok vám veľmi pomôže pochopiť princípy a ako vykonať jednoduchú a efektívnu implementáciu.
Čo je RFID?
RFID (Radio Frequency Identification) je technológia, ktorá umožňuje bezdrôtové čítanie štítkov alebo štítkov, bez potreby fyzického kontaktu. Tieto štítky sú dostupné vo viacerých formátoch ako napr karty, kľúčenky a dokonca aj nálepky. V závislosti od typu RFID sa používajú v širokej škále aplikácií: od riadenia prístupu k budovám až po riadenie zásob.
RFID čítačka funguje ako a odosielateľ-prijímač rádiofrekvenčných signálov. Keď je štítok RFID v blízkosti čítačky, reaguje odoslaním informácií uložených v jej pamäti. Pri práci s modulom, ako je RC522, môžete tieto informácie použiť na vykonávanie rôznych akcií vo vašom projekte, ako je povolenie prístupu k dverám alebo registrácia vstupu osôb.
Modul RC522
Modul RC522 Je to jedna z najpopulárnejších RFID čítačiek vďaka svojej jednoduchosti a všestrannosti. Funguje v Frekvencia 13.56 MHz a umožňuje čítať a písať informácie v značkách kompatibilných s týmto štandardom.
RC522 komunikuje s mikrokontrolérom prostredníctvom protokolu SPI, čo znamená, že je kompatibilný nielen s Arduino, ale aj s inými systémami ako PIC a Raspberry Pi. Okrem toho má a rozsah čítania asi 5 až 7 cm, čo je viac než dosť pre väčšinu projektov kontroly prístupu.
Pripojenie modulu RC522 RFID k Arduinu
Jednou z veľkých výhod RC522 je, aké ľahké je pripojiť ho k Arduinu. Prvá vec, ktorú musíme urobiť, je uistiť sa, že všetky kolíky na module sú správne pripojené k zodpovedajúcim kolíkom na Arduine. Tu je tabuľka s prepojeniami:
Modul RC522 | Arduino Uno/Starší brat | Mega Arduino |
---|---|---|
SDA (SS) | 10 | 53 |
SCK | 13 | 52 |
Mosi | 11 | 51 |
Mišový | 12 | 50 |
IRQ | Nie je pripojený | Nie je pripojený |
GND | GND | GND |
RST | 9 | 9 |
3.3V | 3.3V | 3.3V |
Pamätajte, že modul RC522 pracuje s napätím 3.3V, preto odporúčame použiť prevodník úrovne napätia, ak plánujete využívať systém dlhšie, aj keď pri rýchlych testoch môže fungovať správne pripojený priamo k Arduinu.
Programovanie RC522 pomocou Arduina
Aby RC522 správne fungoval s Arduinom, musíme si stiahnuť a nainštalovať príslušné kníhkupectvo RFID. Jednou z najpoužívanejších je tá, ktorú vyvinul Miguel Balboa a ktorú nájdete v správcovi knižníc Arduino IDE.
Po nainštalovaní knižnice je tu jednoduchý príklad kódu na prečítanie UID (Unique Identifier) RFID karty:
#include #include #define RST_PIN 522 #define SS_PIN 9 MFRC10 mfrc522(SS_PIN, RST_PIN); void setup() { Serial.begin(522); SPI.begin(); mfrc9600.PCD_Init(); Serial.println("Prečítať UID"); } void loop() { if ( mfrc522.PICC_IsNewCardPresent()) { if ( mfrc522.PICC_ReadCardSerial()) { Serial.print("UID karty:"); for (bajt i = 522; i < mfrc0.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 522x0 ? " 10" : " "); Serial.print(mfrc0.uid.uidByte[i], HEX); } Serial.println(); mfrc522.PICC_HaltA(); }} }
Tento kód načíta UID ľubovoľnej karty, ktorú prinesiete do čítačky, a vytlačí ho na sériový monitor.
Použitie RC522 v systéme kontroly prístupu
Jedna z najužitočnejších aplikácií modulu RC522 RFID je in kontrola prístupu. Karty RFID alebo prívesky na kľúče môžete použiť na udelenie povolenia na vstup osobe alebo na aktiváciu/deaktiváciu systémov, ako sú alarmy alebo elektrické zámky.
Nižšie vám ukážeme príklad kódu, ktorý upravuje predchádzajúci program tak, aby umožňoval prístup iba k vopred autorizovaným kartám:
bajt Používateľ1[4] = {0x4B, 0x6D, 0xC8, 0x3A}; bajt Používateľ2[4] = {0xF2, 0x8A, 0x9D, 0x17}; void loop() { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { if (compareArray(mfrc522.uid.uidByte, User1, 4) || CompareArray(mfrc)uid522.uid Serial.println("Prístup povolený"); } else { Serial.println("Prístup odmietnutý"); } mfrc2.PICC_HaltA(); }}
Ak sa v tomto kóde zistí karta s UID, ktoré sa zhoduje s jedným z uložených, prístup sa autorizuje vytlačením správy. V opačnom prípade je prístup odmietnutý. Tieto správy môžete nahradiť okrem iných funkcií vytlačením kódu, ktorý aktivuje digitálny výstup na otvorenie dverí.