Arduino Nano - Cerradura de puerta con teclado numérico
Este tutorial te enseña cómo construir un sistema de cerradura de puerta con contraseña utilizando Arduino Nano, un teclado numérico, una cerradura de solenoide o una cerradura electromagnética y una pantalla LCD. A continuación se muestra cómo funcionará el sistema de cerradura de la puerta:
- Los usuarios introducirán una contraseña usando el teclado numérico.
- El Arduino Nano comprobará si la contraseña es correcta.
- Si la contraseña introducida es correcta, el Arduino Nano desactivará la cerradura de solenoide para desbloquear la puerta. La puerta permanecerá desbloqueada durante un tiempo establecido (p. ej., 20 segundos) antes de que vuelva a bloquearse automáticamente.
Para facilitarlo, el tutorial está dividido en varios pasos, de fácil a difícil:
- Parte 1: Un sistema sencillo de cerradura de puerta con teclado numérico, Arduino Nano y una cerradura de solenoide o electromagnética.
- Parte 2: (Opcional) Ampliar para soportar múltiples contraseñas
- Parte 3: (Opcional) Añadir una pantalla LCD al sistema de cerradura de puerta con teclado.
- Parte 4: (Opcional) Añadir un sonido de pitido cuando se pulse el teclado.
- Parte 5: (Opcional) Añadir un sensor de puerta al sistema de 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, la cerradura electromagnética y la pantalla LCD.
Tanto la cerradura de solenoide como la cerradura electromagnética se utilizan para bloquear y desbloquear la puerta. Principalmente difieren entre sí en términos de diseño mecánico. El cableado para Arduino Nano es similar. El código del Arduino Nano para controlarlos es el mismo.
Si no estás familiarizado con el teclado numérico, la cerradura de solenoide, la cerradura electromagnética y la pantalla LCD (diagrama de pines, cómo funciona, cómo programar...), los siguientes tutoriales pueden ayudarte a aprender:
Diagrama de Cableado
- Diagrama de cableado con Arduino Nano, teclado numérico y cerradura de solenoide

This image is created using Fritzing. Click to enlarge image
- Diagrama de cableado con Arduino Nano, teclado numérico y cerradura electromagnética

This image is created using Fritzing. Click to enlarge image
Código de Arduino Nano - Cerradura de Puerta con Teclado Numérico
※ Nota:
La dirección del LCD puede variar según el fabricante. En nuestro código, usamos 0x27 tal como lo especifica DIYables.
Pasos R\u00e1pidos
- Conecta un cable USB al Arduino Nano y a la PC.
- Abre el IDE de Arduino y selecciona la placa y el puerto adecuados.
- Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
- Busca “keypad”, y localiza la biblioteca keypad creada por Mark Stanley y Alexander Brevig.
- Presiona el botón Instalar para instalar la biblioteca keypad.

