Crea un Cerrojo RFID Seguro con Arduino – Guía Paso a Paso
Componentes y materiales
| Arduino UNO | 1 |
| Lector RFID (genérico) | 1 |
Aplicaciones y servicios en línea
- Arduino IDE
Sobre este proyecto
¡Hola amigos! Bienvenidos a otro tutorial. Soy Nick de educ8s.tv y hoy aprenderemos a usar este lector RFID con Arduino para construir un sistema de cerrojo simple.
Por primera vez, usaremos etiquetas RFID con Arduino. He creado un proyecto simple que lee el ID único (UID) de cada etiqueta RFID que colocamos cerca del lector y lo muestra en esta pantalla OLED. Si el UID de la etiqueta coincide con un valor predefinido almacenado en la memoria del Arduino, en la pantalla veremos el mensaje "Desbloqueado". Si el ID único de la tarjeta no coincide con el valor predefinido, el mensaje de desbloqueo no aparecerá. ¡Genial, ¿verdad?
Hay mucho que cubrir, ¡así que empecemos!
Paso 1: Consigue todas las piezas
Las piezas necesarias para construir este proyecto son:
- Un Arduino Uno
- Un lector RFID
- Pantalla OLED
- Una protoboard pequeña
- Algunos cables
Piezas opcionales:
- Powerbank
El costo total del proyecto es de unos 15 dólares.
Paso 2: El lector RFID RC522
Cada etiqueta RFID tiene un pequeño chip en su interior. Si coloco una linterna debajo de esta tarjeta RFID, puedes ver el pequeño chip y la bobina que lo rodea. Este chip no tiene batería para obtener energía. Recibe energía del lector, este dispositivo, de forma inalámbrica usando esta gran bobina. ¡El lector puede leer una tarjeta RFID como esta desde una distancia de hasta 20 mm!
El mismo chip existe en las etiquetas RFID de llavero.
Cada etiqueta RFID tiene un número único que la identifica. Ese es el UID que mostramos en la pantalla OLED. Además de este UID, cada etiqueta puede almacenar datos. En este tipo de tarjetas podemos almacenar hasta 1K de datos. ¡Impresionante, ¿verdad? No usaremos esta funcionalidad hoy, pero lo haremos en un futuro tutorial. Hoy, todo lo que nos interesa es identificar una tarjeta específica por su UID. El costo del lector RFID y estas dos tarjetas RFID es de unos 4 dólares.
Paso 3: Pantalla OLED
Esta es una pantalla muy buena para usar con Arduino. Es una pantalla OLED, lo que significa que tiene un bajo consumo de energía. El consumo de esta pantalla es de unos 10-20 mA y depende de cuántos píxeles estén encendidos.
La pantalla tiene una resolución de 128×64 píxeles y es diminuta. Hay dos variantes: una monocromo y otra como la que uso yo, que puede mostrar dos colores, amarillo y azul. La parte superior solo muestra amarillo, la inferior solo azul.
Esta pantalla OLED es muy brillante y tiene un gran soporte de librerías. Adafruit ha desarrollado una librería excelente para esta pantalla. Además, la pantalla usa interfaz I2C, así que la conexión con Arduino es increíblemente fácil. Solo necesitas conectar dos cables además de Vcc y GND. Si eres nuevo en Arduino y quieres una pantalla económica y fácil de usar para tu proyecto, empieza con esta. Es la forma más fácil de añadir una pantalla a tu proyecto Arduino. He preparado un tutorial detallado sobre cómo usar esta pantalla, que he adjuntado a este tutorial.
Paso 4: Conecta todas las piezas
La conexión con la placa Arduino Uno es muy simple. Primero, conectemos la alimentación tanto del lector como de la pantalla.
¡Cuidado! El lector RFID debe conectarse a la salida de 3.3V del Arduino Uno o se destruirá. Como la pantalla también puede funcionar a 3.3V, conectamos el Vcc de ambos módulos al rail positivo de la protoboard. Este rail se conecta luego a la salida de 3.3V del Arduino Uno. Luego, conectamos ambos GND al rail de GND de la protoboard. Después, conectamos el rail de GND de la protoboard al GND del Arduino.
Pantalla OLED - Arduino
- Vcc → 3.3V
- GND → GND
- SCL → Pin Analógico 5
- SDA → Pin Analógico 4
Lector RFID - Arduino
- RST → Pin Digital 9
- IRQ → Desconectado
- MISO → Pin Digital 12
- MOSI → Pin Digital 11
- SCK → Pin Digital 13
- SDA → Pin Digital 10
El módulo lector RFID usa la interfaz SPI para comunicarse con Arduino. Así que usaremos los pines SPI de hardware del Arduino UNO. El pin RST va al pin digital 9. El pin IRQ se queda desconectado. MISO va al pin digital 12. MOSI va al pin digital 11. SCK va al pin digital 13 y, por último, SDA va al pin digital 10. ¡Listo! El lector RFID está conectado. Ahora hay que conectar la pantalla OLED con Arduino usando la interfaz I2C. Así, el pin SCL de la pantalla va al Pin Analógico 5 y el pin SDA al Pin Analógico 4. Si ahora alimentamos el proyecto y acercamos una tarjeta RFID al lector, veremos que el proyecto funciona bien. Ahora es hora de ver el código del proyecto.
Paso 5: El código del proyecto
Para que el código del proyecto compile, necesitamos incluir algunas librerías. Primero, la librería MFRC522 RFID. Para instalarla, ve a Programa → Incluir Librería → Gestionar librerías. Busca MFRC522 e instálala. También necesitamos la librería Adafruit SSD1306 y la librería Adafruit GFX para la pantalla. Instala ambas con el mismo procedimiento. La librería Adafruit SSD1306 necesita una pequeña modificación. Ve a la carpeta Arduino → Libraries, abre la carpeta Adafruit SSD1306 y edita el archivo Adafruit_SSD1306.h. Comenta la línea 70 y descomenta la línea 69. Nuestra pantalla tiene una resolución de 128x64, que es lo que estamos definiendo aquí. Ahora estamos listos para echar un vistazo rápido al código.
Primero, declaramos el valor de la etiqueta RFID que queremos que el Arduino reconozca. Es un array de enteros.
int codigo[] = {69,141,8,136}; // Este es el UID almacenado
Luego, inicializamos el lector RFID y la pantalla.
rfid.PCD_Init(); display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Después, en la función loop, comprobamos si hay una etiqueta en el lector cada 100 ms.
Si hay una etiqueta en el lector, leemos su UID y lo mostramos en la pantalla. Luego, comparamos el UID de la etiqueta que acabamos de leer con el valor almacenado en la variable codigo. Si los valores son iguales, mostramos el mensaje DESBLOQUEADO; si no, no mostramos este mensaje.
if (coincide) { Serial.println("\n¡Conozco esta tarjeta!"); printUnlockMessage(); } else { Serial.println("\nTarjeta desconocida"); }
Por supuesto, puedes modificar este código para almacenar más de un valor UID y que el proyecto reconozca más etiquetas RFID.
Esto es solo un ejemplo. Como siempre, puedes encontrar el código del proyecto adjunto a este tutorial.
Paso 6: Reflexiones finales y mejoras
Como puedes ver, con un coste muy bajo podemos añadir un lector RFID a nuestros proyectos. Podemos construir fácilmente un sistema de seguridad con un lector como este o crear proyectos más divertidos.
Mi intención principal es crear algunos juegos interactivos para niños usando este lector RFID y muchas etiquetas RFID. En un futuro video, también intentaremos escribir y leer datos de una etiqueta RFID. En este punto, me encantaría conocer tu opinión sobre este lector de tarjetas RFID. ¿Planeas usarlo en alguno de tus proyectos? ¡Publica cualquier comentario o idea en la sección de comentarios abajo, gracias!
Código
RFID.ino (disponible para descarga)
Proceso de manufactura
- Construye un Cerrajero RFID Seguro con Arduino y RC522 (MIFARE 13.56 MHz)
- Proyecto Sensor de Huella Dactilar con Arduino Nano – Tutorial Paso a Paso
- Construye un Mini Piano con Arduino UNO – Tutorial Paso a Paso
- Construye un Cerco RFID Portátil con Arduino – Guía Paso a Paso
- Asegura tu PC con Bloqueo RFID y Relé: Proyecto Arduino
- Integración de Lectores RFID HID Prox con Arduino UNO – Configuración Paso a Paso
- Construye un Lector RFID Habilitado para Red con Arduino, Ethernet ENC28J60 y MFRC522
- Bloqueo/desbloqueo de PC Windows con RFID (Arduino Micro/Leonardo)
- Domina el Multihilo en Arduino con Protothreading: Tutorial Paso a Paso
- Domina el MPU6050: Tutorial acelerómetro y giroscopio para Arduino
- Tutorial Arduino para Principiantes 01: Inicia tu Primer Proyecto