ESP8266 - Cerradura RFID
Este tutorial te enseña cómo construir un sistema de cerradura para puertas utilizando ESP8266, el módulo RFID/NFC RC522, un relé, una cerradura de solenoide o electromagnética y, opcionalmente, una pantalla LCD. Para facilitarte las cosas, el tutorial te guiará para construir la cerradura RFID desde pasos simples hasta complejos. En detalle, haremos:
- Parte 1: Un sistema sencillo de cerradura de puerta RFID con ESP8266, teclado, cerradura de solenoide o cerradura electromagnética, admite una única clave RFID
- Parte 2: (Opcional) Añadir soporte para 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) Administrar y almacenar las claves RFID válidas en la EEPROM interna del ESP8266
- Parte 6: (Opcional) Almacenar el historial de accesos en la tarjeta SD

Si quieres construir un sistema de cerraduras para puertas con contraseña, consulta ESP8266 - 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 y la cerradura electromagnética
Si no está familiarizado con el módulo RFID/NFC RC522, la cerradura electromagnética y la cerradura de solenoide (incluido el esquema de pines, cómo funciona y cómo programarla), entonces puede aprender más siguiendo estos tutoriales:
Componentes del sistema de cerraduras
El sistema de cerradura de la puerta se compone de dos componentes principales:
- Cerradura: un ESP8266, un relé, un lector RFID/NFC, una cerradura de solenoide o una cerradura electromagnética
- Llave de la puerta: etiquetas RFID/NFC

Cómo funciona la cerradura RFID/NFC para puertas
- El usuario acerca una etiqueta RFID/NFC al lector RFID/NFC, que lee el UID de la etiqueta.
- El ESP8266 obtiene el UID desde el lector y lo compara con los UIDs que se han configurado en el código.
- Si el UID coincide con alguno de los UIDs predefinidos, ESP8266 desactivará la cerradura de solenoide, desbloqueando así la puerta.
- Estas etiquetas actúan como llaves autorizadas.
- El relé será activado por ESP8266 para bloquear la puerta después de un período de tiempo específico.
Diagrama de Cableado
- Cerradura de puerta RFID RC522 con solenoide

This image is created using Fritzing. Click to enlarge image
Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.
- Cerradura de puerta RFID RC522 con cerradura electromagnética

This image is created using Fritzing. Click to enlarge image
※ Nota:
Los fabricantes pueden disponer de diferentes órdenes de pines, por lo que es importante confiar en las etiquetas impresas en el módulo. El diagrama de pines que se muestra arriba ilustra la disposición de los pines para los módulos producidos por el fabricante DIYables.
ESP8266 Código - Tecla única
Pasos R\u00e1pidos
Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:
- Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
- Conecta los componentes tal como se muestra en el diagrama.
- Conecta la placa ESP8266 a tu computadora usando un cable USB.
- Abre Arduino IDE en tu computadora.
- Elige la placa ESP8266 correcta, como (por ejemplo NodeMCU 1.0 (ESP-12E Module)), y su puerto COM correspondiente.
Para determinar el UID de una etiqueta RFID/NFC:
- Carga el código en el ESP8266 y abre el Monitor Serial.
- Acerca la etiqueta al módulo RFID-RC522 y el UID se mostrará en el Monitor Serial.
Una vez que tengas el UID:
- Modifica la línea 18 del código anterior para reflejar el UID. Por ejemplo, reemplaza byte keytagUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; por byte keytagUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
- Sube el código modificado al ESP8266
- Coloca una etiqueta RFID/NFC en el módulo RFID-RC522
- Verifica la salida en el Monitor Serial
- Verifique que la cerradura electromagnética no esté bloqueada.
- Acerca una etiqueta RFID/NFC distinta al módulo RFID-RC522.
- Consulte la salida en el Monitor Serial.
※ Nota:
- Para facilitar las pruebas, el tiempo de desbloqueo se ha establecido en 2 segundos; sin embargo, debe aumentarse para un uso práctico o una demostración.
- Es necesaria la instalación de la biblioteca MFRC522. Para obtener más información, consulte el tutorial ESP8266 - RFID/NFC RC522.
Código ESP8266 - Múltiples teclas
Pensemos en una habitación en la que solo el gerente y el secretario pueden acceder.
En este caso, se requieren dos etiquetas RFID/NFC: una para el gerente y la otra para la secretaria. Los identificadores únicos (UID) de las dos etiquetas deben especificarse en el código.
Repite los mismos pasos que antes y luego acerca cada etiqueta al módulo RFID-RC522. La salida en el Monitor Serial debe aparecer como sigue:
Puedes ampliar el código escrito arriba para incluir tres, cuatro o más etiquetas.
Agregar una pantalla LCD a la cerradura RFID
Podemos añadir opcionalmente una pantalla LCD para mostrar a los usuarios el estado de acceso (p. ej., CONCEDIDO/DENEGADO). Puedes aprender más sobre LCD en tutorial LCD de ESP8266
Diagrama de cableado - Sistema de bloqueo de puertas que utiliza RFID, cerradura de solenoide o cerradura electromagnética y pantalla LCD

