- Lista de componentes
- Diagrama de circuito para cerradura de puerta con teclado Arduino
- Código Arduino para cerradura de puerta con teclado digital
- Montaje y prueba de cerradura de puerta con teclado Arduino
A menudo, necesitamos asegurar una habitación en nuestra casa u oficina (quizás un laboratorio secreto de dexter) para que nadie pueda acceder a la habitación sin nuestro permiso y garantizar la protección contra el robo o la pérdida de nuestros accesorios y activos importantes. Hay tantos tipos de sistemas de seguridad presentes en la actualidad, pero detrás de la escena, para la autenticación todos se basan en huellas dactilares, escáner de retina, escáner de iris, identificación de rostro, escáner de lengua, lector de RFID, contraseña, pin, patrones, etc. Fuera de todas las soluciones el de bajo costo es usar una contraseña o un sistema basado en PIN. Entonces, en este proyecto, he construido una cerradura de puerta con teclado Arduino que se puede montar en cualquiera de sus puertas existentes para asegurarlas con una contraseña digital. Anteriormente, también hemos construido otras cerraduras de puertas interesantes que se enumeran a continuación.
- Cerradura de puerta Arduino RFID
- Cerradura de puerta con solenoide Arduino
- Bloqueo de código digital Raspberry Pi
- 555 Cerradura de puerta electrónica con temporizador
Antes de construir nuestro proyecto de bloqueo de puertas con contraseña, primero debemos recopilar los componentes necesarios y luego seguir adelante y seguir el proceso de construcción paso a paso.
Lista de componentes
- Arduino Uno / Pro / Mini o placa personalizada con microcontrolador Atmega 328p
- LCD de 16 x 2 (pantalla de cristal líquido)
- Teclado matricial 4 x 3 o 4 x 4 para Arduino
- Servo motor
- Armario de puerta impreso en 3D / armario de puerta personalizado
- Componentes adicionales para la fuente de alimentación del cargador móvil de 1 amperio y 5 voltios
- Cajas de plástico de 4 '' / 6 '', cables de puente, pernos de tuerca, carcasa de plástico, etc.
Diagrama de circuito para cerradura de puerta con teclado Arduino
El diagrama de circuito completo para nuestro proyecto de cerradura de puerta con teclado digital basado en Arduino se muestra a continuación.
En primer lugar, partimos del cerebro de este proyecto que es la placa Arduino UNO. La placa Arduino está conectada a una pantalla LCD y un servomotor. El servomotor se utiliza para empujar (bloquear) o tirar (desbloquear) el pestillo de la puerta. Se requiere una pantalla LCD de 16 x 2 para mostrar el mensaje de Arduino, 16 x 2 significa que tiene 16 columnas y 2 filas. Si es completamente nuevo en los módulos de pantalla LCD de 16x2, puede consultar este tutorial de Interfaz LCD Arduino para obtener más información al respecto.
Aquí, estoy usando un servomotor Towerpro SG90 de 5v para hacer nuestro armario de puerta personalizado. Es un servomotor de nivel básico y funciona bien con Arduino sin ningún circuito de conducción o módulo externo. Además, el costo de este servomotor es muy inferior, por lo que puede permitirse comprarlo fácilmente. También puede consultar este tutorial de Arduino Servo Motor Control para obtener más información sobre el servomotor y cómo funciona. Conecte el servomotor con el pin D9 de Arduino Digital y con una fuente de alimentación de 5 voltios. Este servomotor tiene un total de 3 líneas de entrada (GND, + 5V y LÍNEA DE SEÑAL).
En este proyecto, he usado un teclado de matriz de 4 x 4 (pero la parte del teclado de 4 x 4 no está disponible en fritzing para hacer esta representación gráfica), pero no se preocupe, ya que el teclado de matriz de 4 x 3 también funciona bien con mi codificación. Necesitamos un teclado para ingresar la contraseña y bloquear manualmente nuestro casillero de puerta personalizado. Consta de 16 teclas (interruptor suave) 4 teclas en Filas (R1, R2, R3, R4) y 4 teclas en Columnas (C1, C2, C3, C4) cuando se presiona una tecla, establece una conexión entre las filas correspondientes y columnas. La siguiente tabla muestra cómo conectar su Arduino con el teclado.
Teclado | Arduino |
Pin 1 (fila 1) | Pin digital 1 |
Pin 2 (fila 2) | Pin digital 2 |
Pin 3 (fila 3) | Pin digital 3 |
Pin 4 (fila 4) | Pin digital 4 |
Pin 5 (columnas 5) | Pin digital 5 |
Pin 6 (columnas 6) | Pin digital 6 |
Pin 7 (columnas 7) | Pin digital 7 |
Código Arduino para cerradura de puerta con teclado digital
El código completo de bloqueo de puerta de Arduino se puede encontrar en la parte inferior de esta página. Puede cargar el código directamente, pero se recomienda leer los párrafos siguientes para comprender cómo funciona el código. Además, es importante asegurarse de haber agregado la siguiente biblioteca de teclado a su IDE de Arduino para compilar el código correctamente. Para hacer eso, simplemente abra el enlace a continuación y descargue el archivo ZIP. Luego, en su IDE de Arduino, vaya a Sketch -> Incluir biblioteca -> Agregar biblioteca ZIP y busque el archivo que acaba de descargar.
- Biblioteca de teclado Arduino
Después de insertar todos los archivos de encabezado y biblioteca, asigne todos los pines para LCD y defina la longitud de la contraseña y establezca la posición inicial del servo en 0. Después de eso, tome un tipo de datos "char" para declarar el número que puede contenerlo, incluido carácter nulo.
//#incluir
Con esta pieza de código (char Master = "123456";) - bajo el Char Master, declaro la contraseña de la cerradura de la puerta, luego asigno el número de filas y columnas en el teclado y también declaro keyMaps y conecto con filas y columnas. Bajo la configuración vacía, inicialice el pin D9 de la señal del servo, estado del servo cerrado e imprima el nombre del proyecto / dispositivo / empresa con 3 segundos de retraso en el tiempo de la pantalla LCD para iniciar el dispositivo.
configuración vacía () {myservo.attach (9); ServoClose (); lcd. comienzo (16, 2); lcd.print ("Puerta Arduino"); lcd.setCursor (0, 1); lcd.print ("- Ver proyecto--"); retraso (3000); lcd.clear (); }
Bajo la función de bucle, existe la condición simple if-else. Según el estado (se bloquea automáticamente), imprima "La puerta está cerrada" con 3 segundos de retraso y el servo gira a la posición de cierre, los datos de la puerta cuentan como 1; de lo contrario, el casillero de la puerta permanece abierto y el conteo de datos 0, el servo abierto gira a la posición 0 grados a 180 grados y para cerrarlo pasa de 180 a 0. A continuación se muestran las funciones de apertura y cierre del servo.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// va de 0 grados a 180 grados // en pasos de 1 grado myservo.write (pos); // le dice al servo que vaya a la posición en la variable 'pos' delay (15); // espera 15ms a que el servo alcance la posición}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// va de 180 grados a 0 grados myservo.write (pos); // le dice al servo que vaya a la posición en la variable 'pos' delay (15); // espera 15ms a que el servo alcance la posición}}
Escriba la posición del servo con 15 segundos de retraso para alcanzar la posición del servo. Bajo la función de apertura anulada, imprima en la pantalla LCD "Ingresar contraseña", luego la condición especifica que la contraseña ingresada debe ser la misma que la clave personalizada, dentro de este cuerpo, los datos contados y almacenan caracteres en la matriz de datos, la contraseña aumentada e ingresada impresa en la pantalla LCD si la la longitud de los datos (número de clave) y la contraseña de entrada coinciden con el Data Master (donde están presentes las claves predefinidas). Luego, como una acción, borrar la pantalla LCD, servoaccionamiento, imprimir en la pantalla LCD “La puerta está abierta” y el contador de datos se restablece a 0.
Si la clave de entrada no coincide con Data Master, como una acción en la pantalla LCD, borre la impresión en la pantalla LCD "Contraseña incorrecta" para notificar con 1 segundo de retraso y permanece en su posición de bloqueo con el contador de datos establecido en 1 y continuar este proceso en un bucle..
if (data_count == Password_Lenght - 1) // si el índice de la matriz es igual al número de caracteres esperados, compare los datos con el maestro {if (! strcmp (Datos, Maestro)) // igual a (strcmp (Datos, Maestro) == 0) {lcd.clear (); ServoOpen (); lcd.print ("La puerta está abierta"); puerta = 0; } else {lcd.clear (); lcd.print ("Contraseña incorrecta"); retraso (1000); puerta = 1; } borrar datos(); }
Montaje y prueba de cerradura de puerta con teclado Arduino
Ahora, coloque todo en una caja de plástico de 4 pulgadas / 6 pulgadas y enciéndalo con un cargador móvil, alinee todo bien con la carcasa. Idealmente, podría haber usado la impresión 3D para ensamblar mi cerradura, pero después de diseñar mis archivos, descubrí que la impresión 3D es muy costosa, así que primero arreglé el servo, luego conecté el casillero deslizante normal con mi servo usando una placa de metal y lo cubrí con fibra de vidrio, aunque funciona bien, es menos seguro.
Si desea más seguridad, entonces debe imprimir un modelo de cerradura de puerta en 3D que funcione internamente con este servo. Puede descargar los archivos STL necesarios desde el enlace a continuación e imprimirlos en 3D si tiene acceso a una impresora 3D.
Descargar archivos STL para impresión 3D
Los archivos de diseño también se muestran en la siguiente imagen.
Al comienzo del proyecto, en el momento en que lo encendemos por primera vez, debemos dar el nombre del proyecto (también puede mostrar el nombre de la empresa) para que se vea inteligente y exclusivo como un dispositivo comercial (como puede ver en la imagen de abajo).
Con 3 segundos de retraso, cierre rápidamente la puerta y verifique directamente en la pantalla el estado de la cerradura de la puerta como se muestra en la imagen que se muestra a continuación.
Cuando bloquea manualmente la puerta presionando la tecla “#”, primero muestra La puerta está cerrada durante 1 segundo y luego muestra Ingresar contraseña. Por otro lado, cuando la puerta se desbloquea ingresando la contraseña correcta, muestra Puerta abierta.
Si la puerta permanece en condición de desbloqueo, se muestra: La puerta está abierta siempre que cierre la puerta manualmente de acuerdo con el código. Le di el código y puede personalizar la configuración cambiando el parámetro de visualización del código según sea necesario. También puede consultar el funcionamiento completo con el video vinculado al final de esta página.