- Componentes usados:
- Conectando o teclado 4x4 com Raspberry Pi usando multiplexação:
- Descrição do circuito:
- Explicação de trabalho:
- Explicação de programação:
A segurança é uma grande preocupação em nosso dia a dia, e as travas digitais se tornaram uma parte importante desses sistemas de segurança. Existem muitos tipos de tecnologias disponíveis para proteger nosso lugar, como sistemas de segurança baseados em PIR, sistema de segurança baseado em RFID, alarmes de segurança de laser, sistemas de biomatriz etc.
Anteriormente, construímos a fechadura digital com senha usando Arduino e 8051, aqui vamos construir esta fechadura digital usando Raspberry Pi com senha definida pelo usuário. Uma vez definida a senha, o usuário só pode acessar a porta com a senha correta.
Se você não está familiarizado com o Raspberry Pi, criamos uma série de tutoriais para aprender o Raspberry Pi, com interface com todos os componentes básicos e alguns projetos simples para começar, verifique.
Componentes usados:
- Raspberry Pi (com cartão SD inicializado)
- Módulo de teclado
- Buzzer
- LCD 16x2
- Pote de 10k
- Pacote de resistor de 10k (pull-up)
- CONDUZIU
- Resistor 1k
- Tábua de pão
- Carrinho de CD / DVD como portão
- Energia 5 volts
- Motorista L293D
- Bateria de 12 volts
- Fios de conexão
Conectando o teclado 4x4 com Raspberry Pi usando multiplexação:
Neste circuito, usamos a Técnica de Multiplexação para fazer a interface do teclado para inserir a senha no sistema. Aqui estamos usando o teclado multiplex 4x4 com 16 teclas. Normalmente, se quisermos usar 16 chaves, precisamos de 16 pinos para conexão ao Arduino, mas na técnica de multiplexação, precisamos de apenas 8 pinos para fazer a interface de 16 chaves. É uma forma inteligente de fazer a interface com um módulo de teclado. Aprenda mais sobre a técnica de Multiplexação e seu funcionamento nesta Fechadura Digital usando 8051.
A técnica de multiplexação é uma maneira muito eficiente de reduzir o número de pinos usados com o microcontrolador para fornecer entrada ou senha ou números. Basicamente, essa técnica é usada de duas maneiras - uma é a varredura de linha e a outra é a varredura de coluna. Se usarmos a biblioteca do teclado (#include
Mas aqui neste projeto, implementamos uma forma abreviada de codificação para o mesmo teclado, sem usar a biblioteca de teclado. Por favor, veja na seção de programação abaixo.
Descrição do circuito:
O circuito desta fechadura digital Raspberry Pi é muito simples e contém Raspberry Pi 3, módulo de teclado, campainha, carrinho de DVD / CD como portão e LCD. Aqui, o Raspberry Pi controla o processo completo, como pegar o módulo do teclado do formulário de senha, comparar as senhas, acionar a campainha, abrir / fechar o portão e enviar o status para o display LCD. O teclado é usado para inserir a senha. Buzzer é usado para indicações e conduzido por transistor NPN embutido. O LCD é usado para exibir status ou mensagens nele.
Os pinos de coluna do módulo do teclado são conectados diretamente ao pino GPIO 22, 23, 24, 25 e os pinos de linha são conectados a 21, 14, 13, 12 dos pinos wringPi do Raspberry Pi. Um LCD 16x2 é conectado ao raspberry Pi no modo de 4 bits. Controlo de pino do LCD RS, RW e En são directamente ligado a GPIO pino 11, GND e 10. Os dados dos pinos D4-D7 estão ligados a pinos GPIO 6, 15, 4 e 1. Um vibrador está ligado a GPIO pino 8. E Motor Driver L293D é conectado no GPIO pino 28 e 29 do Raspberry Pi. Uma bateria de 12 volts é conectada no pino 8 do L293D em relação ao aterramento.
Explicação de trabalho:
Trabalhar neste projeto é simples. Quando o usuário executa o código no Raspberry Pi, o LCD mostra uma mensagem de boas-vindas e depois mostra “A- Input Password” e na segunda linha B- Change Passkey ”. Agora o usuário pode selecionar sua escolha pressionando A e B no teclado.
Agora, se o usuário quiser abrir o portão, ele precisa pressionar 'A' no teclado e o sistema solicitará a senha. A senha padrão é “1234”. Agora o usuário deve inserir a senha e após este sistema verificará a senha, se é válida ou não:
1. Se o usuário inserir a senha correta, o sistema abrirá o portão.
2. Se o usuário digitar a senha incorreta, o sistema enviará um comando para a campainha emitir um bipe e exibirá “Acesso negado” no LCD.
Agora, suponha que o usuário deseja alterar a senha, então ele precisa pressionar 'B' no teclado e, em seguida, será solicitado ao usuário a “Senha atual” ou “Senha atual”. Agora o usuário precisa inserir a senha atual, o sistema verifica se está correto e executa uma das tarefas fornecidas.
1. Se o usuário inserir a senha correta, o sistema pedirá “Nova senha” e agora o usuário pode alterar a senha inserindo a nova senha.
2. E se o usuário inserir a senha errada, o sistema acionará a campainha e mostrará “Senha errada: no LCD.
Agora o usuário precisa repetir todo o processo novamente para alterar a senha.
Basicamente, abrir e fechar o portão nada mais é do que girar um motor no sentido horário e anti-horário para abrir e fechar a porta. Para um projeto pequeno, você pode simplesmente adicionar um motor DC para abrir e fechar a porta. Também podemos usar servo ou motor de passo, mas precisamos alterar o código de acordo.
Além disso, você pode usar uma fechadura eletrônica adequada (facilmente disponível online) no lugar do CD Trolley. Possui um eletroímã que mantém a porta travada quando não há passagem de corrente pela fechadura (circuito aberto), e quando alguma corrente passa por ela, a fechadura é destravada e a porta pode ser aberta. O código será alterado de acordo, verifique também esta revisão do projeto compartilhado: Arduino RFID Door Lock
Explicação de programação:
A programação é muito semelhante ao Arduino. A função Arduino usa classes, mas aqui fizemos esse código, usando programação em C, sem classes. Também instalamos uma biblioteca wiringPi para GPIOs.
Agora, primeiro de tudo, precisamos incluir as bibliotecas necessárias e, em seguida, definir os pinos para LCD, campainha, LED e motor.
#incluir
Depois disso, defina os pinos para as linhas e colunas do teclado e defina a matriz para armazenar a senha e os números do teclado.
char pass; char pass1 = {'1', '2', '3', '4'}; int n = 0; linha char = {21, 14, 13, 12}; char col = {22, 23, 24, 25}; char num = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Depois disso, escrevemos algumas funções para conduzir o LCD:
A função void lcdcmd é usada para enviar comandos ao LCD e a função void write é usada para enviar dados ao LCD.
A função void print é usada para enviar string ao LCD.
void print (char * str) {while (* str) {write (* str); str ++; }}
A função void setCursor é usada para definir a posição do cursor no LCD.
void setCursor (int x, int y) {int set = 0; se (y == 0) conjunto = 128 + x; se (y == 1) conjunto = 192 + x; lcdcmd (conjunto); }
A função void clear () é usada para limpar o LCD e void buzzer () é usada para emitir um bipe.
As funções void gate_open (), void gate_stop () e void gate_close () são usadas para conduzir o Gate (CD Trolley)
void gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, ALTO); atraso (2000); } void gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); atraso (2000); } void gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); atraso (2000); }
A função fornecida é usada para inicializar o LCD no modo de 4 bits.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
A função void keypad () é usada para fazer a interface do módulo do teclado com Raspberry Pi com um 'método curto'.
teclado vazio () {int i, j; int x = 0, k = 0; atraso (2000); while (k <4) {para (i = 0; i <4; i ++) {digitalWrite (col, LOW); para (j = 0; j <4; j ++) {if (digitalRead (linha) == 0) {setCursor (x, 1);…………………
Verifique todas as funções no código completo abaixo, o código é fácil e autoexplicativo.