Arduino Nano - Cerradura de Puerta RFID
Este tutorial le enseña cómo construir un sistema de cerradura para puertas con Arduino Nano, un módulo RFID/NFC RC522, un relé, una cerradura de solenoide o una cerradura electromagnética, y opcionalmente una pantalla LCD. Para facilitarle las cosas, el tutorial le indica construir la cerradura RFID a partir de pasos simples hasta complejos. En detalle, haremos:
- Parte 1: Un sistema simple de cerradura RFID para puerta con Arduino Nano, teclado numérico, cerradura de solenoide o cerradura electromagnética, admite una única clave RFID
- Parte 2: (Opcional) Soportar múltiples claves RFID
- Parte 3: (Opcional) Añadir una pantalla LCD a la cerradura RFID
- Parte 4: (Opcional) Añadir un sensor de puerta a la cerradura RFID
- Parte 5: (Opcional) Gestionar y almacenar las claves RFID válidas en la EEPROM interna del Arduino Nano
- Parte 6: (Opcional) Almacenar el historial de accesos en una tarjeta SD
Si quieres construir un sistema de cerradura de puerta que use contraseña, por favor consulta Arduino Nano - Keypad Door Lock
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del Módulo RFID/NFC RC522, Cerradura de Solenoide y Cerradura Electromagnética
Si no estás familiarizado con el módulo RFID/NFC RC522, la cerradura de solenoide y la cerradura electromagnética (incluido el diagrama de pines, cómo funciona y cómo programarla), los siguientes tutoriales pueden proporcionar más información:
Componentes del sistema de cierre de puertas
Un sistema simple de cerradura para puertas consta de dos componentes:
- Cerradura de la puerta: un Arduino Nano, un lector RFID/NFC, un relé y una cerradura de solenoide o una cerradura electromagnética
- Llave de la puerta: etiquetas RFID/NFC

Cómo funciona la cerradura de puerta RFID/NFC
- El usuario acerca una etiqueta RFID/NFC al lector RFID/NFC, que lee el UID de la etiqueta.
- Arduino Nano luego obtiene este UID del lector y lo compara con los UIDs que se han definido en el código del Arduino Nano.
- Estos UIDs actúan como las llaves autorizadas.
- Si el UID coincide con alguno de los UIDs predefinidos, Arduino Nano desactivará la cerradura de solenoide para abrir la puerta.
- Arduino Nano bloqueará la puerta tras un tiempo activando el relé.
Diagrama de Cableado
- Cerradura de puerta RFID RC522 con solenoide

This image is created using Fritzing. Click to enlarge image
- Cerradura de puerta RFID RC522 con bloqueo electromagnético

This image is created using Fritzing. Click to enlarge image
Para simplificar el proceso de conexión, los pines del módulo RC522 están conectados directamente a los pines del Arduino. Sin embargo, esto puede hacer que el Arduino funcione mal en algunos casos, ya que los pines de salida del Arduino producen 5 V, mientras que los pines del módulo RC522 funcionan a 3,3 V. Como resultado, se recomienda regular la tensión entre los pines del Arduino y el módulo RC522. El diagrama a continuación demuestra cómo se pueden utilizar resistencias para regular de 5 V a 3,3 V.

This image is created using Fritzing. Click to enlarge image
※ Nota:
Los fabricantes pueden disponer el orden de los pines de manera diferente, por lo que es importante confiar en las etiquetas impresas en el módulo. El diagrama de pines que se muestra arriba indica la distribución de pines para módulos producidos por el fabricante DIYables.
Código de Arduino Nano - Una sola tecla
Pasos R\u00e1pidos
Para descubrir el UID de una etiqueta RFID/NFC:
- Carga el código anterior al Arduino Nano usando el IDE de Arduino
- Abre el Monitor Serial y toca la etiqueta en el módulo RFID-RC522. El UID se mostrará en el Monitor Serial.
Una vez que tengas el UID:
- Modifica la línea 18 del código para reflejar el UID, por ejemplo cambia byte keytagUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; a byte keytagUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
- Carga el código revisado al Arduino Nano
- Coloca una etiqueta RFID/NFC en el módulo RFID-RC522
- Verifica la salida en el Monitor Serial
- Verifique que la cerradura de solenoide no esté desactivada.
- Toque una etiqueta RFID/NFC diferente en el módulo RFID-RC522.
- Verifique la salida en el Monitor Serial.
※ Nota:
- Para facilitar las pruebas, el tiempo de desbloqueo se ha establecido en 2 segundos; sin embargo, debería aumentarse para uso práctico/demostración.
- Es necesaria la instalación de la biblioteca MFRC522. Para obtener más información, consulte el tutorial Arduino Nano - RFID/NFC RC522.
Código para Arduino Nano - Varias teclas
Imaginemos una habitación en la que solo el gerente y la secretaria pueden abrir la puerta.
En este caso, se requieren dos etiquetas RFID/NFC: una para el gerente y la otra para la secretaria. Los identificadores únicos (UID) de ambas etiquetas deben especificarse en el código.
Repite los mismos pasos que antes, y luego selecciona individualmente cada etiqueta en el módulo RFID-RC522. La salida en el Monitor serie debería aparecer así:
Puedes ampliar el código mencionado anteriormente para incluir tres, cuatro o más etiquetas.
Añadir pantalla LCD a la cerradura RFID
Opcionalmente podemos añadir una pantalla LCD para mostrar el estado de acceso (p. ej. CONCEDIDO/DENEGADO) a los usuarios. Puedes aprender más sobre LCD en Arduino Nano - Tutorial de LCD.
Diagrama de cableado - Sistema de cerradura de la puerta que utiliza RFID, cerradura de solenoide o cerradura electromagnética, y pantalla LCD

