Circuito de trava de segurança de senha com teclado 4×4 e Arduino

Neste post, vamos construir um circuito de bloqueio de segurança de senha, que pode ser acessado usando uma senha de 6 dígitos. Para ser mais preciso, é uma senha alfanumérica.

Hardware para este projeto

Vamos usar o teclado 4×4, que consiste em 0 a 9 valores decimais, dois caracteres especiais “#” e “*” e alfabetos A a D. A combinação desses caracteres pode ser usada como senha.

O Arduino é o cérebro do sistema, um relé se conecta ao Arduino para ativar e desativar, quando a senha correta é solicitada. Aqui, dois indicadores LED são usados ​​para indicar o status do sistema de travamento.

Se você não está familiarizado com o teclado 4×4, confira meu artigo anterior, que foi discutido extensivamente Noções básicas sobre teclado matricial 4×4

O projeto proposto tem um design de hardware bastante minimalista. Consiste apenas em um teclado, relé, arduino e um par de LEDs, mesmo um novato em arduino pode fazê-lo com facilidade.

A única parte que é um pouco difícil neste projeto é a codificação. Você não precisa se preocupar com o código fornecido neste projeto. O programa deve ser escrito de tal maneira que seja infalível e nenhum seqüestrador possa invadir o sistema.

Mas tenha cuidado se você expor o hardware ou se o hardware deste projeto for facilmente acessível, o relé pode ser facilmente invadido. Portanto, mantenha esse projeto em um chassi bem protegido.

Como funciona

Nota: Um resistor limitador de corrente de 4,7 K deve ser conectado à base do transistor, não mostrado no diagrama.

Agora, vamos ver como esse circuito de bloqueio de segurança de senha do Arduino funciona. Leia atentamente as instruções fornecidas abaixo para operar o circuito.

Diagrama de circuito

Circuito de bloqueio de segurança de senha do Arduino com teclado 4x4

Aqui estão as duas ilustrações de como interagir com o teclado e o Arduino:

1590373440 796 circuito de trava de seguranca de senha com teclado 4x4 1

Resultados do teste de bloqueio de segurança de senha do Arduino

• Quando o circuito está ligado, ele solicita uma senha, você pode vê-lo no monitor serial (o monitor serial não é obrigatório, mas pode ser usado para fins de teste).

• Digite a senha digitada no programa antes de compilá-lo.

• Enquanto pressiona as teclas, o LED verde pisca por um décimo de segundo, indicando que o usuário está pressionando uma tecla.

• Depois de inserir a senha de 6 dígitos, pressione ‘D' no teclado que atua como ‘Enter'. Se sua senha estiver correta, o relé é ativado, o LED verde acende.

• Para desativar o relé, pressione “C” no teclado. Quando isso é feito, o LED verde apaga e o relé apaga. Nenhuma outra tecla pode desativar o relé.

• Se a senha digitada pelo usuário estiver incorreta, o LED vermelho acenderá e o usuário precisará aguardar 30 segundos para entrar na próxima tentativa. Quando os 30 segundos terminam, o LED vermelho apaga, informando ao usuário que o sistema está pronto para receber informações do usuário.

• Quando o relé é desativado após uma ativação bem-sucedida, para ativá-lo novamente, o usuário deve digitar a senha novamente e pressionar “D”.

Aqui está um caso especial:

• Quando a senha correta é inserida, o relé é ativado e, após a desativação bem-sucedida, quando o usuário pressiona qualquer tecla incorreta (não a senha completa), o programa a reconhece como a senha incorreta e o usuário precisa esperar mais 30 segundos. Se for um seqüestrador, atrasará o número de tentativas feitas pelo seqüestrador.

• Quando a tecla correta é pressionada na primeira tentativa, somente então ela permite que a próxima tecla seja inserida. Isso é apenas para o primeiro pressionamento de tecla e não para todos os pressionamentos sucessivos.

• O lema do conceito explicado acima é atrasar o número de tentativas feitas pelo seqüestrador.

Código do programa:

//---------------------------------Program Developed by R.Girish--------------------------//
#include
const byte ROWS = 4;
const byte COLS = 4;
char pass[] = "123ABC"; // 6 digit password only (no less or no more)
int OP=10;
int green=12;
int red=11;
char key1;
char key2;
char key3;
char key4;
char key5;
char key6;
char dumpkey;
char keyOK;
char ok[]="D";
char offkey;
char off[]="C";
int z;
char keys[ROWS][COLS] =
{
{'D','#','0','*'},
{'C','9','8','7'},
{'B','6','5','4'},
{'A','3','2','1'}
};
byte rowPins[ROWS] = {6,7,8,9};  //connect to the row pinouts of the keypad
byte colPins[COLS] = {2,3,4,5}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
Serial.begin(9600);
pinMode(OP,OUTPUT);
pinMode(green,OUTPUT);
pinMode(red,OUTPUT);
digitalWrite(OP,LOW);
}
void loop()
{
top:
Serial.println("");
Serial.println("[Press D = Enter]");
Serial.print("Enter the password: ");
key1=keypad.waitForKey();
if(key1 == pass[0])
{
digitalWrite(green,HIGH);
delay(100);
digitalWrite(green,LOW);
{
z=1;
Serial.print("*");
goto A;

}
}
mais
{
ir para despejo;
}
UMA:
key2 = keypad.waitForKey ();
if (key2 == pass[1])
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
{
z = 2;
Serial.print (“*”);
vá para B;
}
}
mais
{
ir para despejo;
}
SIM:
key3 = keypad.waitForKey ();
if (key3 == pass[2])
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
{
z = 3;
Serial.print (“*”);
vá para C;
}
}
mais
{
ir para despejo;
}
C:
key4 = keypad.waitForKey ();
if (key4 == passar[3])
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
{
z = 4;
Serial.print (“*”);
vá para D;
}
}
mais
{
ir para despejo;
}
RÉ:
key5 = keypad.waitForKey ();
if (key5 == passar[4])
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
{
z = 5;
Serial.print (“*”);
vá para E;
}
}
mais
{
ir para despejo;
}
MIM:
key6 = keypad.waitForKey ();
if (key6 == passar[5])
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
{
z = 6;
Serial.print (“*”);
goto ok;
}
}
mais
{
ir para despejo;
}
ESTÁ BEM:
keyOK = keypad.waitForKey ();
if (keyOK == ok[0])
{
digitalWrite (OP, ALTO);
digitalWrite (verde, ALTO);
Serial.println (“”);
Serial.println (“Relay ativado, pressione ‘C' para desativar o.n”);
}
mais
{
Serial.println (“”);
Serial.println (“Pressione ‘D' para entrar”);
goto ok;
}
fora:
offkey = keypad.waitForKey ();
if (offkey == off[0])
{
digitalWrite (OP, BAIXO);
digitalWrite (verde, BAIXO);
Serial.println (“Relé desativado.n”);
suba as escadas;
}
mais
{
Serial.println (“Pressione ‘C' para desativar”);
vamos para
}
despejo:
sim (z == 0)
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
erro goto;
}
sim (z == 1)
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
erro goto;
}
sim (z == 2)
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
erro goto;
}
sim (z == 3)
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
erro goto;
}
sim (z == 4)
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
erro goto;
}
sim (z == 5)
{
digitalWrite (verde, ALTO);
atraso (100);
digitalWrite (verde, BAIXO);
Serial.print (“*”);
dumpkey = keypad.waitForKey ();
Serial.print (“*”);
erro goto;
}
erro:
Serial.println (“”);
Serial.print (“Senha incorreta, aguarde 30 segundos”);
digitalWrite (vermelho, ALTO);
atraso (10000);
atraso (10000);
atraso (10000);
digitalWrite (vermelho, BAIXO);
suba as escadas;
}
// ——————————— Programa desenvolvido por R.Girish ——— —————– //

NOTA: Para definir a senha: char pass[] = “123ABC”; // somente senha de 6 dígitos (nem menos nem mais)
Altere “123ABC” com sua própria senha, entre aspas.

Certifique-se de que a senha definida no programa tenha APENAS 6 dígitos, não mais ou menos, mas exatamente 6 dígitos. Caso contrário, o programa não funcionará corretamente.

Se você tiver mais dúvidas sobre o circuito de bloqueio de segurança de senhas explicado, sinta-se à vontade para publicá-lo através de seus comentários



