Modul RC522 RFID je jedním z nejuniverzálnějších a nejoblíbenějších zařízení pro elektronické projekty a systémy kontroly přístupu. Spolu s deskou Arduino umožňuje čtení a zápis informací na RFID karty a klíčenky pomocí bezdrátové komunikace. Tento typ technologie je velmi užitečný v automatizačních, bezpečnostních a monitorovacích projektech, jako je automatické otevírání dveří nebo používání personalizovaných identifikačních systémů.
V tomto článku podrobně prozkoumáme, jak modul RC522 funguje, jak jej připojit k mikrokontroléru, jako je Arduino, a několik praktických příkladů, které vám umožní vytěžit z něj maximum. Pokud s projekty RFID začínáte, tento článek vám velmi pomůže pochopit principy a jak provést jednoduchou a efektivní implementaci.
Co je RFID?
RFID (Radio Frequency Identification) je technologie, která umožňuje bezdrátové čtení štítků bez fyzického kontaktu. Tyto štítky jsou k dispozici v různých formátech, jako jsou karty, klíčenky a dokonce i samolepicí štítky . V závislosti na typu RFID se používají v široké škále aplikací, od kontroly přístupu do budov až po správu zásob.
RFID čtečka funguje jako vysílač a přijímač rádiofrekvenčního signálu . Když se RFID štítek nachází v blízkosti čtečky, reaguje odesláním informací uložených v její paměti. Spoluprácí s modulem, jako je RC522, můžete tyto informace využít k provádění různých akcí ve vašem projektu, jako je například povolení přístupu ke dveřím nebo zaznamenání vstupu osob.
Modul RC522

Modul RC522 je díky své jednoduchosti a všestrannosti jednou z nejoblíbenějších RFID čteček. Pracuje na frekvenci 13.56 MHz a umožňuje čtení a zápis informací do štítků kompatibilních s tímto standardem.
RC522 komunikuje s mikrokontrolérem přes protokol SPI , což znamená, že je kompatibilní nejen s Arduinem, ale i s dalšími systémy, jako jsou PIC a Raspberry Pi. Navíc má čtecí dosah přibližně 5 až 7 cm, což je více než dostatečné pro většinu projektů kontroly přístupu.
Připojení RFID modulu RC522 k Arduinu
Jednou z velkých výhod RC522 je, jak snadné je připojit jej k Arduinu. První věc, kterou musíme udělat, je ujistit se, že všechny piny na modulu jsou správně připojeny k odpovídajícím pinům na Arduinu. Zde je tabulka s připojeními:
| Modul RC522 | Arduino Uno/Starší bratr | arduino mega |
|---|---|---|
| SDA (SS) | 10 | 53 |
| SCK | 13 | 52 |
| LELKOVAT | 11 | 51 |
| MISO | 12 | 50 |
| IRQ | Není připojeno | Není připojeno |
| GND | GND | GND |
| RST | 9 | 9 |
| 3.3V | 3.3V | 3.3V |
Nezapomeňte, že modul RC522 pracuje s napětím 3.3 V , proto doporučujeme použít převodník úrovně napětí, pokud plánujete systém používat delší dobu, i když v rychlých testech může fungovat správně i při přímém připojení k Arduinu.
Programování RC522 pomocí Arduina
Aby RC522 správně fungoval s Arduinem, musíme si stáhnout a nainstalovat odpovídající RFID knihovnu . Jednou z nejpoužívanějších je knihovna vyvinutá Miguelem Balboou, kterou najdete ve správci knihoven Arduino IDE.
Jakmile je knihovna nainstalována, zde je jednoduchý příklad kódu pro čtení UID (Unique Identifier) karty RFID:
#zahrnout #zahrnout #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("Číst UID"); } void loop() { if ( mfrc522.PICC_IsNewCardPresent()) { if ( mfrc522.PICC_ReadCardSerial()) { Serial.print("UID karty:"); for (byte 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 přečte UID jakékoli karty, kterou přivedete ke čtečce, a vytiskne jej na sériový monitor.
Použití RC522 v systému kontroly přístupu
Jedním z nejužitečnějších aplikací RFID modulu RC522 je kontrola přístupu . RFID karty nebo klíčenky můžete použít k udělení oprávnění ke vstupu osobě nebo k aktivaci/deaktivaci systémů, jako jsou alarmy nebo elektrické zámky.
Níže vám ukážeme příklad kódu upravujícího předchozí program tak, aby umožňoval přístup pouze k předem autorizovaným kartám:
byte Uživatel1[4] = {0x4B, 0x6D, 0xC8, 0x3A}; byte Uživatel2[4] = {0xF2, 0x8A, 0x9D, 0x17}; void loop() { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { if (compareArray(mfrc522.uid.uidByte, User1, 4) || CompareArray(mfrc)uid522Byte2, User,4.uid Serial.println("Přístup povolen"); } else { Serial.println("Přístup odepřen"); } mfrc522.PICC_HaltA(); }}
Pokud je v tomto kódu detekována karta s UID, které odpovídá jednomu z uložených, je přístup autorizován vytištěním zprávy. V opačném případě je přístup odepřen. Tyto zprávy můžete nahradit mimo jiné vytištěním kódu, který aktivuje digitální výstup pro otevření dveří.