This image is created using Fritzing. Click to enlarge image
Ver La mejor forma de alimentar Arduino Nano y otros componentes.
Tenga en cuenta que en el diagrama de cableado anterior se añade alimentación de 5 V porque el pin de 5 V del Arduino no puede suministrar suficiente energía para el relé y la pantalla LCD al mismo tiempo.
Código de Arduino Nano - Sistema de cerradura de puerta con contraseña usando el módulo RFID RC522, cerradura de solenoide o cerradura electromagnética y pantalla LCD
※ Nota:
La dirección de la pantalla LCD puede variar según el fabricante. Usamos 0x27 en nuestro código, según lo especificado por DIYables.
Añadiendo un sensor de puerta a la cerradura RFID
En el código anterior, la puerta se bloquearía después de un cierto tiempo desde que fue desbloqueada por el Arduino Nano. Sin embargo, en escenarios del mundo real, un sensor de puerta se integra al sistema. Si la puerta está cerrada, el Arduino Nano bloquearía la puerta de inmediato sin esperar a que expire el tiempo de espera.
Para no sobrecargarte, no añadimos el sensor de la puerta al diagrama de cableado y al código. Dejamos esta parte a tu creatividad. Puedes consultar los tutoriales Arduino Nano - Sensor de Puerta y Arduino Nano - Relé de Control del Sensor de Puerta.
Administrando y almacenando las claves RFID válidas en EEPROM
En el ejemplo anterior, las claves RFID válidas (UID) estaban codificadas de forma fija en el código del Arduino Nano. Esto significa que, si quisieras añadir o eliminar claves RFID, tendrías que modificar el código y volver a cargarlo en el Arduino Nano, lo cual puede resultar inconveniente.
Para hacer las cosas más prácticas, necesitamos una forma de gestionar las claves RFID sin tener que modificar y subir el código al Arduino Nano cada vez. Una solución es almacenar las claves RFID en EEPROM en lugar de codificarlas en el código. En consecuencia, necesitamos un método que permita agregar o eliminar claves RFID desde la EEPROM sin necesidad de cambiar el código.
Hay dos métodos para gestionar claves RFID en la EEPROM:
- Llaves RFID como llaves maestras
- Usar una llave RFID como llave maestra ADD para añadir una nueva llave. Después de que el Arduino detecte la llave maestra ADD, cambia entre el modo ADD y el modo OPERACIÓN.
- En el modo ADD, si el Arduino detecta una nueva llave, la añade a la EEPROM
- Similar a la llave maestra DELETE y al modo DELETE.
- Escribir comandos ADD/DELETE vía Serial/Bluetooth/IR
- Los comandos se envían vía Serial/Bluetooth/IR utilizando Serial Monitor, la app Bluetooth, el controlador IR...
- Los comandos incluyen: directiva (ADD/DELETE), UID de la llave RFID.
- Para mejorar la seguridad, el comando también debe incluir una contraseña. El Arduino verifica la contraseña para determinar si el comando es válido o no.
Ambos métodos requieren añadir una gran cantidad de código de Arduino. Eso no es una tarea fácil para los principiantes. Por lo tanto, este tutorial solo proporciona el conocimiento para ayudar a los principiantes a conocer más sobre el sistema de cerradura de la puerta sin sobrecargar al novato con el código complicado. Si desea implementar esto para uso práctico, por favor contáctenos a través de nuestro servicio de programación de pago.
Almacenando el historial de accesos en la tarjeta SD
Quizás desee almacenar el historial de accesos con la siguiente información: UID de la llave RFID, estado de acceso (CONCEDIDO/DENEGADO) y fecha y hora. Puede usar una tarjeta SD para conservar el historial porque la EEPROM no es lo suficientemente grande para almacenar el historial. Puede consultar este tutorial Arduino Nano - Registrar datos con marca de tiempo en la tarjeta SD.
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.