Lee tarjetas RFID en tu Raspberry Pi de forma muy sencilla

En este artículo te mostramos cómo trabajar con el módulo RFID en Raspberry Pi. RFID es una tecnología de tarjetas inalámbricas de uso muy común, es posible que tengas alguna ya en casa por el trabajo, el gimnasio, etc. Es un proyecto sencillo que puedes combinar con otros para realizar cosas muy interesantes.

Listado de componentes

Necesitarás los siguientes componentes básicos para realizar este proyecto.

  • Raspberry Pi con el sistema operativo Raspbian: hemos utilizado la versión 3, pero las librerías no son específicas de este modelo. También funcionará en otras versiones, aunque es posible que necesites instalar más librerías para trabajar con los módulos RFID.
  • Módulo RFID RC522, que utiliza la interfaz SPI.
  • Placa de prototipado rápido.
  • Cables de prototipado. Necesitaremos cables macho-hembra para realizar las conexiones. También puedes realizar las conexiones directamente sin usar la placa de prototipado, directamente de la Rpi al módulo.

 

Cableado del módulo RFID RC522

La siguiente tabla muestra una lista de las conexiones necesarias. Tenemos una imagen que te enseñará dónde están los pines de tu raspberry pi. En general, los módulos RC522 vienen serigrafiados con la descripción de los distintos pines.

RC522 label RC522 Pin Rpi pin GPIO label
SDA 1 24 GPIO 8
SCK 2 23 GPIO 11
MOSI 3 19 GPIO 10
MISO 4 21 GPIO 9
GND 6 25 GND
RST 7 22 GPIO 25
3.3V 8 1 3.3V

Realiza el cableado con tu Raspberry Pi apagada. ¿Tienes el cableado listo? ¡Revísalo! Un cableado erróneo podría dañar el módulo o tu Raspberry Pi. Revísalo varias veces antes de conectar la corriente de nuevo.

Realiza el cableado con tu Raspberry Pi apagada

Configuración de la Raspberry Pi

Necesitarás Habilitar la interfaz SPI que emplea el módulo. Para ello, puedes hacerlo desde la terminal o desde el menú gráfico, como te resulte más cómodo.

Habilitar SPI desde la terminal

Antes de empezar, realizaremos una actualización para tener todo a punto:

Ahora ya podemos realizar la configuración. Llamamos a la utilidad de configuración y navegamos por los menús para activar el módulo.

 

 

Habilitar SPI desde raspbian

Si estamos utilizando la interfaz gráfica, bien sea directamente conectados a un monitor o a través de VNC, podemos navegar por los menús para activar la configuración:

Instalación de librerías

Para utilizar el módulo RFID RC522 necesitaremos instalar unas cuantas librerías que trabajan con SPI. Crearemos una carpeta para nuestro proyecto, utilizaremos git para descargar el código y python para instalar las librerías.

Las librerías que utilizaremos son:

https://github.com/lthiery/SPI-Py.git – Para poder utilizar hardware SPI como una extensión C para Python

https://github.com/mxgxw/MFRC522-python.git – Pequeños ejemplos para poder interactuar con el ódulo RFID-RC522

Abre una terminal y sigue los pasos para realizar la instalación:

Ejecución del ejemplo

Sitúate en el directorio donde hemos descargado MFRC52-python y ejecuta el siguiente comando:

La última línea ejecuta un programa para leer las tarjetas. Si tienes todo conectado, acerca una tarjeta RFID al lector y podrás ver su identificador en cuanto la acerques. Puedes ver una imagen de ejemplo a continuación.

Sugerencias de proyectos

La tecnología RFID se puede usar en infinidad de proyectos, tan sólo necesitas un poco de imaginación para combinar el código de lectura que aqui mostramos con cualquier proyecto que se te ocurra. Algunos ejemplos serían:

  • Control de acceso, gestión de entradas/salidas.
  • Una cerradura controlada por tarjetas.
  • Una librería de música que tiene una tarjeta para cada disco.
  • Control de inventario
  • ¿Se te ocurre algo más? ¡Te esperamos en los comentarios?
(Visto 693 vecess, 1 visitas hoy)

6 comentarios sobre “Lee tarjetas RFID en tu Raspberry Pi de forma muy sencilla

  • el 12/10/2017 a las 8:26 pm
    Permalink

    que buena información , tengo una duda , si yo quisiera conectar mas de un lector de tarjetas como podría hacerlo ., hay algún limite por la cantidad de puertos gpio . saludos

    Respuesta
  • el 16/10/2017 a las 4:33 pm
    Permalink

    a mi no me lee la tarjeta por favor ajuda

    Respuesta
    • el 18/11/2017 a las 6:31 pm
      Permalink

      Realmente, con esa información es imposible ayudarte. Te diría que comprobaras las conexiones con un tester, que te aseguraras de que las librerías están bien instaladas, y claro, que des un poco más de información acerca del error. Puedes preguntarme por aquí, pero si te desenvuelves con el inglés te sugeriría poner la pregunta en https://www.stackoverflow.com es el mejor sitio para preguntar cuando algo no va bien, pues está lleno de profesionales que pueden responderte si les proporcionas la información adecuada.

      Respuesta
  • el 26/10/2017 a las 1:21 pm
    Permalink

    Manual de 10, se entiende y se puede llevar a cabo facilmente, yo en concreto e utilizado una Raspberry Zero y funciona a las mil maravillas. Muchas gracias por ello, ya que estaba completamente desanimado viendo que mucha gente lo había intentado y no había podido.

    La única pregunta que tengo, para imprimir estos caracteres en HEX ?? Tengo ya un sistema montado y lo hago todo a traves de HEX, y cambiar ahora todo a esto, me es dificil.

    Respuesta
    • el 18/11/2017 a las 6:35 pm
      Permalink

      Gracias por tu comentario. Si te desenvuelves con python, puedes hacer una función que convierta cada dígito en hexadecimal de forma muy sencilla:

      def twoDigitHex( number ):
      … return ‘%02x’ % number

      El 02 le dice que te lo escriba en dos dígitos y la x indica que lo escriba en hexadecimal con minúsculas. Puedes hacer un bucle que lea uno a uno los caracteres llamando a la función e imprima el resultado. ¡Un saludo!.

      Respuesta

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *