- Lista de componentes
- Diagrama de circuito para a fechadura do teclado Arduino
- Código Arduino para fechadura digital do teclado
- Montagem e teste do travamento da porta do teclado Arduino
Muitas vezes, precisamos proteger uma sala em nossa casa ou escritório (talvez um laboratório de dexter secreto) para que ninguém possa acessar a sala sem nossa permissão e garantir proteção contra roubo ou perda de nossos acessórios e ativos importantes. Existem tantos tipos de sistemas de segurança presentes hoje, mas nos bastidores, para autenticação, todos eles se baseiam em impressão digital, scanner de retina, scanner de íris, identificação de rosto, scanner de língua, leitor RFID, senha, pino, padrões, etc. o de baixo custo é usar uma senha ou sistema baseado em pin. Portanto, neste projeto, construí uma fechadura com teclado Arduino que pode ser montada em qualquer uma das portas existentes para protegê-las com uma senha digital. Anteriormente, também construímos outras fechaduras de porta interessantes que estão listadas abaixo.
- Arduino RFID fechadura de porta
- Arduino Solenóide Fechadura
- Raspberry Pi Digital Code Lock
- 555 Temporizador para fechadura eletrônica
Antes de construir nosso projeto de travamento de porta com senha, primeiro, precisamos coletar os componentes necessários e, em seguida, seguir em frente e seguir o processo de construção passo a passo.
Lista de componentes
- Arduino Uno / Pro / Mini ou placa personalizada usando o microcontrolador Atmega 328p
- 16 x 2 LCD (tela de cristal líquido)
- Teclado de matriz 4 x 3 ou 4 x 4 para Arduino
- Servo motor
- Fechadura da porta impressa em 3D / fechadura personalizada
- Componentes adicionais para fonte de alimentação de carregador móvel de 1 Amp 5 Volt
- 4 '' / 6 '' caixas de plástico, fios de jumper, parafusos de porca, caixa de plástico, etc.
Diagrama de circuito para a fechadura do teclado Arduino
O diagrama de circuito completo para nosso projeto de bloqueio de porta com teclado digital baseado em Arduino é mostrado abaixo.
Em primeiro lugar, partimos do cérebro deste projeto que é a placa Arduino UNO. A placa Arduino é conectada a um LCD e um servo motor. O servo motor é usado para empurrar (travar) ou puxar (destravar) a trava da porta. Um LCD 16 x 2 é necessário para exibir a mensagem pelo Arduino, 16 x 2 significa que ele tem 16 números de colunas e 2 números de linhas. Se você é totalmente novo para os Módulos de Display LCD 16x2, pode verificar este tutorial de Interface LCD do Arduino para aprender mais sobre ele.
Aqui, estou usando um servo motor 5v Towerpro SG90 para fazer nosso armário de porta personalizado. É um servo motor de nível básico e funciona bem com o Arduino sem nenhum circuito de direção ou módulo externo. Além disso, o custo deste servo motor é muito menor, então você pode facilmente comprá-lo. Você também pode verificar este tutorial de controle do servo motor Arduino para aprender mais sobre o servo motor e como ele funciona. Conecte o servo motor com o pino D9 do Arduino Digital e com uma fonte de alimentação de 5 volts. Este servo motor possui um total de 3 linhas de entrada (GND, + 5V e LINHA DE SINAL).
Neste projeto, usei um teclado de matriz 4 x 4 (mas a parte do teclado 4 x 4 não está disponível para fazer esta representação gráfica), mas não se preocupe, pois o teclado de matriz 4 x 3 também funciona bem com minha codificação. Precisamos de um teclado para entrada de senha e travar manualmente nosso armário personalizado. É composto por 16 teclas (soft switch) 4 teclas nas linhas (R1, R2, R3, R4) e 4 teclas nas colunas (C1, C2, C3, C4) quando uma tecla pressionada, estabelece uma conexão entre as linhas correspondentes e colunas. A tabela abaixo mostra como conectar seu Arduino com o teclado.
Teclado | Arduino |
Pino 1 (linha 1) | Pin digital 1 |
Pino 2 (linha 2) | Pino digital 2 |
Pino 3 (linha 3) | Pino digital 3 |
Pino 4 (linha 4) | Pino digital 4 |
Pino 5 (colunas 5) | Pino digital 5 |
Pino 6 (colunas 6) | Pino digital 6 |
Pino 7 (colunas 7) | Pino digital 7 |
Código Arduino para fechadura digital do teclado
O código completo da fechadura da porta do Arduino pode ser encontrado na parte inferior desta página. Você pode carregar o código diretamente, mas é recomendável ler os parágrafos abaixo para entender como o código funciona. Além disso, é importante certificar-se de que adicionou a seguinte biblioteca de teclado ao IDE do Arduino para compilar o código com êxito. Para isso basta abrir o link abaixo e baixar o arquivo ZIP. Em seguida, em seu IDE Arduino, navegue até Sketch -> Incluir Biblioteca -> Add.ZIP Library e navegue até o arquivo que você acabou de baixar.
- Biblioteca do teclado Arduino
Após inserir todos os arquivos de cabeçalho e biblioteca, atribua todos os pinos para LCD e defina o comprimento da senha e defina a posição inicial do servo para 0. Depois disso, pegue um tipo de dados “char” para declarar o número que pode contê-lo incluindo o caractere nulo.
//#incluir
Com este pedaço de código (char Master = "123456";) - sob o Char Master, eu declaro a senha da fechadura da porta, em seguida, atribuo o número de linhas e colunas no teclado e também declaro keyMaps e conectar com linhas e colunas. Na configuração void, inicialize o servo sinal pino D9, servo status fechado e imprima o nome do projeto / dispositivo / empresa com 3 segundos de atraso no tempo de LCD de inicialização do dispositivo.
void setup () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Porta do Arduino"); lcd.setCursor (0, 1); lcd.print ("- Veja o projeto--"); atraso (3000); lcd.clear (); }
Na função de loop, a condição if-else simples está lá. De acordo com o status (é bloqueado automaticamente), imprima "Porta está fechada" com 3 segundos de atraso e o servo gira para a posição fechada, os dados da porta contam como 1, caso contrário o armário da porta permanece aberto e os dados contam 0, o servo aberto gire para a posição 0 graus a 180 graus e para fechar vai de 180 a 0. As funções de abertura e fechamento do servo são mostradas abaixo.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// vai de 0 graus a 180 graus // em passos de 1 grau myservo.write (pos); // diz ao servo para ir para a posição na variável 'pos' delay (15); // espera 15ms para o servo atingir a posição}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// vai de 180 graus para 0 graus myservo.write (pos); // diz ao servo para ir para a posição na variável 'pos' delay (15); // espera 15ms para que o servo alcance a posição}}
Escreva a posição do servo com 15 segundos de atraso para atingir a posição do servo. Na função void open, imprima no LCD “Enter Password” e então a condição especifica que a senha inserida deve ser a mesma da chave personalizada, dentro deste corpo os dados são contados e armazena o caractere no array de dados, incrementado e a senha de entrada impressa no LCD se o o comprimento dos dados (número da chave) e a senha de entrada correspondem ao Data Master (onde as chaves predefinidas estão presentes). Em seguida, como uma ação LCD limpa, servo drive, imprima no LCD “A porta está aberta” e o contador de dados é zerado para 0.
Se a chave de entrada não coincidir com o mestre de dados, como uma ação no LCD, limpe a impressão no LCD "Senha errada" para notificar com 1 segundo de atraso e permanecer em sua posição de bloqueio com o contador de dados definido como 1 e continuar este processo em um loop.
if (data_count == Password_Lenght - 1) // se o índice da matriz for igual ao número de caracteres esperados, compare os dados com o mestre {if (! strcmp (Data, Master)) // igual a (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("A porta está aberta"); porta = 0; } else {lcd.clear (); lcd.print ("Senha errada"); atraso (1000); porta = 1; } apagar os dados(); }
Montagem e teste do travamento da porta do teclado Arduino
Agora, coloque tudo em uma caixa de plástico de 4 polegadas / 6 polegadas e ligue-a com um carregador móvel, alinhe tudo muito bem usando a caixa. Idealmente, eu poderia ter usado a impressão 3D para montar minha fechadura, mas depois de projetar meus arquivos, descobri que a impressão 3D é muito cara, então apenas consertei o servo primeiro, depois conectei o armário de slides normal ao meu servo usando uma placa de metal e cobri com fibra de vidro, embora esteja funcionando bem, é menos seguro.
Se você quiser mais segurança, terá que imprimir um modelo 3D de fechadura que funcione internamente com este servo. Você pode baixar os arquivos STL necessários no link abaixo e imprimi-los em 3D se tiver acesso a uma impressora 3D.
Baixe arquivos STL para impressão 3D
Os arquivos do projeto também são mostrados na imagem abaixo.
No início do projeto, no momento em que o ligamos pela primeira vez, precisamos fornecer o nome do projeto (você pode exibir o nome da empresa também) para que pareça inteligente e exclusivo como um dispositivo comercial (como você pode ver em a imagem abaixo).
Com 3 segundos de atraso, tranque rapidamente a porta e verifique diretamente no display o status da fechadura da porta conforme mostrado na imagem abaixo.
Quando você trava manualmente a porta pressionando a tecla “#”, primeiro mostra A porta está fechada por 1 segundo e, em seguida, exibe Digite a senha. Por outro lado, quando a porta é destrancada digitando a senha correta, ele mostra Porta aberta.
Se a porta permanecer destravada, será exibido - A porta está aberta contanto que você bloqueie a porta manualmente de acordo com a codificação. Eu dei o código e você pode personalizar as configurações alterando o parâmetro de exibição do código conforme necessário. Você também pode verificar o trabalho completo com o vídeo no link na parte inferior desta página.