Lectura de etiquetas RFID RC522 con Raspberry Pi

Publicado por Loli Diéguez en

RFID es una tecnología mediante la cual los datos se transmiten sin existir contacto entre dispositivos, sino que se realiza por medio de tarjetas que tienen un chip en su interior que se activa al acercar la tarjeta a la fuente lectora

Las tarjetas de acceso se pueden leer con un módulo RFID Raspberry Pi (RC522) y, por ejemplo, se pueden emplear para dar acceso a puertas o controlar cerraduras.

Lector de etiquetas RFID RC522

 

En este tutorial, verás cómo leer tarjetas RFID con el lector RC522 y Raspberry Pi. El código presentado también se puede utilizar para otros proyectos como apertura de puertas, control de acceso,...

NFC es una tecnología similar, y tanto RFID como NFC transmiten en una frecuencia de 13,56 MHz, por lo que los módulos son compatibles entre sí.

Material necesario

Para realizar este tutorial, necesitarás:

  • Raspberry Pi 4  (también funciona con todas las versiones anteriores)
  • Módulo RFID Mifare RC522  (incluye KeyCard)
  • Utensilios para soldar 

 

Si deseas utilizar el lector de tarjetas como control de entrada, etc., tiene sentido entregar una tarjeta a cada usuario y las puedes comprar con chip en cantidades cada vez mayores por poco dinero y luego configurarlas individualmente.

Configurar tarjetas

Si tienes la tira de pines del módulo RC522 estan sin soldar, lo primero que tienes que hacer es soldarlos antes de poder conectar los pines.

El cableado es el siguiente:

 

Módulo RF522 Raspberry Pi
SDA Pin 24 / GPIO8 (CE0)
SCK Pin 23 / GPIO11 (SCKL)
MOSI Pin 19 / GPIO10 (MOSI)
MISO Pin 21 / GPIO9 (MISO)
IRQ -
GND Pin6 (GND)
RST Pin22 / GPIO25
3,3 V Pin 1 (3V3)

 

El resultado final debería ser algo así:

Esquema de conexion

 

Activación de la instalación de software y SPI

Para utilizar el módulo RFID RC522, necesitas el bus SPI, para lo cual tenemos que activar esta interfaz en primer lugar, para ellos edita el archivo config o ve al menú correspondiente, si lo haces por el archivo config, sigue estos pasos:

sudo nano /boot/config.txt

Agrega esas líneas al  final del archivo:

device_tree_param = spi = on
dtoverlay = spi-bcm2708

Guarda y sal con CTRL + O, CTRL + X.

Luego activamos SPI:

sudo raspi-config

Activa en "Opciones avanzadas"> "SPI" y confirma el reinicio (alternativamente utiliza sudo reboot now).

Luego puedes usar  dmesg | grep spi para verificar si el módulo se ha cargado. 

La salida del comando debe darte algo asi:

pi@raspberrypi:~ $ dmesg | grep spi
[   10.784368] bcm2708_spi 20204000.spi: master is unqueued, this is deprecated
[   10.813403] bcm2708_spi 20204000.spi: SPI Controller at 0x20204000 (irq 80)

Ahora debes cargar los paquetes adecuados para poder usar el bus SPI y cargaremos bibliotecas relacionadas, para ellos escribe esto

sudo apt-get install git python-dev - yes

Primero instalamos el módulo Python SPI

clone de git https://github.com/lthiery/SPI-Py.git
cd SPI-Py
sudo python setup.py install
CD ..

y luego la biblioteca Raspberry Pi RFID RC522:

clone de git https://github.com/mxgxw/MFRC522-python.git && cd MFRC522-python

Prueba del lector / grabador RFID Raspberry Pi

Además del módulo RC522, normalmente se suministra una tarjeta blanca y un llavero compatible con NFC. Estas partes se pueden utilizar como autenticación porque se pueden escribir y leer. También se podría usar un teléfono inteligente con NFC (Android / iOS).

Para ejecutar la primera prueba de la tarjeta / llavero, ejecutamos el script:

sudo python Read.py

Tan pronto como la tarjeta con chip se aproxime al lector y se reconozca, verás una salida como esta:

pi @ raspberrypi: ~ / MFRC522-python $ sudo python Read.py
Bienvenido al ejemplo de lectura de datos MFRC522
Presione Ctrl-C para detener.
Tarjeta detectada
Tarjeta de lectura UID: 69,245,238,117
Tamaño: 8
Sector 8 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Para cambiar los datos almacenados (números) en el chip de la tarjeta, editamos el archivo “Write.py” ( sudo nano Write.py). Para hacer esto, edita el código de la línea 55 de la siguiente manera (puedes elegir libremente los 16 números data entre 0 y 255.

 

Uso del lector NFC / RFID en proyectos de Raspberry Pi (cerradura de puerta, etc.)

Los dos archivos de Python "Read.py" y "Write.py" contienen un código de muestra para leer y escribir un chip que se puede utilizar en otros proyectos. El archivo más importante es “MFRC522.py”, que se puede copiar en otro proyecto.

El siguiente extracto se puede utilizar en otros proyectos, por ejemplo, como verificación de una cerradura con código o una cerradura de puerta. Utiliza un nivel de autenticación (también puedes establecer varios) con un cierto código inicial. Los últimos dígitos proporcionan información sobre el titular de la tarjeta (si esos datos están almacenados en algún lugar). Solo podría identificar al usuario por el UID, pero supongo que varias tarjetas pueden pertenecer a un usuario. Si no te gusta esta solución, puedes, por supuesto, cambiarla.

 

 

El código de muestra se ve así (los cambios anteriores son importantes, de lo contrario no se puede realizar ninguna comparación):

 

Como puedes ver, el código es muy simple y, como dije, solo debería servir como un inicio para empezar tus propias aplicaciones más sofisticadas. El código que he puesto lo deberás ajustar si lo quieres emplear en otro tipo de proyectos.

 

 


Compartir esta publicación



← Publicación más antigua Publicación más reciente →