This image is created using Fritzing. Click to enlarge image
Tenga en cuenta que en el diagrama de cableado de arriba, se añade un suministro de 5V porque el pin de 5V del ESP8266 no puede proporcionar suficiente energía para el relé y la pantalla LCD al mismo tiempo.
Código ESP8266 - Sistema de cierre de puertas con contraseña usando el módulo RFID RC522, cerradura de solenoide o cerradura electromagnética y pantalla LCD
※ Nota:
La dirección del LCD puede diferir según el fabricante. Usamos 0x27 en nuestro código, tal como lo especifica DIYables.
Añadir un sensor de puerta a la cerradura RFID
En el código mencionado anteriormente, el ESP8266 bloquea la puerta después de un tiempo de espera desde que se desbloquea. Sin embargo, en aplicaciones prácticas, normalmente se añade un sensor de la puerta al sistema. Si el ESP8266 detecta que la puerta está cerrada, bloquea la puerta de inmediato en lugar de esperar a que expire el tiempo de espera.
Para no abrumarte, no incluimos el sensor de puerta en el diagrama de cableado y en el código. En su lugar, dejamos esta parte a tu creatividad. Puedes consultar los tutoriales ESP8266 - Door Sensor y ESP8266 - Door Sensor control Relay para obtener más orientación.
Gestión y almacenamiento de las claves RFID válidas en EEPROM
El código anterior contiene claves RFID válidas (UID) que están incrustadas en el código del ESP8266. Esto significa que si quieres agregar o eliminar claves, tienes que hacer cambios en el código y volver a subirlo al ESP8266, lo cual es inconveniente.
En aplicaciones reales, es necesario gestionar las claves RFID sin tener que modificar y cargar el código cada vez. Para lograrlo, las claves RFID pueden almacenarse en EEPROM en lugar de estar codificadas en el código. En consecuencia, se necesita un método para gestionar fácilmente las claves RFID desde la EEPROM.
Hay dos métodos disponibles para gestionar claves RFID en la EEPROM:
- Llaves RFID como llaves maestras
- Al utilizar una clave RFID como clave maestra ADD, se pueden añadir nuevas claves al sistema. Una vez que el ESP8266 detecta la clave maestra ADD, cambia entre el modo ADD y el modo OPERACIÓN.
- Durante el modo ADD, el ESP8266 añade a la EEPROM todas las claves nuevas que detecta.
- Se emplea un enfoque similar para la clave maestra ELIMINAR y el modo ELIMINAR.
- Utilice comandos ADD/DELETE a través de Serial/Bluetooth/IR
- Los comandos se transmiten a través de Serial/Bluetooth/IR, utilizando herramientas como el Monitor Serial, la aplicación Bluetooth o el controlador IR.
- Los comandos consisten en una directiva (ADD/DELETE) y el UID de la clave RFID.
- Con el fin de mejorar la seguridad, también se debe incluir una contraseña con el comando. El ESP8266 verifica la contraseña para determinar si el comando es válido o no.
Para poder utilizar cualquiera de los dos métodos anteriores, se debe añadir una cantidad considerable de código ESP8266. Para las personas que son nuevas en la programación, esto puede ser una tarea desafiante. Como resultado, este tutorial tiene como objetivo proporcionar una comprensión básica del sistema de cerradura de la puerta sin abrumar a los principiantes con código complejo. Si desea implementar este sistema para fines prácticos, por favor contáctenos a través de nuestro servicio de programación pagado.
Almacenando el historial de acceso en la tarjeta SD
Para hacer un seguimiento del historial de accesos, podría ser necesario guardar el UID de la llave RFID, el estado de acceso (Concedido/Denegado) y la fecha y hora. Como la EEPROM tiene una capacidad insuficiente para almacenar todo el historial, se puede usar una tarjeta SD en su lugar. Puede encontrar orientación sobre este tutorial [ESP8266 - 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.