Este tutorial ilustrará el funcionamiento de un lector RFID.

COMPONENTES Y SUMINISTROS

  • Arduino UNO
  • Desglose del lector RFID SparkFun
  • Tarjeta Adafruit RFID / NFC

¿Qué es un lector RFID?

El etiquetado RFID es un sistema de identificación que utiliza pequeños dispositivos de identificación por radiofrecuencia con fines de identificación y seguimiento. Un sistema de etiquetado RFID incluye la etiqueta en sí, un dispositivo de lectura / escritura y una aplicación de sistema principal para la recopilación, el procesamiento y la transmisión de datos.

En palabras simples, una RFID utiliza campos electromagnéticos para transferir datos a distancias cortas. La RFID es útil para identificar personas, realizar transacciones, etc.

Puede utilizar un sistema RFID para abrir una puerta. Por ejemplo, solo la persona con la información correcta en su tarjeta puede ingresar. Un sistema RFID utiliza:

>> Etiquetas  adheridas al objeto a identificar, en este ejemplo tenemos un llavero y una tarjeta electromagnética. Cada etiqueta tiene su propia identificación (UID).

>> transmisor-receptor de radio bidireccional, el  lector , que envía una señal a la etiqueta y lee su respuesta

Especificaciones basicas:

  • Voltaje de entrada: 3,3 V
  • Frecuencia: 13,56 MHz

Ahora, antes de escribir el código necesario, debe descargar la biblioteca necesaria para este sensor desde este repositorio .

Extraiga el contenido de la carpeta zip «rfid-master» y agregue esta carpeta de biblioteca en las bibliotecas existentes de Arduino.

Después de hacerlo, reinicie su ArduinoIDE.

Ahora, nuestro Arduino está listo para tomar comandos y ejecutarlos en consecuencia.

El código Arduino se ha cargado al final de este tutorial. Compile el código y elimine los errores tipográficos (si los hay).

Ahora es el momento de conectar nuestro Arduino con el lector RFID. Consulte el cableado PIN a continuación, así como el diagrama esquemático de conexión para una fácil referencia.

PinWiring a Arduino Uno

SDA ———————— Digital 10

SCK ———————— Digital 13

MOSI ———————- Digital 11

MISO ———————- Digital 12

IRQ ———————— desconectado

GND ———————– GND

RST ———————— Digital 9

3.3V ———————— 3.3V (NO CONECTE A 5V) 

Leer datos de una etiqueta RFID

Después de tener el circuito listo, vaya a Archivo> Ejemplos> MFRC522> DumpInfo y cargue el código. Este código estará disponible en Arduino IDE (después de instalar la biblioteca RFID).

Luego, abra el monitor serial. Debería ver algo como la figura siguiente:

Aproxima la tarjeta RFID o el llavero al lector. Deje que el lector y la etiqueta se acerquen hasta que se muestre toda la información.

Esta es la información que puede leer de la tarjeta, incluido el UID de la tarjeta que está resaltado en amarillo. La información se almacena en la memoria que se divide en segmentos y bloques como puedes ver en la imagen anterior.

Tiene 1024 bytes de almacenamiento de datos divididos en 16 sectores y cada sector está protegido por dos claves diferentes, A y B.

Anote su tarjeta UID porque la necesitará más adelante.

Sube el código Arduino que se ha agregado como sufijo aquí.

Demostración

Aproxima la tarjeta que ha elegido para dar acceso y verá:

Si aproxima otra etiqueta con otro UID, aparecerá el mensaje de denegación:

CÓDIGO

/
 
#include  <SPI.h>
#include  <MFRC522.h>
 
#define SS_PIN 10
#define RST_PIN 9
MFRC522  mfrc522 ( SS_PIN ,  RST_PIN );    // Cree la instancia de MFRC522.
 
 configuración vacía () 
{
  Serial . comenzar ( 9600 );    // Iniciar una comunicación en serie
  SPI . comenzar ();       // Iniciar bus SPI
  mfrc522 . PCD_Init ();    // Iniciar MFRC522
  Serial . println ( "Aproxima tu tarjeta al lector ..." );
  Serial . println ();

}
 bucle vacío () 
{
  // Busque nuevas cartas
  if  (  !  mfrc522 . PICC_IsNewCardPresent ()) 
  {
    volver ;
  }
  // Selecciona una de las cartas
  si  (  !  mfrc522 . PICC_ReadCardSerial ()) 
  {
    volver ;
  }
  // Mostrar UID en el monitor serial
  Serial . print ( "etiqueta UID:" );
  String  content =  "" ;
   letra de byte ;
  para  ( byte  i  =  0 ;  i  <  mfrc522 . uid . tamaño ;  i ++ ) 
  {
     Serial . print ( mfrc522 . uid . uidByte [ i ]  <  0x10  ?  "0"  :  "" );
     Serial . imprimir ( mfrc522 . uid . uidByte [ i ],  HEX );
     contenido . concat ( String ( mfrc522 . uid . uidByte [ i ]  <  0x10  ?  "0"  :  "" ));
     contenido . concat ( Cadena ( mfrc522 . uid . uidByte [ i ],  HEX ));
  }
  Serial . println ();
  Serial . imprimir ( "Mensaje:" );
  contenido . toUpperCase ();
  if  ( content . substring ( 1 )  ==  "BD 31 15 2B" )  // cambia aquí el UID de la tarjeta / tarjetas a las que quieres dar acceso
  {
    Serial . println ( "Acceso autorizado" );
    Serial . println ();
    retraso ( 3000 );
  }
 
 else    {
    Serial . println ( "Acceso denegado" );
    retraso ( 3000 );
  }
} 

Diagrama esquemático de conexión

https://create.arduino.cc/