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 el PIN primero 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 Nano
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.
1: esquema
La imagen esquemática RC522 con Arduino Nano se muestra a continuación:
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: 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 Nano. 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 cargar código a Arduino Nano. Toque y sostenga la tarjeta RFID/etiqueta 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 Nano
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.
1: código
Abra IDE, seleccione Nano Board y cargue el código dado:
/*
******************
Linuxhint.comunicarse
******************
Linuxhint.comunicarse
******************
*/
#incluir
#incluir
#define ss_pin 10 /*esclavo seleccione pin* /
#define rst_pin 9 /*restablecer pin para rc522* /
#define led_g 8 /*pin 8 para LED* /
MFRC522 MFRC522 (SS_PIN, RST_PIN); /*Crear MFRC522 inicializado*/
Configuración vacía ()
De serie.comenzar (9600); /*Comunicación en serie Comienza*/
SPI.comenzar(); /*Comunicación SPI inicializada*/
MFRC522.Pcd_init (); /*Sensor RFID inicializado*/
PinMode (LED_G, salida); /*Pin de LED establecido como salida*/
De serie.println ("Pon su tarjeta al lector ...");
De serie.println ();
bucle vacío ()
/*Busque la tarjeta RFID*/
si ( ! MFRC522.PICC_ISNEWCARDPRESENT ())
devolver;
/*Seleccionar tarjeta*/
si ( ! MFRC522.Picc_readCardserial ())
devolver;
/*Mostrar uid para tarjeta/etiqueta en el monitor serial*/
De serie.imprimir ("Etiqueta UID:");
String content = "";
carta de byte;
para (byte i = 0; i < mfrc522.uid.size; i++)
De serie.Imprimir (MFRC522.uid.uidbyte [i] < 0x10 ? " 0" : " ");
De serie.Imprimir (MFRC522.uid.uidbyte [i], hex);
contenido.concat (cadena (MFRC522.uid.uidbyte [i] < 0x10 ? " 0" : " "));
contenido.concat (cadena (MFRC522.uid.uidbyte [i], hex));
De serie.println ();
De serie.imprimir ("Mensaje:");
contenido.tOUPPERCASE ();
if (contenido.subcadena (1) == "02 dc b4 c3")/*uid para la tarjeta/etiqueta queremos que el acceso reemplace con su tarjeta UID*/
De serie.println ("Acceso autorizado"); /*Imprimir mensaje si UID coincide con la base de datos*/
De serie.println ();
retraso (500);
DigitalWrite (LED_G, High); /*LED ENCENDER*/
retraso (2500);
DigitalWrite (LED_G, Low);
demás
De serie.println ("Acceso denegado"); /*Si UID no coincide con el mensaje de impresión*/
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.
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 Nano Board e IDE.
Conclusión
Arduino Nano es un tablero de conservación de energía que tiene varios pasadores de GPIO para obtener la entrada de diferentes sensores. Arduino Nano viene con 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 con el sensor RC522 y el código requerido para leer cualquier tarjeta/etiqueta RFID.