jueves, 10 de julio de 2025

Introducción a RFID desde el enfoque IoT

Lectura de una tarjeta RFID con Arduino

Introducción a RFID desde el enfoque IoT

La tecnología RFID (Radio Frequency Identification) es uno de los pilares silenciosos del Internet de las Cosas (IoT), utilizada ampliamente en control de acceso, logística, trazabilidad, retail, ganadería, y más. A pesar de su bajo costo y simplicidad, RFID es una puerta de entrada potente para entender la comunicación inalámbrica de corto alcance y los sistemas de identificación sin contacto.

En este artículo exploramos cómo funciona RFID desde una perspectiva IoT, los tipos de sistemas, frecuencias, casos de uso, y cómo integrarlo fácilmente en proyectos con microcontroladores como Arduino o ESP32.


🧠 ¿Qué es RFID?

RFID permite la identificación automática de objetos o personas mediante ondas de radio. A diferencia de los códigos de barras o los QR, no requiere línea de visión directa ni intervención manual.

Un sistema RFID básico consta de:

  • Etiqueta (tag): Un pequeño dispositivo que contiene un identificador único (UID), y opcionalmente, memoria de lectura/escritura.
  • Lector (reader): Genera un campo electromagnético que energiza la etiqueta (si es pasiva) y recibe la información emitida por ella.

📡 ¿Cómo funciona RFID técnicamente?

Cuando el lector emite un campo de radiofrecuencia (RF), las etiquetas pasivas cercanas usan esa energía para activar su circuito interno y responder con su UID. Este proceso se llama acoplamiento inductivo, y es muy eficiente a distancias cortas.

Desde la perspectiva del IoT, el lector RFID actúa como un sensor inalámbrico, capturando datos de objetos físicos en tiempo real, y permitiendo:

  • Identificación única
  • Asociación a una base de datos
  • Registro de eventos (check-in/out)
  • Acciones automatizadas (abrir puertas, contar inventario, etc.)

⚙️ Tipos de RFID según frecuencia

La frecuencia define la velocidad de transmisión, distancia de lectura, y complejidad del sistema.

BandaFrecuenciaRango típicoVentajasLimitaciones
LF125 – 134 kHz~10 cmPenetra materiales, bajo costoLento, solo UID, sin cifrado
HF (NFC)13.56 MHz~10 cmEscritura posible, + datosAfectado por metal y líquidos
UHF860 – 960 MHz1–10 metrosLarga distancia, logísticaMayor costo y regulación

Para proyectos caseros o prototipos IoT, los más comunes son:

  • LF (125 kHz) con lectores como el RDM6300
  • HF (13.56 MHz) con lectores como el MFRC522 o PN532

🏷️ Tipos de etiquetas RFID

Las etiquetas pueden clasificarse según:

1. Fuente de energía

  • Pasivas: Sin batería, baratas, usan la energía del lector.
  • Activas: Con batería, mayor alcance, más caras.
  • Semi-pasivas: Batería interna, pero solo para el chip, no para transmitir.

2. Capacidad de datos

  • Solo UID (read-only): Generalmente 125 kHz, sin memoria extra.
  • Lectura/Escritura (R/W): Como MIFARE Classic 1K, permiten almacenar datos.

3. Seguridad

  • Básicas: UID sin protección.
  • Avanzadas: Con cifrado (DESFire, iCLASS, NTAG con autenticación).

🧰 RFID en proyectos IoT

En IoT, RFID se utiliza para conectar el mundo físico con la nube:

  • 🚪 Control de acceso: registrar entradas/salidas, desbloqueo con tags.
  • 📦 Gestión de inventario: cada ítem con un tag único, leído en tiempo real.
  • 📈 Trazabilidad: productos o paquetes identificados en cada etapa.
  • 📍 Localización: UHF + antenas múltiples para triangulación.

Ejemplo: con un ESP32 + MFRC522, puedes leer el UID de una tarjeta RFID y enviarlo por Wi-Fi a una API REST, base de datos o MQTT broker.


🔌 Integración con microcontroladores

MFRC522 (13.56 MHz) con Arduino

Este lector usa SPI para comunicarse. Los pines típicos en Arduino UNO son:

MFRC522Arduino UNO
SDAD10
SCKD13
MOSID11
MISOD12
RSTD9
3.3V3.3V
GNDGND

Con la librería MFRC522 de Miguel Balboa puedes leer el UID en pocos segundos. Ejemplo básico:

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 10
#define RST_PIN 9

MFRC522 rfid(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  Serial.println("Escanea una tarjeta...");
}

void loop() {
  if (!rfid.PICC_IsNewCardPresent()) return;
  if (!rfid.PICC_ReadCardSerial()) return;

  Serial.print("UID: ");
  for (byte i = 0; i < rfid.uid.size; i++) {
    Serial.print(rfid.uid.uidByte[i], HEX);
    Serial.print(" ");
  }
  Serial.println();
  rfid.PICC_HaltA();
}

🔐 Consideraciones de seguridad

Muchas implementaciones RFID no son seguras:

  • Algunos chips tienen UID clonable
  • Otros tienen protocolos inseguros (ej. MIFARE Classic)
  • Es posible emular o interceptar comunicaciones si no hay cifrado

Si tu aplicación requiere seguridad, elige chips con autenticación y comunicación cifrada, como MIFARE DESFire o NTAG424.


📦 Conclusión

RFID es una tecnología fundamental dentro del ecosistema IoT, ideal para conectar objetos físicos con sistemas digitales de manera simple, económica y efectiva. Desde un lector barato hasta soluciones industriales, sus aplicaciones son casi infinitas.