Hagamos un lector Arduino RFID simple usando el Módulo RC522 Deja un comentario

VISIÓN DE CONJUNTO

Si ya trabajó en una oficina, probablemente conozca las tarjetas RFID o etiquetas que desbloquearían puertas específicas según su acceso.

Bien, hagamos un lector Arduino RFID simple usando el módulo RC522, y programemos el Arduino para que haga algo cuando se detecta la tarjeta correcta. Este simple ejemplo leerá el número de serie en la Tarjeta o Etiqueta, lo mostrará en el monitor de serie, emitirá un zumbador y encenderá algunos LED.

Por supuesto, este proyecto podría interconectarse para abrir puertas, encender un relé, encender un LED o cualquier otra cosa que se te ocurra.

Tenga en cuenta que hay mucho más que puede hacer con estos, como leer más información de la tarjeta (las tarjetas utilizadas tienen alrededor de 1K de memoria), así como escribir o reemplazar cierta información en la tarjeta o etiqueta.

CONEXIONES

Aquí están las conexiones necesarias para este tutorial:

La GND de UNO está conectada al pin negativo (-) del zumbador, al pin GND del LED stick y al pin GND del módulo RFID

El pin de 3.3V de UNO está conectado al pin VCC del LED stick y al pin 3.3V del módulo RFID

Los pines 8-10-11-12-13 de UNO están conectados al pin RST-SDA-MOSI-MISO-SCK del módulo RFID

El pin 5 de UNO está conectado al pin DIN del LED stick

El pin 3 de UNO está conectado al pin (+) del zumbador

EL CÓDIGO

Estamos utilizando la biblioteca MFRC522 creada por LJOS para comunicarse con el módulo RC522 y la biblioteca FastLED para controlar el LED stick WS2812.

El código siguiente leerá el número de serie de la Tarjeta o Etiqueta cuando esté lo suficientemente cerca como para recibir energía del lector RC522, y luego comparará esa información con el valor que ingresamos en la matriz llamada ‘NúmeroSerieTotal Buena’, que es 0x95-0xEB- 0x17-0x53.

Si los números de serie coinciden, el zumbador emitirá un tono corto 3 veces e iluminará el LED verde, de lo contrario se escuchará un tono más largo y el LED se iluminará en rojo.

Como siempre, para obtener más información sobre el tutorial y la explicación del código, mire nuestro video tutorial.

/ * Inicio del código * / 

/ * Bosquejo simple de Arduino del RFID (RC522)

 Creado por Yvan / https: // Inteligente - Bits . com
 Este código es  en el dominio público ... Puede: copiarlo, usarlo, modificarlo, compartirlo o simplemente ignóralo ! Gracias ! La Biblioteca MFRC522 utilizada, fue creada por LJOS aquí: https: // github . com / ljos / MFRC522
 La biblioteca FastLED utilizada, fue creada por focalintent aquí: https: // github . com / FastLED / FastLED / lanzamientos * / 

#incluir // Incluye de la Biblioteca RC522 
#include "FastLED.h" // Incluye la biblioteca FastLED 
#incluir // Utilizado para comunicación a través de SPI con el Módulo 

// Conexión WS2812 RGB Stick #define led_pin 5 // Pin 5 conectado a DIN de RGB Stick 
#define NUM_LEDS 8 // # de WS2812 LED en stick LED CRGB [NUM_LEDS]; // Biblioteca FastLED Init #define SDAPIN 10 // Módulo RFID El pin SDA está conectado al pin UNO 10 
#define RESETPIN 8 // Módulo RFID El pin RST está conectado al pin UNO 8 

