Arduino - Identificación por radiofrecuencia/NFC

En este tutorial, vamos a aprender a usar RFID/NFC con Arduino. El sistema RFID/NFC incluye dos componentes: lector y etiqueta. Hay dos lectores RFID/NFC populares: el RC522 y el PN532. Este tutorial se centra en el lector RC522 RFID/NFC. El lector PN532 RFID/NFC se presentará en un próximo tutorial.

Lector RC522 RFID/NFC (también llamado módulo RFID-RC522) puede:

En las capacidades anteriores, para Arduino, leer el UID es lo más utilizado. Este tutorial se centra en leer el UID de una etiqueta RFID/NFC. El otro se presentará en los próximos tutoriales.

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×RFID/NFC RC522 Kit (reader + tags)
1×RFID Key Fob
1×RFID Card
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
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

Pinout del módulo RFID-RC522

RFID-RC522 tiene 8 pines; algunos de ellos son pines comunes, los demás se comparten entre tres modos de comunicación: SPI, I2C, UART. En un momento dado, solo se puede usar un modo de comunicación. Los pines son:

  • Pin GND: debe conectarse a GND (0V).
  • Pin VCC: debe conectarse a VCC (3.3).
  • Pin RST: es un pin para reinicio y apagado de energía. Cuando este pin pasa a nivel bajo, se habilita el apagado forzado. En el borde ascendente, el módulo se reinicia.
  • Pin IRQ: es un pin de interrupción que puede alertar al microcontrolador cuando una etiqueta RFID se acerca.
  • Pin MISO/SCL/TX: actúa como MISO cuando la interfaz SPI está habilitada, actúa como SCL cuando la interfaz I2C está habilitada y actúa como TX cuando la interfaz UART está habilitada.
  • Pin MOSI: actúa como MOSI cuando la interfaz SPI está habilitada.
  • Pin SCK: actúa como SCK cuando la interfaz SPI está habilitada.
  • Pin SS/SDA/RX: actúa como SS cuando la interfaz SPI está habilitada, actúa como SDA cuando la interfaz I2C está habilitada y actúa como RX cuando la interfaz UART está habilitada.
Diagrama de pines RFID-RC522

※ Nota:

  • El orden de los pines puede variar según los fabricantes. SIEMPRE utilice las etiquetas impresas en el módulo. La imagen anterior muestra el pinout del módulo del fabricante DIYables.
  • No conecte el pin VCC al pin de 5 V. Esto probablemente destruirá su módulo.
  • La biblioteca MFRC522 solo admite el modo SPI. Por lo tanto, este tutorial utiliza únicamente la comunicación SPI.

Cómo funciona RFID/NFC

RFID/NFC incluye dos componentes: lector y etiqueta.

  • El lector consta de un módulo de radiofrecuencia y una antena que genera un campo electromagnético de alta frecuencia.
  • La etiqueta suele ser un dispositivo pasivo, que no necesita una fuente de alimentación. La etiqueta contiene un microchip que almacena y procesa información, y una antena para recibir y transmitir una señal. La etiqueta se utiliza para almacenar la información: UID (Identificador único) y datos.
sistema Arduino RFID NFC

Para leer la información de una etiqueta, la etiqueta debe estar cerca del lector (no requiere una línea de visión directa). Los procesos de lectura:

  • El lector genera un campo electromagnético que hace que los electrones se desplacen a través de la antena de la etiqueta y, en consecuencia, alimenten el chip.
  • El chip dentro de la etiqueta responde enviando la información solicitada de vuelta al lector en forma de otra señal de radio.
  • El lector detecta la señal y la convierte en datos.
  • Arduino lee los datos del lector.

Diagrama de cableado entre el módulo RFID-RC522 y Arduino

El módulo RFID-RC522 está diseñado para operar a un nivel de 3,3 V, mientras que los pines de salida de un Arduino producen un nivel de 5 V. Entonces:

  • Para mayor seguridad, es necesario regular la tensión de 5 V desde los pines de Arduino a 3,3 V antes de conectarlo al módulo RC522.
  • Para simplificar y con fines de prueba, se pueden conectar directamente los pines de Arduino al módulo RC522, pero hacerlo podría hacer que el Arduino deje de funcionar correctamente en algunos casos.

Este tutorial proporciona dos diagramas de cableado diferentes para ambos casos:

  • Diagrama de cableado entre RC522 y Arduino sin regulador de voltaje
Diagrama de cableado de Arduino RFID RC522

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado entre RC522 y Arduino con regulador de voltaje
Arduino RFID RC522 con diagrama de cableado de voltaje regulado

This image is created using Fritzing. Click to enlarge image

Como se muestra en el diagrama de cableado de arriba, un par de resistencias de 1 kΩ y 2 kΩ se utilizan para reducir de 5 V a 3,3 V. No es necesario ajustar el voltaje entre el pin del Arduino y el pin MISO del módulo RC522. Sin embargo, es necesario regular el voltaje entre los pines del Arduino y los pines SS, SCK, MOSI y RST del módulo RC522.

Tabla de cableado del módulo RFID/NFC RC522 y Arduino

RFID/NFC RC522 Arduino
SS → 10
SCK → 13
MOSI → 11
MISO → 12
IRQ(not connected)
GNDGND
RST → 5
VCC → 3.3V

Código Arduino RFID/NFC

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-rfid-nfc */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN 10 #define RST_PIN 5 MFRC522 rfid(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 Serial.println("Tap RFID/NFC Tag on 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 NUID 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

  • Navega hasta el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “MFRC522”, luego encuentra la librería de GithubCommunity
  • Haz clic en el botón Instalar para instalar la librería MFRC522.
Biblioteca MFRC522 para Arduino
  • Copie el código anterior y ábralo con Arduino IDE
  • Haga clic en el botón Subir en Arduino IDE para cargar el código en Arduino
  • Abra Monitor Serial
  • Acérque varias etiquetas RFID/NFC al módulo RFID-RC522
  • Vea el UID en el Monitor Serial
COM6
Send
Tap RFID/NFC tag on reader RFID/NFC tag Type: MIFARE 1KB UID: 3A C9 6A CB RFID/NFC tag Type: MIFARE Ultralight or Ultralight C UID: 04 64 34 5A 1E 4E 80
Autoscroll Show timestamp
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.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!