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ů nebo štítků, bez nutnosti fyzického kontaktu. Tyto štítky jsou k dispozici ve více formátech jako např karty, klíčenky a dokonce i samolepky. V závislosti na typu RFID se používají v široké škále aplikací: od řízení přístupu k budovám až po řízení zásob.
Čtečka RFID funguje jako a odesílatel-přijímač radiofrekvenčních signálů. Když je RFID štítek blízko čtečky, reaguje odesláním informací uložených v její paměti. Při práci s modulem, jako je RC522, můžete tyto informace použít k provádění různých akcí ve vašem projektu, jako je povolení přístupu ke dveřím nebo registrace vstupu osob.
Modul RC522
Modul RC522 Je to jedna z nejoblíbenějších RFID čteček díky své jednoduchosti a všestrannosti. Funguje v Frekvence 13.56 MHz a umožňuje číst a zapisovat informace ve značkách kompatibilních s tímto standardem.
RC522 komunikuje s mikrokontrolérem prostřednictvím protokolu SPI, což znamená, že je kompatibilní nejen s Arduino, ale také s dalšími systémy, jako je PIC a Raspberry Pi. Kromě toho má a rozsah čtení asi 5 až 7 cm, což je více než dostatečné pro většinu projektů řízení 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 |
Pamatujte, že modul RC522 pracuje s napětím 3.3V, takže pokud plánujete delší používání systému, doporučujeme použít převodník úrovně napětí, i když v rychlých testech může fungovat správně připojený přímo 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 knihkupectví. Jednou z nejpoužívanějších je ta, kterou vyvinul Miguel Balboa a kterou najdete v rámci správce 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
Jedna z nejužitečnějších aplikací RFID modulu RC522 je in řízení přístupu. Karty RFID nebo přívěsky na klíče můžete použít k udělení povolení 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ří.