RC522 RFID-modulet er et af de mest alsidige og populære enheder til elektronikprojekter og adgangskontrolsystemer. Sammen med et Arduino-kort gør det muligt at læse og skrive information på RFID-kort og nøglebrikker ved hjælp af trådløs kommunikation. Denne type teknologi er meget nyttig i automatiserings-, sikkerheds- og overvågningsprojekter, såsom at åbne døre automatisk eller bruge personlige identifikationssystemer.
I denne artikel vil vi udforske i detaljer, hvordan RC522-modulet fungerer, hvordan man forbinder det til en mikrocontroller som Arduino, og nogle praktiske eksempler, der giver dig mulighed for at få mest muligt ud af det. Hvis du starter ud med RFID-projekter, vil denne artikel være til stor hjælp til at forstå principperne og hvordan du udfører en enkel og effektiv implementering.
Hvad er RFID?
RFID (Radio Frequency Identification) er en teknologi, der tillader læse etiketter eller tags trådløstuden behov for fysisk kontakt. Disse etiketter er tilgængelige i flere formater som f.eks kort, nøgleringe og endda klistermærker. Afhængigt af typen af RFID bruges de i en lang række applikationer: fra bygningsadgangskontrol til lagerstyring.
RFID-læseren fungerer som en afsender-modtager af radiofrekvenssignaler. Når et RFID-tag er i nærheden af læseren, reagerer det ved at sende de oplysninger, der er gemt i dens hukommelse. Når du arbejder med et modul som RC522, kan du bruge disse oplysninger til at udføre forskellige handlinger i dit projekt, såsom at give adgang til en dør eller registrere personers adgang.
RC522-modulet
RC522 modul Det er en af de mest populære RFID-læsere på grund af dens enkelhed og alsidighed. Det virker i 13.56 MHz frekvens og tillader læse og skrive information i tags, der er kompatible med denne standard.
RC522 kommunikerer med mikrocontrolleren gennem protokollen SPI, hvilket betyder, at den ikke kun er kompatibel med Arduino, men også med andre systemer såsom PIC og Raspberry Pi. Desuden har den en læseområde omkring 5 til 7 cm, hvilket er mere end nok til de fleste adgangskontrolprojekter.
Tilslutning af RC522 RFID-modulet med Arduino
En af de store fordele ved RC522 er, hvor nemt det er at forbinde den til en Arduino. Det første, vi skal gøre, er at sikre, at alle stifterne på modulet er korrekt forbundet til de tilsvarende stifter på Arduino. Her er en tabel med forbindelserne:
RC522 modul | Arduino Uno/Ældre bror | Mega Arduino |
---|---|---|
SDA (SS) | 10 | 53 |
SCK | 13 | 52 |
Mosi | 11 | 51 |
MISO | 12 | 50 |
IRQ | Ikke tilsluttet | Ikke tilsluttet |
GND | GND | GND |
RST | 9 | 9 |
3.3V | 3.3V | 3.3V |
Husk at RC522-modulet arbejder med en spænding på 3.3V, så vi anbefaler at bruge en spændingsniveauomformer, hvis du planlægger at gøre længere brug af systemet, selvom det i hurtige test kan fungere korrekt forbundet direkte til Arduino.
Programmering af RC522 med Arduino
For at RC522 skal fungere korrekt med Arduino, skal vi downloade og installere den tilsvarende RFID boghandel. En af de mest brugte er den udviklet af Miguel Balboa, som du kan finde i Arduino IDE-biblioteksadministratoren.
Når biblioteket er installeret, er her et simpelt kodeeksempel til at læse UID (Unique Identifier) på et RFID-kort:
#omfatte #omfatte #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("Læs UID"); } void loop() { if ( mfrc522.PICC_IsNewCardPresent()) { if ( mfrc522.PICC_ReadCardSerial()) { Serial.print("Kort-UID:"); 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(); }} }
Denne kode læser UID'et for ethvert kort, du bringer frem til læseren, og udskriver det på den serielle monitor.
Brug af RC522 i et adgangskontrolsystem
En af de mest nyttige anvendelser af RC522 RFID-modulet er i kontrol de acceso. Du kan bruge RFID-kort eller nøglebrikker til at give adgangstilladelse til en person eller til at aktivere/deaktivere systemer såsom alarmer eller elektriske låse.
Nedenfor viser vi dig et kodeeksempel, der ændrer det tidligere program til kun at tillade adgang til forhåndsautoriserede kort:
byte Bruger1[4] = {0x4B, 0x6D, 0xC8, 0x3A}; byte Bruger2[4] = {0xF2, 0x8A, 0x9D, 0x17}; void loop() { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { if (compareArray(mfrc522.uid.uidByte, User1, 4) || compareArray(mfrc522.yte,uid) {2id.uid.uid. Serial.println("Adgang tilladt"); } else { Serial.println("Adgang nægtes"); } mfrc4.PICC_HaltA(); }}
Hvis der i denne kode registreres et kort med et UID, der matcher en af dem, der er gemt, godkendes adgangen ved at udskrive en besked. Ellers nægtes adgang. Du kan erstatte disse meddelelser ved at udskrive en kode, der aktiverer en digital udgang til at åbne en dør, blandt andre funktioner.