- Copie el código anterior y ábralo con el IDE de Arduino.
- Haga clic en el botón Subir para cargar el código al Arduino Nano.
- Abra el Monitor Serial.
- Presione las teclas 12345 seguidas del símbolo #.
- Luego presione las teclas 1234 seguidas del símbolo #.
- Verifique el estado de la lengüeta de la cerradura durante 20 segundos.
- Verifique el resultado en el Monitor Serial.
Explicación del código
Las contraseñas válidas están predefinidas en el código de Arduino Nano. Se utiliza una cadena para almacenar la contraseña ingresada por los usuarios, a la que se refiere como cadena de entrada. En el teclado, dos teclas (* y #) se utilizan para fines especiales: borrar la contraseña y terminarla. El sistema funciona de la siguiente manera:
- A excepción de las dos teclas especiales, si se pulsa cualquier otra tecla, se añade a la cadena de entrada.
- Si se pulsa *, se borra la cadena de entrada. Esto puede usarse para comenzar o reiniciar la introducción de la contraseña.
- Si se pulsa #:
- Arduino Nano compara la cadena de entrada con las contraseñas predefinidas. Si coincide con alguna de las contraseñas predefinidas, Arduino Nano controla el relé para desbloquear la puerta.
- Independientemente de si la contraseña es correcta o no, Arduino Nano borra la cadena de entrada para la siguiente entrada.
Código de Arduino Nano - Múltiples teclas
Añadir pantalla LCD a la cerradura RFID
Podemos añadir opcionalmente una pantalla LCD para mostrar el estado a los usuarios (p. ej. CONCEDIDO/DENEGADO).
Diagrama de cableado - Sistema de cierre de puertas con teclado, 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 anterior, tanto el relé como la pantalla LCD pueden no funcionar o funcionar de forma inestable debido a una alimentación insuficiente. Recomendamos encarecidamente utilizar una fuente de alimentación externa tanto para el relé como para la pantalla LCD. Consulte el siguiente diagrama de cableado para obtener orientación:

This image is created using Fritzing. Click to enlarge image
Ver La mejor forma de alimentar Arduino Nano y otros componentes.
Código de Arduino Nano - Cerradura de Puerta con Teclado
※ Nota:
La dirección del LCD puede variar según el fabricante. Utilizamos 0x27 en nuestro código, según lo indicado por DIYables.
Agregar el sonido de pitido cuando se presiona el teclado numérico.
Podemos hacer que la cerradura de la puerta parezca más receptiva añadiendo un zumbador piezoeléctrico para generar un pitido corto cada vez que se pulsa una tecla del teclado numérico.
Es bastante sencillo añadirlo. Así que dejamos esta parte a tu creatividad. Puedes consultar el tutorial Arduino Nano - Keypad Beep para obtener más orientación.
Agregar un sensor de puerta a la cerradura con teclado numérico
En el código mencionado anteriormente, el Arduino Nano bloquea la puerta después de un período de tiempo desde el desbloqueo. Sin embargo, en aplicaciones prácticas, normalmente se añade un sensor de puerta al sistema. Si el Arduino Nano detecta que la puerta está cerrada, la bloquea de inmediato en lugar de esperar al tiempo de espera.
Para no agobiarte, no incluimos el sensor de la puerta en el diagrama de cableado y en el código. En su lugar, dejamos esta parte a tu creatividad. Puedes consultar los tutoriales Arduino Nano - Sensor de Puerta y Arduino Nano - Control del Relé del Sensor de Puerta 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 codificadas en el código del Arduino Nano. Esto significa que si quieres añadir o eliminar contraseñas, tienes que hacer cambios en el código y volver a subirlo al Arduino Nano, lo cual es inconveniente.
En aplicaciones reales, es necesario gestionar las contraseñas sin tener que modificar y subir el código cada vez. Para lograrlo, las contraseñas pueden almacenarse en la EEPROM en lugar de estar codificadas en el código. En consecuencia, se necesita un método para gestionar fácilmente las contraseñas desde la EEPROM.
Existen 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 Arduino Nano detecta la contraseña maestra ADD, éste cambia entre el modo ADD y el modo OPERACIÓN.
- Durante el modo ADD, el Arduino Nano añade cualquier nueva contraseña que detecta a la EEPROM.
- Se utiliza un enfoque similar para la contraseña maestra DELETE y el modo DELETE.
- Usar 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 de Arduino Nano. 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 cerraduras para puertas sin abrumar a los principiantes con código complejo. Si desea implementar este sistema con fines prácticos, póngase en contacto con nosotros a través de nuestro servicio de programación pagado.
Almacenando el historial de accesos en la tarjeta SD
Para hacer un seguimiento del historial de accesos, podría ser necesario guardar el estado de acceso (GRANTED/DENIED) y la fecha y la hora. Dado que la EEPROM tiene una capacidad insuficiente para almacenar todo el historial, se puede utilizar una tarjeta SD en su lugar. Puede encontrar orientación sobre esto en el 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.