#define Buzzer 3 // Pin 3 conectado a + pin del zumbador byte FoundTag; // Variable utilizada para verificar Si Tag fue encontrado
 byte ReadTag; // Variable utilizada para almacenar anti - valor de colisión para leer la información de la etiqueta
 byte TagData [MAX_LEN]; // Variable utilizada para almacenar datos completos de etiquetas
 byte TagSerialNumber [ 5 ]; // Variable utilizada para almacenar solo el número de serie de la etiqueta
 byte GoodTagSerialNumber [ 5 ] = { 0x95 , 0xEB , 0x17 , 0x53 }; // El número de serie de la etiqueta que estamos buscando para MFRC522 nfc (SDAPIN, RESETPIN); // Init de la biblioteca usando los pines UNO declarados arriba

 void setup () {
 pinMode (Zumbador, SALIDA); // Establecer el pin del zumbador en un pin de salida
 digitalWrite (Zumbador, BAJO); // Zumbador apagado al inicio
 SPI . empezar();
 De serie . empezar( 115200 );

 FastLED . addLeds NEOPIXEL, led_pin > (leds, NUM_LEDS); // Configurar la biblioteca FastLED
 FastLED . claro(); // Comience a buscar un módulo de RFID
 De serie . println ( "Buscando un lector de RFID" );
 nfc . empezar();
 versión byte = nfc . getFirmwareVersion (); // Variable para almacenar la versión de firmware del Módulo // Si puede no encuentra un Módulo de RFID 
Si ( ! versión) {
 De serie . impresión ( "No encontré la placa RC522". ); mientras ( 1 ); // Espere hasta que un módulo de RFID es encontró
 } // Si se encuentra, impresión la información sobre el Módulo RFID
 De serie . impresión ( "Se encontró el chip RC522" );
 De serie . impresión ( "Versión de firmware: 0x" );
 De serie . println (versión, HEX);
 De serie . println ();
 }

 void loop () { // Iluminar el LED de arranque es 
para ( En t X =  0 ;  X  8 ;  X ++ ) {
 leds [x] = CRGB :: Azul;
 }
 FastLED . setBrightness ( 50 );
 FastLED . espectáculo();

 Cadena GoodTag = "Falso" ; // Variable utilizada para confirmar la buena etiqueta detectada // Checa para ver Si una etiqueta fue detectada // En caso afirmativo, la variable FoundTag contendrá "MI_OK" FoundTag = nfc . requestTag (MF1_REQIDL, TagData); Si (FoundTag == MI_OK) {
 retrasar( 200 ); // Obtener anti - valor de colisión para leer correctamente la información de  el  Etiqueta ReadTag = nfc . antiColisión (TagData);
 memcpy (TagSerialNumber, TagData, 4 ); // Escribir la información de la etiqueta en la variable TagSerialNumber

 De serie . println ( "Etiqueta detectada". );
 De serie . impresión ( "Número de serie: " ); para ( En t yo =  0 ;  yo  4 ;  yo ++ ) { // Loop a impresión número de serie a monitor en serie
 De serie . impresión (TagSerialNumber [i], HEX);
 De serie . impresión ( "," );
 }
 De serie . println ( "" );
 De serie . println (); // Comprobar Si etiqueta detectada tiene el número de serie correcto que estamos buscando para  
para ( En t yo = 0 ;  yo  4 ;  yo ++ ) { Si (GoodTagSerialNumber [i] ! = TagSerialNumber [i]) { descanso ; //  Si  no igual, luego descanso fuera de "para" lazo
 } Si (yo ==  3 ) { //  Si logramos llegar a 4 bucles y luego los números de serie de la etiqueta coinciden
 GoodTag = "CIERTO" ;
 }
 } Si (GoodTag ==  "CIERTO" ) {
 De serie . println ( "¡¡¡¡¡¡¡Éxito!!!!!!!" );
 De serie . println (); para ( En t X =  0 ;  X  8 ;  X ++ ) {
 leds [x] = CRGB :: Verde;
 }
 FastLED . espectáculo(); para ( En t y =  0 ;  y  3 ;  y ++ ) {
 digitalWrite (Zumbador, ALTO); // Zumbador encendido
 retraso ( 50 ); // Retrasar 1 Sra
 digitalWrite (Zumbador, BAJO); // Zumbador apagado
 retraso ( 50 ); // retrasar 1 Sra
 }
 retrasar( 1500 );
 } más {
 De serie . println ( "ETIQUETA NO ACEPTADA ...... :(" );
 De serie . println (); para ( En t X =  0 ;  X  8 ;  X ++ ) {
 leds [x] = CRGB :: Rojo;
 }
 FastLED . espectáculo(); para ( En t y =  0 ;  y  3 ;  y ++ ) {
 digitalWrite (Zumbador, ALTO); // Zumbador encendido
 retraso ( 300 ); // Retrasar 1 Sra
 digitalWrite (Zumbador, BAJO); // Zumbador apagado
 retraso ( 400 ); // retrasar 1 Sra
 }
 retrasar( 500 );
 }
 }
 } / * Fin del código * / 
DESCARGAR

Copie el código de Sketch anterior en su software Arduino IDE para programar su Arduino.

Bibliotecas usadas:

Descargue la biblioteca MFRC522 creada por LJOS aquí: https://github.com/ljos/MFRC522
Descargue la biblioteca FastLED creada por focalintent aquí: https://github.com/FastLED/FastLED/releases

Una vez descargado, simplemente extrae el contenido de los archivos zip dentro de tu ” arduino / carpeta “libraries”.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?