Contenido cubierto en este artículo:
1: Introducción al sensor RC522
El MFRC522 es un IC sin contacto basado en RFID que puede leer y escribir datos a una frecuencia de 13.56 MHz. Está diseñado para una fácil integración en una amplia gama de aplicaciones, incluidos sistemas de control de acceso, terminales de pago y otros sistemas que requieren una comunicación inalámbrica segura.
El sensor presenta un diseño de bajo consumo de energía y cumple con el estándar ISO/IEC 14443 A/MIFARE, que le permite comunicarse con una amplia gama de tarjetas y etiquetas sin contacto.
Además, el MFRC522 presenta una antena incorporada, por lo que es una solución conveniente y compacta para agregar capacidades de comunicación sin contacto a un proyecto.
2: Pinout del sensor RC522
El sensor tiene un total de 8 pines que lo interactúan con un microcontrolador u otro dispositivo de control. El pinout del sensor MFRC522 es el siguiente:
El SDA, Sck, Mosi, y MISO Los pines se utilizan para interactuar el sensor MFRC522 con un microcontrolador a través de un protocolo de comunicación de interfaz periférica serial (SPI) de 4 hilos (SPI).
El Irq El PIN se puede usar para generar una interrupción cuando ocurren ciertos eventos, como una tarjeta o lectura de etiqueta exitosa, sin embargo, no se usa comúnmente en muchos proyectos.
El Gnd El pin se conecta al suelo del circuito y al Primero El pin se usa para restablecer el sensor.
Finalmente, el 3.3V El pin se utiliza para suministrar energía al sensor.
Es importante tener en cuenta que estos nombres de pin pueden variar ligeramente dependiendo del módulo específico, por lo que siempre es mejor consultar la hoja de datos del fabricante para obtener la información correcta de pinout.
3: Sensor RFID RC522 de interfaz con Arduino Uno
La interfaz del sensor MFRC522 con un microcontrolador Arduino es un proceso simple que se puede lograr utilizando la biblioteca MFRC522, que está disponible gratuitamente para descargar. Esta biblioteca proporciona un conjunto de funciones fáciles de usar para acceder a la funcionalidad del sensor, incluidas las funciones para leer y escribir datos en tarjetas y etiquetas sin contacto.
Una vez que se instala la biblioteca, se puede encontrar un boceto de ejemplo en el menú Ejemplos que demuestra cómo inicializar el sensor y comunicarse con una tarjeta o etiqueta. En el boceto, es importante establecer las conexiones de PIN correctas entre el sensor Arduino y el MFRC522, como los pines SPI, el PIN de reinicio y otros, de acuerdo con el modelo de la placa Arduino que se utiliza.
Con el cableado correcto y la biblioteca instalada correctamente, el Arduino podrá comunicarse con el sensor MFRC522 y realizar las acciones deseadas como leer y escribir en tarjetas y etiquetas.
3.1: esquema
La imagen esquemática RC522 con Arduino Uno se muestra a continuación:
3.2: Instalación de las bibliotecas requeridas
Se necesita biblioteca MFRC522 para leer la tarjeta RFID y las etiquetas Uid. Abra IDE, vaya al Administrador de la Biblioteca y busque la biblioteca MFRC522. Instale la biblioteca en Arduino IDE:
Después de instalar la biblioteca MFRC522, leeremos el UID para etiquetas y tarjetas RFID.
3.3: Obtener el UID para la tarjeta/etiqueta RFID
Abre el Dumpinfo Ejemplo para el sensor MFRC522. Ir a: Archivo> Ejemplos> MFRC522> DumpInfo:
El siguiente código se abrirá en una nueva ventana IDE. Sube el código a Arduino Uno. Recuerde establecer el Pin de reinicio y selección de esclavos de acuerdo con su tablero Arduino. Cualquiera de los pines digitales de Arduino se puede configurar como Primero y Ss:
Después de subir el código a Arduino Uno. Toque y sostenga la tarjeta/etiqueta RFID con el sensor MFRC522:
El sensor leerá los datos guardados dentro de la etiqueta RFID y los mostrará en el monitor en serie. Aquí podemos ver el Uid para etiqueta rfid que indica 02 DC B4 C3.
Total de 16 (0-15) sectores en los que RFID La memoria de la tarjeta/etiqueta 1K está organizada. Se incluyen cuatro (0-3) bloques en cada uno de estos 16 sectores. Cada bloque tiene capacidad para almacenar 16 (0-15) bytes de datos.
Estos datos representan que:
16 sectores x 4 bloques x 16 bytes de datos = 1024 bytes = 1k memoria
El monitor de serie Arduino IDE muestra la distribución de EE. UU. De la memoria 1K de la etiqueta RFID. Esta distribución también contiene la información de sectores, bloques y datos en filas y columnas de los datos de salida:
También puede leer la identificación única (Uid) para la tarjeta al final de la salida:
4: Leer una etiqueta RFID usando Arduino Uno
Ahora hemos leído la identificación única (UID) para la etiqueta RFID. Escribiremos un código Arduino que guarde la información de esta tarjeta y otorga acceso al usuario si la etiqueta RFID con el mismo UID se aprovecha con el sensor MFRC522.
4.1: código
Abra IDE, seleccione UNO Board y cargue el código dado:
/*Código iniciado al incluir la biblioteca SPI y MFRC522. A continuación, definimos el pin de selección de reinicio y esclavo para el sensor. Un LED en el pin D8 se inicializa como salida.
La tarjeta RFID que queremos leer se inicializa definiendo el UID. Este es el mismo uid que tenemos usando el Dumpinfo código de ejemplo.
Un SI La condición verificará el UID para la tarjeta que se aprovecha con el sensor. Si el UID coincide con uno dentro del LED del código se encenderá y se imprimirá el mensaje de acceso autorizado, el otro LED permanecerá apagado y el mensaje de acceso denegado aparecerá si se aprovecha cualquier otra tarjeta.
4.2: salida
En la salida podemos ver que la etiqueta RFID no se aprovecha con el sensor MFRC522, por lo que no está encendido el LED:
Toque o traiga la tarjeta/etiqueta RFID cerca del sensor que aparece la siguiente salida en el monitor en serie que muestra la tarjeta UID:
LED se enciende si se otorga el acceso y UID coincide con el que definimos dentro del código.
Hemos completado la interfaz de la etiqueta RFID con el sensor RC522 usando Arduino Uno Board e IDE.
Conclusión
Arduino es una placa compacta con una serie de pines GPIO para interfaz sensores y hardware. Arduino tiene soporte incorporado para el protocolo UART, SPI e I2C que permite el uso de sensores utilizando estos protocolos de comunicación Arduino. Este artículo cubre la interfaz de Arduino Uno con el sensor RC522 y el código requerido para leer cualquier tarjeta/etiqueta RFID.