FONTE

Nota: Este foi traduzido do Inglês para português (auto)

Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…

Veja na FONTE até ser revisado o post.

Status (Não Revisado)

Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!


Veja mais

Axtudo
Axtudohttps://www.axtudo.com/
“Solidários, seremos união. Separados uns dos outros seremos pontos de vista. Juntos, alcançaremos a realização de nossos propósitos.” (Bezerra de Menezes) Axtudo Onde a união faz a força !

Comentários

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

Compartilhe

Buscadores de energia

Circuito do micro transmissor FM para escuta – Espião FALCON

O FALCON é um super micro transmissor de FM de reduzidas dimensões que pode Ser utilizado em diversas aplicações interessantes, como por exemplo a...

Circuito de estetoscópio Bluetooth

Em situações tão críticas quanto uma pandemia de COVID-19, o médico é a equipe mais suscetível de se infectar com o vírus de um...

Ouça bandas UHF e SHF (GHz) com este circuito simples

Este circuito simples de dois chips pode ser usado para capturar e ouvir frequências na faixa de GHz. Os receptores projetados para cobrir frequências tão...

Circuito digital de velas de natal

O post discute um circuito de timer de 25 LEDs com avanço seqüencial que pode ser iniciado em 1º de dezembro, para que cada...

Como funcionam os portões lógicos

Nesta publicação, entenderemos de maneira abrangente o que são portas lógicas e como elas funcionam. Examinaremos a definição básica, o símbolo, a tabela da...

Veja mais em :

Asterisco na barra de título do Bloco de Notas no Windows 10

No outro dia, enquanto escrevia algo no bloco de notas, notei algo novo. O bloco de notas exibia um asterisco na barra de título...

Como desinstalar ou reinstalar o Cortana no Windows 10

Uma pequena porcentagem dos usuários do Windows 10 costuma usar a Cortana, pois não é tão poderosa quanto seus assistentes digitais pessoais oferecidos nos...

Drivers de impressora HP para Windows 10/8

Muitos de vocês já podem ter migrado para o Windows 1/8 atualizando o Windows 7 ou executando uma instalação limpa. Alguns de vocês podem...

HDDScan para Windows

A Seagate e a Western Digital (WD) oferecem ferramentas de diagnóstico gratuitas para testar a condição física do disco rígido. Enquanto o Seagate SeaTools...

Download grátis do TeamViewer 12 para Windows 10

Com mais de 210 milhões de usuários em todo o mundo, o TeamViewer é um dos softwares de controle remoto mais populares. Embora existam...

Últimos Artigos:

Presidente Jair Messias Bolsonaro sanciona mais ajuda a micro e pequenos empresários do Brasil.

Twitter do nosso Presidente https://twitter.com/jairbolsonaro #JairBolsonaro2022 #NossoPresidenteJairBolsonaro #Presidente2020 FONTE-Duração do vídeo: 00:02:10

COMO SAIR DAS DÍVIDAS E LIMPAR SEU NOME (pra sempre)

As vezes ficamos angustiados por conta de dívidas que só crescem enquanto nossa renda não acompanha esse crescimento e acabamos ficando com nome sujo...

MARAVILHOSO !! BOLO FORMIGUEIRO COM CALDA DE CHOCOLATE | SIMPLES E FÁCIL | RECEITAS DA CRIS

A receitinha de hoje é um delicioso bolo formigueiro com cobertura de calda de chocolate !!! Fica muito saboroso e é muito fácil de...

LINDT VS KOPENHAGEN – A BATALHA | EXPERIMENTANDO | TPM por Ju Ferraz

E aí, quem vence numa batalha tão épica quanto essa? Qual o melhor chocolate: LINDT ou KOPENHAGEN? Será que você seria capaz de escolher...

ESSA SOBREMESA GELADA FICOU INCRÍVEL, VOCÊS PRECISAM FAZER | SEM LEITE CONDENSADO | Gabriel Freitas

ESSA SOBREMESA GELADA FICOU INCRÍVEL, VOCÊS PRECISAM FAZER | SEM LEITE CONDENSADO | Gabriel Freitas Oi pessoal, tudo bem com vocês? FONTE DO VIDEO-Duração do...