RC522 RFID modulis yra vienas universaliausių ir populiariausių įrenginių elektronikos projektams ir prieigos kontrolės sistemoms. Kartu su „Arduino“ plokšte ji leidžia skaityti ir rašyti informaciją RFID kortelėse ir raktų pakabose naudojant belaidį ryšį. Tokio tipo technologijos labai praverčia automatizavimo, apsaugos ir stebėjimo projektuose, pavyzdžiui, atidarant duris automatiškai arba naudojant personalizuotas identifikavimo sistemas.
Šiame straipsnyje mes išsamiai išnagrinėsime, kaip veikia modulis RC522, kaip prijungti jį prie mikrovaldiklio, pavyzdžiui, Arduino, ir keletą praktinių pavyzdžių, kurie leis jums išnaudoti visas jo galimybes. Jei pradedate RFID projektus, šis straipsnis labai padės suprasti principus ir kaip atlikti paprastą bei efektyvų įgyvendinimą.
Kas yra RFID?
RFID (radijo dažnio identifikavimas) yra technologija, leidžianti etikečių ar žymų skaitymas belaidžiu būdu, nereikalaujant fizinio kontakto. Šios etiketės galimos įvairiais formatais, pvz kortelės, raktų pakabukai ir net lipdukai. Priklausomai nuo RFID tipo, jie naudojami labai įvairiose srityse: nuo pastatų prieigos kontrolės iki atsargų valdymo.
RFID skaitytuvas veikia kaip a siuntėjas-gavėjas radijo dažnių signalų. Kai RFID žyma yra šalia skaitytuvo, ji reaguoja siųsdama atmintyje saugomą informaciją. Dirbdami su moduliu, tokiu kaip RC522, galite naudoti šią informaciją norėdami atlikti įvairius veiksmus savo projekte, pvz., įgalinti prieigą prie durų arba registruoti žmonių įėjimą.
RC522 modulis
RC522 modulis Tai vienas populiariausių RFID skaitytuvų dėl savo paprastumo ir universalumo. Jis veikia 13.56 MHz dažnis ir leidžia skaityti ir rašyti informaciją su šiuo standartu suderinamose žymose.
RC522 palaiko ryšį su mikrovaldikliu per protokolą SPI, o tai reiškia, kad jis suderinamas ne tik su Arduino, bet ir su kitomis sistemomis, tokiomis kaip PIC ir Raspberry Pi. Be to, jis turi a skaitymo diapazonas apie 5–7 cm, o tai yra daugiau nei pakankamai daugeliui prieigos kontrolės projektų.
RC522 RFID modulio prijungimas prie Arduino
Vienas iš didžiausių RC522 privalumų yra tai, kaip lengva jį prijungti prie Arduino. Pirmas dalykas, kurį turime padaryti, yra įsitikinti, kad visi modulio kaiščiai yra tinkamai prijungti prie atitinkamų Arduino kaiščių. Čia yra lentelė su jungtimis:
RC522 modulis | Arduino Uno/Vyresnysis brolis | „Arduino Mega“ |
---|---|---|
SDA (SS) | 10 | 53 |
SCK | 13 | 52 |
DAWDLE | 11 | 51 |
Sojų pasta | 12 | 50 |
IRQ | Neprisijungęs | Neprisijungęs |
GND | GND | GND |
RST | 9 | 9 |
3.3V | 3.3V | 3.3V |
Atminkite, kad RC522 modulis veikia su 3.3V įtampa, todėl rekomenduojame naudoti įtampos lygio keitiklį, jei planuojate ilgą laiką naudotis sistema, nors atliekant greitus testus, jis gali veikti tinkamai prijungtas tiesiai prie Arduino.
RC522 programavimas su Arduino
Kad RC522 tinkamai veiktų su Arduino, turime atsisiųsti ir įdiegti atitinkamą RFID knygynas. Vienas iš dažniausiai naudojamų yra Miguelio Balboa sukurtas, kurį galite rasti Arduino IDE bibliotekos tvarkyklėje.
Įdiegę biblioteką, čia yra paprastas kodo pavyzdys, skirtas nuskaityti RFID kortelės UID (unikalus identifikatorius):
#įtraukti #įtraukti #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("Skaityti UID"); } void loop() { if ( mfrc522.PICC_IsNewCardPresent()) { if ( mfrc522.PICC_ReadCardSerial()) { Serial.print("Kortelės UID:"); for (baitas 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(); }} }
Šis kodas nuskaito bet kurios kortelės, kurią pateikiate skaitytuvui, UID ir išspausdina jį serijiniame monitoriuje.
RC522 naudojimas prieigos kontrolės sistemoje
Viena iš naudingiausių RC522 RFID modulio programų yra prieigos kontrolė. Galite naudoti RFID korteles arba raktų pakabukus, kad suteiktumėte asmeniui leidimą įeiti arba suaktyvintumėte / išjungtumėte sistemas, tokias kaip signalizacija ar elektrinės spynos.
Žemiau pateikiame kodo pavyzdį, modifikuojantį ankstesnę programą, kad būtų galima pasiekti tik iš anksto patvirtintas korteles:
baitas User1[4] = {0x4B, 0x6D, 0xC8, 0x3A}; baitas User2[4] = {0xF2, 0x8A, 0x9D, 0x17}; void loop() { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { if (palygintiArray(mfrc522.uid.uidByte, User1, 4) || palyginti Array(mfrc522.uid.))u2, User Serial.println("Prieiga leidžiama"); } else { Serial.println("Prieiga uždrausta"); } mfrc4.PICC_HaltA(); }}
Šiame kode, jei aptinkama kortelė, kurios UID atitinka vieną iš saugomų, prieiga suteikiama išspausdinus pranešimą. Priešingu atveju prieiga uždrausta. Šiuos pranešimus galite pakeisti atspausdindami kodą, kuris suaktyvina skaitmeninę išvestį, kad atidarytų duris, be kitų funkcijų.