Com Usar el Mòdul Lector RFID RC522 amb Arduino per a Control d'Accés

  • El mòdul RC522 permet llegir i escriure targetes RFID a 13.56 MHz.
  • És compatible amb microcontroladors com Arduino mitjançant comunicació SPI.
  • El rang de lectura és de 5 a 7 cm, ideal per a sistemes de control d'accés.
  • Per implementar seguretat, pots integrar sistemes de clau o autenticació a la memòria dels tags.

etiqueta o xip RFID

El mòdul RFID RC522 és un dels dispositius més versàtils i populars per a projectes d'electrònica i sistemes de control d'accés. Juntament amb una placa Arduino, permet llegir i escriure informació a targetes RFID i clauers mitjançant comunicació sense fil. Aquest tipus de tecnologia és molt útil en projectes d'automatització, seguretat i monitorització, com ara obrir portes automàticament o utilitzar sistemes d'identificació personalitzats.

En aquest article, explorarem detalladament com funciona el mòdul RC522, com connectar-lo amb un microcontrolador com Arduino, i alguns exemples pràctics que et permetran treure'n el màxim profit. Si comenceu amb projectes de RFID, aquest article us serà de gran ajuda per entendre els principis i com dur a terme una implementació senzilla i efectiva.

Què és el RFID?

RFID (Identificació per Radiofreqüència) és una tecnologia que permet la lectura d'etiquetes o tags sense fils, sense necessitat de contacte físic. Aquestes etiquetes estan disponibles en múltiples formats, com ara targetes, clauers i fins i tot etiquetes adhesives. Depenent del tipus de RFID, es fan servir en una gran varietat d'aplicacions: des del control d'accés a edificis fins a la gestió d'inventaris.

El lector RFID actua com un emissor-receptor de senyals de radiofreqüència. Quan una etiqueta RFID és a prop del lector, aquesta respon enviant la informació emmagatzemada a la memòria. En treballar amb un mòdul com el RC522, podeu utilitzar aquesta informació per realitzar diferents accions en el vostre projecte, com habilitar l'accés a una porta o registrar l'ingrés de persones.

El Mòdul RC522

lector rfid per a Arduino

El mòdul RC522 és un dels lectors RFID més populars degut a la seva simplicitat i versatilitat. Funciona a la freqüència de 13.56 MHz i permet llegir i escriure informació en tags compatibles amb aquest estàndard.

El RC522 es comunica amb el microcontrolador a través del protocol SCI, el que significa que és compatible no només amb Arduino, sinó també amb altres sistemes com PIC i Raspberry Pi. A més, té un rang de lectura daproximadament 5 a 7 cm, el que és més que suficient per a la majoria dels projectes de control daccés.

Connexió del Mòdul RFID RC522 amb Arduino

Un dels grans avantatges del RC522 és com és de fàcil connectar-lo a un Arduino. El primer que hem de fer és assegurar-nos que tots els pins del mòdul estiguin correctament connectats als pins corresponents de l'Arduino. Aquí tens una taula amb les connexions:

Mòdul RC522 Arduino Uno/Nano Arduino Mega
SDA (SS) 10 53
SCK 13 52
Extensió MOSI 11 51
MISO 12 50
IRQ no connectat no connectat
GND GND GND
RST 9 9
3.3V 3.3V 3.3V

Recordeu que el mòdul RC522 treballa amb un voltatge de 3.3V, per la qual cosa us recomanem utilitzar un convertidor de nivells de voltatge si planeges fer un ús estès del sistema, encara que en proves ràpides pot funcionar correctament connectat directament a l'Arduino.

Programació del RC522 amb Arduino

Perquè el RC522 funcioni correctament amb Arduino, necessitem descarregar i instal·lar la corresponent llibreria RFID. Una de les més utilitzades és la desenvolupada per Miguel Balboa, que podeu trobar dins del gestor de llibreries de l'IDE d'Arduino.

Un cop instal·lada la llibreria, aquí teniu un exemple simple de codi per llegir l'UID (Identificador únic) d'una targeta RFID:

#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("Lectura de l'UID"); } void loop() { if ( mfrc522.PICC_IsNewCardPresent()) { if ( mfrc522.PICC_ReadCardSerial()) { Serial.print("Card 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(); }} }

Aquest codi llegeix l'UID de qualsevol targeta que acostis al lector i la imprimeix al monitor serial.

Ús del RC522 en un sistema de control d'accés

Una de les aplicacions més útils del mòdul RFID RC522 és a control d'accés. Podeu utilitzar targetes o clauers RFID per atorgar permisos d'entrada a una persona o per activar/desactivar sistemes com ara alarmes o panys elèctrics.

A continuació, us mostrem un exemple de codi modificant el programa anterior per permetre l'accés només a targetes preautoritzades:

byte Usuari1[4] = {0x4B, 0x6D, 0xC8, 0x3A}; byte Usuari2[4] = {0xF2, 0x8A, 0x9D, 0x17}; void loop() { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { if (compareArray(mfrc522.uid.uidByte, Usuario1, 4) || compareArray(mfrc522) 2)) { Serial.println("Accés permès"); } else { Serial.println("Accés denegat"); } mfrc4.PICC_HaltA(); }}

En aquest codi, si es detecta una targeta amb un UID que coincideixi amb algun dels emmagatzemats, s'autoritza l'accés imprimint un missatge. En cas contrari, s'hi denega l'accés. Podeu reemplaçar aquests missatges imprimint per codi que activeu una sortida digital per obrir una porta, entre altres funcionalitats.