El KIT de Lector RFID rc522 que se vende genéricamente en las tiendas online incluye una tarjeta y un tag RFID para realizar tus experimentos y desarrollar tu proyecto Arduino.
En el caso de los kits RFID de menor costo, si bien puedes utilizarlos igualmente para desarrollar tu aplicación, debes tomar en cuenta que la sensibilidad del lector RFID es tan baja que es prácticamente inutilizable en la realidad:
Debes PEGAR (menos de un centímetro de distancia) tanto la tarjeta como el tag RFID para que el lector pueda reconocerlo.
Esta falta de sensibilidad tornaría imposible algunos proyectos donde el lector está escondido dentro de una pared o puerta. ¡Está hecha la alerta!
Con respecto al voltaje, estos módulos utilizan 3.3volts. En cuanto a compatibilidad, pueden leer las tarjetas mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro y las mifare Desfire.
Agregando el Lector RFID rc522 a nuestro proyecto Arduino
Como ya es costumbre, hay una libreria disponible para simplificar el manejo del lector RFID en nuestros proyectos Arduino.
Debes descargar e incorporar a tu programa la libreria MFRC522. Podrás hacerlo desde el IDE oficial de Arduino, con la opción de Manage Libraries.
Funcionalidad básica del lector RFID RC522
El siguiente proyecto Arduino demostrará la funcionalidad básica del lector RFID RC522.
En esta ocasión lo he conectado a un WEMOS D1 R2, por lo que los pines declarados para su conectividad pueden ser distintos a tu caso particular:
#include <ESP8266WiFi.h>
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 5 // RST-PIN for RC522 - RFID - SPI - Modul GPIO5
#define SS_PIN 4 // SDA-PIN for RC522 - RFID - SPI - Modul GPIO4
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup() {
Serial.begin(115200);
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
delay(1000);
Serial.println("TEST Lector RFID rc522!");
}
void loop() {
// Esperar presencia de nueva tarjeta
if (!mfrc522.PICC_IsNewCardPresent()) {
delay(50);
return;
}
// Esperar lectura de tarjeta
if (!mfrc522.PICC_ReadCardSerial()) {
delay(50);
return;
}
// Mostrar detalles tag/tarjeta
Serial.print(F("UID tarjeta:"));
dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
Serial.println();
}
// Rutina de ayuda para pasar un array de bytes a sus valores hexa
void dump_byte_array(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], HEX);
}
}
Este código nos permitirá testear el lector de tarjetas y tags RFID. Quedará en vuestras manos (o un nuevo proyecto Arduino en el futuro) poner el lector RFID rc522 en buen uso como parte de algún sistema más complejo.