Interfacing RCTOP 102 Sensor RFID con Esptop 10 usando Arduino IDE

Interfacing RCTOP 102 Sensor RFID con Esptop 10 usando Arduino IDE
ESP32 es una placa basada en microcontrolador compacta que conserva una potencia que contiene una serie de pines GPIO para sensores de interacción. En este tutorial, ESP32 estará interactuado con un sensor RFID utilizando el código Arduino. RC522 es un sensor inteligente basado en SPI que puede leer tarjetas RFID, etiquetas y bandas inteligentes.

Contenido cubierto en este artículo:

  • 1: Introducción al sensor RC522
  • 2: Pinout del sensor RC522
  • 3: Sensor RFID RC522 de interfaz con ESP32
  • 3.1: esquema
  • 3.2: Instalación de las bibliotecas requeridas
  • 3.3: Obtener el UID para la tarjeta/etiqueta RFID
  • 4: Leer una etiqueta RFID usando ESP32
  • 4.1: código
  • 4.2: salida
  • Conclusión

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 ESP32

La interfaz del sensor MFRC522 con el microcontrolador ESP32 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 PIN correctas entre el sensor ESP32 y el MFRC522, como los pines SPI, el PIN de reinicio y otros, de acuerdo con el modelo de la placa ESP32 que se utiliza.

Con el cableado correcto y la biblioteca instalada correctamente, el ESP32 podrá comunicarse con el sensor MFRC522 y realizar las acciones deseadas como leer y escribir en tarjetas y etiquetas.

Para más detalles sobre Protocolo SPI ESP32 y trabajando leer el artículo esp32 spi pines.

3.1: esquema

La imagen esquemática RC522 con ESP32 se muestra a continuación:

3.2: Instalación de las bibliotecas requeridas

MFRC522 Se necesita biblioteca 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 ESP32. Recuerde establecer el Pin de reinicio y selección de esclavos de acuerdo con su tablero. Cualquiera de los pines digitales ESP32 se puede configurar como Primero y Ss:

Después de cargar código a ESP32. 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 ESP32

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

Abrir IDE Seleccione la placa ESP32 y cargar código dado.

/*
******************
Linuxhint.comunicarse
******************
Linuxhint.comunicarse
******************
*/
#incluir
#incluir
#define ss_pin 21 /*esclavo seleccione pin* /
#define rst_pin 22 /*restablecer pin para rc522* /
#define led_g 12 /*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 D12 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 el LED está apagado.:

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 la placa ESP32 e IDE.

Conclusión

ESP32 es un tablero de IoT que presenta todas las interfaces de comunicación necesarias para intercambiar datos entre diferentes dispositivos. ESP32 tiene varios pines GPIO para leer datos de sensores. El uso del protocolo SPI ESP32 puede leer los datos del sensor RFID y se pueden diseñar múltiples proyectos. Este artículo cubre la interacción ESP32 con el sensor RC522 y el código requerido para leer cualquier tarjeta/etiqueta RFID.