Lectura de tarjetas RFID con Arduino

Lectura de tarjetas RFID con Arduino

El módulo que les presento hoy es el RFID-RC522 para leer tarjetas RFID con Arduino, que es uno de los módulos más comunes que existen con versiones de calidad y otras chinas extremadamente económicas pero que dan un poco más de trabajo hacerlas andar. Si bién el módulo incorpora el chip MFRC522 del cual les dejo la hoja de datos acá, y dentro de sus características vemos que soporta I2C (mi protocolo favorito), y otras funciones, la verdad es que el módulo en sí limita muchas de las características del chip, por lo que veremos en esta presentación solo la funcionalidad básica de acceso simple a todo el mundo.

El módulo, pines y conexiones a nuestro Arduino UNO/MEGA

RFID con Arduino

En el móduloo (ver foto), observamos varios pines que nombraré por el nombre que se muestran en la foto, pero pueden variar de una versión a otra (aunque la mayoría de las que ví respetan el mismo esquema de pines):

MóduloArduino UNOArduino MEGA 2560
RST95
SDA1053
MOSI1151
MISO1250
SCK1352
GNDGNDGND
3.3v3.3v3.3v

Algunas consideraciones a tener en cuenta son:

  • El pin IRQ no lo conectamos
  • El voltaje es 3.3v y NO 5v (OJO)

Características técnicas (sacadas del módulo que se muestra):

  • Operating current :13-26mA/DC 3.3V
  • Idle current :10-13mA/DC 3.3V
  • Sleep current: <80uA
  • Peak current: <30mA
  • Operating Frequency: 13.56MHz
  • Supported card types: mifare1 S50, mifare1 S70 MIFARE Ultralight, mifare Pro, MIFARE DESFire
  • Product physical characteristics: size: 40mm x 60mm
  • Environmental Operating temperature: -20-80 degrees Celsius
  • Environmental Storage Temperature: -40-85 degrees Celsius
  • Relative humidity: relative humidity 5% – 95%
  • Module interfaces SPI Parameter:
  • Data transfer rate: maximum 10Mbit/s

La librería que usaremos

Para simplificar las cosas al máximo, usaremos una librería que es la que se presentan en todos lados y es una de las más completas que he encontrado. Aun así, la misma no tiene soporte para I2C ni IRQ, algo que evaluaremos en el futuro de ser necesario para nuestros proyectos de RFID con Arduino.

Podrán encontrar la librería aquí. Les recomiendo que despues de bajarla le cambien el nombre ANTES DE INSTALARLA en su Arduino IDE. Yo le puse “rfid-master.zip”. La misma tiene una carpeta (que encontrarán luego de instalarla) llamada “/examples/” con varios ejemplos de como hacer distintas cosas pero como siempre todo está en Inglés, asi que por las dudas les dejo un Sketch muy básico en español que usa la librería pero es más simple de entender.

El Sketch para RFID con Arduino

// Importamos la libreria general para comunicaciones por SPI
#include <SPI.h>
// Importamos la libreria para el modulo
#include <MFRC522.h>

// Los pines que usamos para conectarnos
#define RST_PIN 9          
#define SDA_PIN 10 // Tambien conocido como SS

MFRC522 mfrc522(SDA_PIN, RST_PIN);  

void setup() {
  // Iniciamos el Monitor serial
  Serial.begin(9600);
  
  // Iniciamos el SPI
  SPI.begin();
  
  // Iniciamos el modulo
  mfrc522.PCD_Init();
  
  Serial.println("Pase una tarjeta por el modulo para leerla...");
}

void loop() {
  // Si hay tarjeta nueva leida
  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
    
    // Mostramos informacion sobre la tarjeta por el Monitor serial
    mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
  }
}

Carguen como siempre el Sketch en su Arduino IDE y luego al Arduino, y abran el Monitor Serial a 9600bps y lean una tarjeta. Para ampliar la experiencia dejen la tarjeta cerca hasta que termina de leerla ya que intentará leer la memoria de almacenamiento que muchas de estas tarjetas tienen (y si, podrán escribir en ellas de ser necesario).

¿Qué sigue?

Para los que quieren seguir avanzando:

Identificar tarjetas RFID con Arduino

Sigan consultando o suscribanse a la página de Facebook para más novedades con éste módulo!

Deja un comentario