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.
Banda | Frecuencia | Rango típico | Ventajas | Limitaciones |
---|---|---|---|---|
LF | 125 – 134 kHz | ~10 cm | Penetra materiales, bajo costo | Lento, solo UID, sin cifrado |
HF (NFC) | 13.56 MHz | ~10 cm | Escritura posible, + datos | Afectado por metal y líquidos |
UHF | 860 – 960 MHz | 1–10 metros | Larga distancia, logística | Mayor 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:
MFRC522 | Arduino UNO |
---|---|
SDA | D10 |
SCK | D13 |
MOSI | D11 |
MISO | D12 |
RST | D9 |
3.3V | 3.3V |
GND | GND |
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.