Arduino Nano ESP32 - RFID
Este tutorial proporciona instrucciones sobre cómo usar Arduino Nano ESP32 con un lector RC522 RFID/NFC para leer la información de una etiqueta RFID/NFC.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.
Acerca del módulo RFID-RC522
Disposición de pines

El módulo RFID-RC522 tiene ocho pines, algunos pines se comparten entre tres interfaces de comunicación: SPI, I2C, UART. En un momento, solo se puede usar un modo de comunicación. Los pines son:
- Pin GND: conecte este pin a GND (0V)
- Pin VCC: conecte este pin a VCC (3.3)
- Pin RST: es un pin para reinicio y apagado de energía. Cuando este pin pasa a bajo, se habilita un apagado de energía forzado. En el borde ascendente, el módulo se reinicia.
- Pin IRQ: es un pin de interrupción que puede alertar al Arduino Nano ESP32 cuando una etiqueta RFID entra en su rango de detección.
- Pin MISO/SCL/TX: funciona como:
- Pin MISO si la interfaz SPI está habilitada
- Pin SCL si la interfaz I2C está habilitada
- Pin TX si la interfaz UART está habilitada.
- Pin MOSI: funciona como MOSI si la interfaz SPI está habilitada.
- Pin SCK: funciona como SCK si la interfaz SPI está habilitada.
- Pin SS/SDA/RX: funciona como:
- Pin SS si la interfaz SPI está habilitada
- Pin SDA cuando la interfaz I2C está habilitada
- Pin RX cuando la interfaz UART está habilitada.
- El orden de los pines puede variar según los fabricantes. SIEMPRE utilice las etiquetas impresas en el módulo. La imagen anterior muestra la distribución de pines del fabricante DIYables.
- El módulo RFID-RC522 funciona con 3.3V. No conecte el pin VCC del módulo RFID-RC522 a 5V. El 5V puede quemar el módulo RFID-RC522.
- Este tutorial utiliza la interfaz SPI para la comunicación entre Arduino Nano ESP32 y el módulo RFID-RC522.
※ Nota:
Diagrama de Cableado

This image is created using Fritzing. Click to enlarge image
La tabla de cableado entre el módulo RC522 de RFID/NFC y Arduino Nano ESP32
| RFID/NFC RC522 | Arduino Nano ESP32 |
|---|---|
| SS | → D10 |
| SCK | → D13 |
| MOSI | → D11 |
| MISO | → D12 |
| IRQ | not connected |
| GND | → GND |
| RST | → D5 |
| VCC | → 3.3V |
Código RFID/NFC de Arduino Nano ESP32
/*
* Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com
* Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción.
* Para tutoriales completos y diagramas de cableado, visite:
* https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-rfid
*/
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN D10 // Arduino Nano ESP32 pin connected to RC522's SS pin
#define RST_PIN D5 // Arduino Nano ESP32 pin connected to RC522's RST pin
MFRC522 rfid(SS_PIN, RST_PIN);
void setup() {
Serial.begin(9600);
SPI.begin(); // init SPI bus
rfid.PCD_Init(); // init MFRC522
Serial.println("Tap an RFID/NFC tag on the RFID-RC522 reader");
}
void loop() {
if (rfid.PICC_IsNewCardPresent()) { // new tag is available
if (rfid.PICC_ReadCardSerial()) { // NUID has been readed
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
Serial.print("RFID/NFC Tag Type: ");
Serial.println(rfid.PICC_GetTypeName(piccType));
// print UID in Serial Monitor in the hex format
Serial.print("UID:");
for (int i = 0; i < rfid.uid.size; i++) {
Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(rfid.uid.uidByte[i], HEX);
}
Serial.println();
rfid.PICC_HaltA(); // halt PICC
rfid.PCD_StopCrypto1(); // stop encryption on PCD
}
}
}
Pasos R\u00e1pidos
- Si es la primera vez que usas Arduino Nano ESP32, consulta cómo configurar el entorno para Arduino Nano ESP32 en Arduino IDE.
- Abre el Administrador de Bibliotecas haciendo clic en el icono Administrador de Bibliotecas en la barra de navegación izquierda de Arduino IDE
- Escribe “MFRC522” en el cuadro de búsqueda, luego busca la biblioteca por GithubCommunity
- Instala la biblioteca haciendo clic en el botón Instalar.

- Copia el código anterior y pégalo en el IDE de Arduino.
- Compila y carga el código en la placa Arduino Nano ESP32 haciendo clic en el botón Subir en el IDE de Arduino
- Abre el Monitor Serial en el IDE de Arduino

- Toca varias etiquetas RFID/NFC en el módulo RFID-RC522
- Ver el UID impreso en el Monitor Serial
COM6
Tap an RFID/NFC tag on the RFID-RC522 reader
RFID/NFC tag Type: MIFARE 1KB
UID: 2B B8 59 B1
RFID/NFC tag Type: MIFARE Ultralight or Ultralight C
UID: 15 75 46 7A 2C 5B 7E
Autoscroll
Clear output
9600 baud
Newline
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.