Circuito de bloqueo de seguridad con contraseña con teclado 4 × 4 y Arduino

Circuito de bloqueo de seguridad con contraseña con teclado 4 × 4 y Arduino

En esta publicación vamos a construir un circuito de bloqueo de seguridad con contraseña, al que se puede acceder mediante una contraseña de 6 dígitos. Para ser más precisos, es una contraseña alfanumérica.



Hardware para este proyecto

Vamos a utilizar un teclado 4x4, que consta de 0 a 9 valores decimales, dos caracteres especiales '#' y '*' y alfabetos de la A a la D. La combinación de estos caracteres se puede utilizar como contraseña.

El Arduino es el cerebro del sistema, un relé está interconectado con Arduino para activar y desactivar, cuando se ordena la contraseña correcta. Aquí se utilizan dos LED indicadores para indicar el estado del sistema de bloqueo.





Si no está familiarizado con el teclado 4x4, consulte mi artículo anterior, que analizó exhaustivamente conceptos básicos del teclado matricial 4x4

El proyecto propuesto tiene un diseño de hardware bastante minimalista. Solo consta de un teclado, relé, arduino y un par de LED, incluso un novato en arduino puede lograrlo con facilidad.



La única parte que es un poco difícil en este proyecto es la codificación, no debe preocuparse por el código que se proporciona en este proyecto. El programa debe estar escrito de tal manera que sea infalible y ningún secuestrador pueda piratear el sistema.

Pero, tenga cuidado si expone el hardware o el hardware de este proyecto es de fácil acceso, el relé puede piratearse con facilidad. Así que mantenga este proyecto en un chasis bien protegido.

Cómo funciona

Nota: Debe conectarse una resistencia limitadora de corriente de 4,7 K a la base del transistor, que no se muestra en el diagrama.

Ahora veamos cómo funciona este circuito de bloqueo de seguridad de contraseña de Arduino, lea atentamente las instrucciones que se dan a continuación para operar el circuito.

Diagrama de circuito

Circuito de bloqueo de seguridad de contraseña de Arduino con teclado 4x4

Aquí están las dos ilustraciones de cómo conectar el teclado y Arduino:

Resultados de la prueba de bloqueo de seguridad de contraseña de Arduino

• Cuando el circuito está encendido, solicita una contraseña, puede verla en el monitor en serie (el monitor en serie no es obligatorio, pero se puede utilizar para realizar pruebas).

• Ingrese la contraseña que ingresó en el programa antes de compilarlo.

• Mientras presiona las teclas, el LED verde parpadea durante una décima de segundo, lo que indica que el usuario presiona alguna tecla.

• Una vez que ingresó la contraseña de 6 dígitos, presione 'D' en el teclado que actúa como 'Enter'. Si su contraseña es correcta, el relé se activa, el LED verde se enciende.

• Para desactivar el relé, presione 'C' en el teclado. Cuando se hace esto, el LED verde se apaga y el relé se desactiva. Ninguna otra tecla puede desactivar el relé.

• Si la contraseña ingresada por el usuario es incorrecta, entonces el LED rojo se enciende y el usuario debe esperar 30 segundos para ingresar el siguiente intento. Cuando pasan los 30 segundos, el LED rojo se apaga, informando al usuario que el sistema está listo para recibir información del usuario.

• Cuando el relé se desactiva después de una activación exitosa, para volver a activar el relé, el usuario debe ingresar la contraseña nuevamente y presionar 'D'.

Aquí hay un caso especial:

• Cuando se ingresa la contraseña correcta, el relé se activa y después de la desactivación exitosa, cuando el usuario pulsa una tecla incorrecta (no la contraseña completa), el programa reconoce como contraseña incorrecta y el usuario debe esperar otros 30 segundos. Si se trataba de un secuestrador, retrasará el número de intentos realizados por el secuestrador.

• Cuando se presiona la tecla correcta en el primer intento, solo entonces permite ingresar la siguiente tecla. Esto es solo para la primera pulsación de tecla y no para todas las pulsaciones sucesivas.

• El lema del concepto explicado anteriormente es retrasar el número de intentos realizados por el secuestrador.

Código de programa:

|_+_|

}
}
demás
{
ir al vertedero
}
A:
key2 = teclado.waitForKey ()
si (clave2 == pasar [1])
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
{
z = 2
Serial.print ('*')
ir a B
}
}
demás
{
ir al vertedero
}
B:
key3 = teclado.waitForKey ()
si (key3 == pasar [2])
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
{
z = 3
Serial.print ('*')
ir a C
}
}
demás
{
ir al vertedero
}
C:
key4 = teclado.waitForKey ()
si (clave4 == pasar [3])
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
{
z = 4
Serial.print ('*')
ir a D
}
}
demás
{
ir al vertedero
}
D:
key5 = teclado.waitForKey ()
si (clave5 == pasar [4])
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
{
z = 5
Serial.print ('*')
ir a E
}
}
demás
{
ir al vertedero
}
ES:
key6 = teclado.waitForKey ()
si (clave6 == pasar [5])
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
{
z = 6
Serial.print ('*')
ir bien
}
}
demás
{
ir al vertedero
}
OK:
keyOK = teclado.waitForKey ()
si (keyOK == ok [0])
{
escritura digital (OP, ALTA)
digitalWrite (verde, ALTO)
Serial.println ('')
Serial.println ('Relé activado, presione' C 'para Deactivate.n')
}
demás
{
Serial.println ('')
Serial.println ('Presione' D 'para entrar')
ir bien
}
apagado:
offkey = teclado.waitForKey ()
if (offkey == off [0])
{
escritura digital (OP, BAJA)
digitalWrite (verde, BAJO)
Serial.println ('Relé desactivado.n')
ve arriba
}
demás
{
Serial.println ('Presione' C 'para desactivar')
irse
}
vertedero:
si (z == 0)
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
Ir a error
}
si (z == 1)
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
Ir a error
}
si (z == 2)
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
Ir a error
}
si (z == 3)
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
Ir a error
}
si (z == 4)
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
Ir a error
}
si (z == 5)
{
digitalWrite (verde, ALTO)
retraso (100)
digitalWrite (verde, BAJO)
Serial.print ('*')
dumpkey = teclado.waitForKey ()
Serial.print ('*')
Ir a error
}
error:
Serial.println ('')
Serial.print ('Contraseña incorrecta, espere 30 segundos')
digitalWrite (rojo, ALTO)
retraso (10000)
retraso (10000)
retraso (10000)
digitalWrite (rojo, BAJO)
ve arriba
}
// --------------------------------- Programa desarrollado por R.Girish --------- ----------------- //

NOTA: Para establecer la contraseña: char pass [] = '123ABC' // Solo contraseña de 6 dígitos (ni menos ni más)
Cambie '123ABC' con su propia contraseña, entre comillas.

Asegúrese de que la contraseña establecida en el programa sea SOLAMENTE de 6 dígitos, ni menos ni más, pero exactamente 6 dígitos. De lo contrario, el programa no funcionará correctamente.

Si tiene más dudas con respecto al circuito de bloqueo de seguridad de contraseña explicado, no dude en publicarlas a través de sus comentarios.




Artículo anterior: Circuito LED Sunrise Sunset Simulator Siguiente artículo: Circuito controlador de motor Bluetooth