ESP8266 - Cerradura de Puerta con Teclado Numérico
Este tutorial explica cómo construir un sistema de cerradura de puerta con contraseña utilizando ESP8266, un teclado numérico y una cerradura de solenoide o cerradura electromagnética. A continuación se explica cómo funcionará el sistema de cerradura de la puerta:
- Los usuarios introducen la contraseña a través del teclado.
- ESP8266 verifica la contraseña.
- Si la contraseña introducida es válida, ESP8266 desactiva la cerradura de solenoide para desbloquear la puerta. La puerta permanece desbloqueada durante un tiempo específico (p. ej. 20 segundos) antes de volver a cerrarse automáticamente.
- El código de ESP8266 admite varias contraseñas.

Para hacerlo más fácil, el tutorial está dividido en varios pasos, de fácil a difícil:
- Parte 1: Un sistema sencillo de cerradura de puerta con teclado que utiliza Arduino Nano, un teclado y una cerradura solenoide o electromagnética.
- Parte 2: (Opcional) Añadir soporte para múltiples contraseñas.
- Parte 4: (Opcional) Añadir un sonido de pitido cuando se presiona el teclado.
- Parte 5: (Opcional) Añadir un sensor de puerta para la cerradura con teclado.
- Parte 6: (Opcional) Gestionar y almacenar las contraseñas válidas en la EEPROM interna del Arduino Nano.
- Parte 7: (Opcional) Guardar el historial de accesos en una tarjeta SD.
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 teclado numérico, la cerradura de solenoide y la cerradura electromagnética
Tanto la cerradura de solenoide como la cerradura electromagnética se utilizan para bloquear/desbloquear la puerta. Difieren principalmente entre sí en términos de diseño mecánico. El cableado al ESP8266 es similar. El código del ESP8266 para controlarlos es el mismo.
Si no está familiarizado con el teclado numérico, la cerradura de solenoide, la cerradura electromagnética (conexiones de pines, cómo funciona, cómo programar...), los siguientes tutoriales pueden ayudarle a aprender:
Diagrama de Cableado
- Diagrama de cableado con ESP8266, teclado numérico y cerradura de 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.
- Diagrama de cableado con ESP8266, teclado numérico y cerradura electromagnética

This image is created using Fritzing. Click to enlarge image
ESP8266 Código - Cerradura de Puerta con Teclado Numérico
Pasos R\u00e1pidos
Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:
- Consulta el tutorial de cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
- Conecta los componentes como se muestra en el diagrama.
- Conecta la placa ESP8266 a tu computadora usando un cable USB.
- Abre el IDE de Arduino en tu computadora.
- Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM correspondiente.
- Conecta un cable USB entre el ESP8266 y tu PC.
- Abre el IDE de Arduino, selecciona la placa y el puerto correctos.
- Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
- Busca “keypad” y ubica la biblioteca keypad creada por Mark Stanley y Alexander Brevig.
- Luego, presiona el botón Instalar para completar la instalación de la biblioteca keypad.

- Copia el código anterior y ábrelo con el IDE de Arduino.
- Haz clic en el botón Subir en el IDE de Arduino para enviar el código al ESP8266.
- Abre el Monitor Serial.
- Luego pulsa las teclas 12345, seguidas del símbolo #.
- Luego pulsa las teclas 1234ABC, seguidas del símbolo #.
- Verifica el estado de la lengüeta de la cerradura durante 20 segundos.
- Consulta el resultado en el Monitor Serial.
Explicación del código
Las contraseñas válidas están predefinidas en el código ESP8266. Se utiliza una cadena para almacenar la contraseña ingresada por los usuarios, a la que se denomina cadena de entrada. En el teclado, dos teclas (* y #) se utilizan para fines especiales: borrar la contraseña y finalizar la entrada de la contraseña. El sistema opera de la siguiente manera:
- Aparte de dos teclas especiales, si se presiona otra tecla, se añade a la cadena de entrada.
- Si se presiona *, se borra la cadena de entrada. Puedes usarlo para iniciar o reiniciar la introducción de la contraseña.
- Si se presiona #:
- El ESP8266 compara cadena de entrada con las contraseñas predefinidas. Si coincide con una de las contraseñas predefinidas, el ESP8266 controla el relé para desbloquear la puerta.
- Independientemente de si la contraseña es correcta o no, el ESP8266 borra la cadena de entrada para la siguiente entrada.
Código ESP8266 - Múltiples teclas
Añadiendo el sonido de pitido cuando se pulsa el teclado.
Podemos hacer que la cerradura parezca que responde añadiendo un zumbador piezoeléctrico para generar un pitido corto cada vez que se pulse una tecla en el teclado.
Es bastante sencillo añadirlo. Así que dejamos esta parte a tu creatividad. Puedes consultar el tutorial ESP8266 - Keypad Beep para obtener más orientación.
Añadir un sensor de puerta a la cerradura con teclado numérico
En el código mencionado anteriormente, el ESP8266 bloquea la puerta después de un tiempo de espera desde que se desbloqueó. Sin embargo, en aplicaciones prácticas, normalmente se añade un sensor de puerta al sistema. Si el ESP8266 detecta que la puerta está cerrada, bloquea la puerta de inmediato en lugar de esperar el tiempo de espera.
Para no agobiarte, no incluimos el sensor de puerta en el diagrama de cableado y el código. En su lugar, dejamos esta parte a tu creatividad. Puedes consultar los tutoriales ESP8266 - Sensor de Puerta y ESP8266 - Sensor de Puerta con Control de Relé para obtener más orientación.
Gestión y almacenamiento de las contraseñas válidas en EEPROM
El código anterior tiene contraseñas válidas (UID) que están incrustadas de forma fija en el código del ESP8266. Esto significa que si quieres agregar o eliminar contraseñas, debes hacer cambios en el código y volver a cargarlo en el ESP8266, lo cual es inconveniente.
En aplicaciones reales, es necesario gestionar contraseñas sin tener que modificar y subir el código cada vez. Para lograrlo, las contraseñas pueden almacenarse en EEPROM en lugar de estar codificadas en el código. Por consiguiente, se necesita un método para gestionar fácilmente las contraseñas desde la EEPROM.
Hay dos métodos disponibles para gestionar contraseñas en la EEPROM:
- Usar contraseñas maestras
- Al utilizar una contraseña como contraseña maestra ADD, se pueden agregar nuevas contraseñas al sistema. Una vez que el ESP8266 detecta la contraseña 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 contraseñas nuevas que detecta.
- Un enfoque similar se utiliza para la contraseña maestra DELETE y el modo DELETE.
- 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 la contraseña.
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. Por ello, 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, póngase en contacto con nosotros a través de nuestro servicio de programación de pago.
Almacenando el historial de accesos en la tarjeta SD
Para llevar un registro del historial de accesos, podría ser necesario guardar el estado de acceso (Concedido/Denegado) y la fecha y hora. Ya que la EEPROM no tiene capacidad suficiente para almacenar todo el historial, se puede usar una tarjeta SD en su lugar. Puedes encontrar orientación sobre esto ESP8266 - Registrar datos con marca de tiempo en la tarjeta SD tutorial.
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.