Neste projeto, vamos desenvolver um sistema de segurança baseado em RFID e teclado numérico. Este projeto é implementado usando o microcontrolador 8051. A Tecnologia RFID (Identificação e Detecção por Radiofrequência) é comumente usada em escolas, faculdades, escritórios e estações para vários fins para autenticar pessoas automaticamente com etiquetas RFID válidas. Aqui, verificaremos a tag RFID, juntamente com uma senha associada à tag, para proteger o sistema.
Trabalhando
Podemos dividir o sistema de segurança completo em várias seções - seção do leitor, teclado, seção de controle, seção do driver e seção do monitor. O funcionamento de todo o sistema e a função de cada seção podem ser compreendidos através do diagrama de blocos abaixo.
Seção do leitor: esta seção contém um RFID, que é um dispositivo eletrônico que tem duas partes - uma é o leitor RFID e a outra é a etiqueta ou cartão RFID. Quando colocamos a etiqueta RFID perto do leitor RFID, ele lê os dados da etiqueta em série. A etiqueta RFID que usamos aqui tem um código de caracteres de 12 dígitos ou número de série. Este RFID está trabalhando a uma taxa de transmissão de 9600 bps.
Teclado: aqui usamos um teclado de matriz 4x4 para inserir a senha do sistema.
Seção de controle: o microcontrolador 8051 é usado para controlar o processo completo deste sistema de segurança baseado em RFID. Aqui, usando o 8051, estamos recebendo dados RFID e enviando status ou mensagens para o LCD.
Seção de exibição: LCD 6x2 é usado neste projeto para exibir mensagens nele. Aqui você pode ver o tutorial: Interface de LCD com microcontrolador 8051
Seção do driver: Esta seção tem um driver de motor L293D para abrir o portão e uma campainha com um transistor NPN BC547 para indicações.
Quando uma pessoa coloca sua etiqueta RFID no leitor RFID, então o RFID lê os dados da etiqueta e os envia para o microcontrolador 8051 e então o microcontrolador compara esses dados com os dados predefinidos. Se os dados corresponderem aos dados predefinidos, o microcontrolador pede a senha e, após inserir a senha, o microcontrolador compara a senha com a senha predefinida. Se a porta de correspondência de senha abrir, de outra forma, o LCD mostrará Acesso negado e a campainha começará a apitar por algum tempo.
Diagrama de Circuito e Explicação
Conforme mostrado no diagrama do circuito do sistema de segurança RFID acima, o LCD 16x2 é conectado no modo de quatro bits com o microcontrolador. Os pinos RS, RW e EN do LCD são conectados diretamente na PORTA 1 pino número P1.0, P1.1 e P1.2. Os pinos D4, D5, D6 e D7 do LCD estão conectados diretamente no pino P1.4, P1.5, P1.6 e P1.7 da porta 1. O driver do motor está conectado na PORTA número de pinos P2.4 e P2.5. E a campainha está conectada em P2.6 na PORT2. E o teclado está conectado em PORT0. A linha do teclado é conectada em P0.4 - P0.7 e as colunas são conectadas em P0.0 - P0.3.
Explicação do programa
Ao programar o microcontrolador 8051 para o sistema de segurança baseado em RFID, em primeiro lugar incluímos arquivos de cabeçalho e definimos o pino de entrada e saída e as variáveis.
#incluir
Em seguida, defina os pinos para o módulo do teclado.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit row1 = P0 ^ 4; sbit linha 2 = P0 ^ 5; sbit row3 = P0 ^ 6; sbit row4 = P0 ^ 7;
Depois disso, criamos uma função para atraso.
void delay (int itime) {int i, j; para (i = 0; i
Então criamos alguma função para LCD e inicializamos a função LCD, vazio lcd_init (vazio) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Aqui temos algumas funções que usamos em nosso programa. Nesse caso, configuramos a taxa de transmissão de 9600bps na frequência de cristal de 11,0592 MHz e, para recebermos, estamos monitorando o registrador SBUF para receber dados.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; return ch; }
Depois disso, no programa principal, inicializamos o lcd e o Uart e então lemos a saída do RFID quando qualquer tag é ativada. Armazenamos essa string em uma matriz e, em seguida, combinamos com os dados da matriz predefinida. E então combine a senha.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {teclado (); if (strncmp (pass, "4201", 4) == 0) {aceitar (); lcdcmd (1); lcdstring ("Acesso concedido"); lcdcmd (0xc0);
Se ocorrer correspondência, o controlador abre o portão, caso contrário, a campainha começa e o LCD mostra o cartão inválido.