Neste projeto de sistema de atendimento baseado em RFID, vamos explicar como podemos contar o atendimento automaticamente usando cartões RFID. 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 rastrear automaticamente as pessoas. Aqui contaremos o atendimento de uma pessoa autorizada utilizando RFID.
Podemos dividir o sistema de atendimento completo em diferentes seções: seção do leitor, seção de controle, seção do motorista e seção do display. A função de cada seção é mostrada no 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 de 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 possui um código de caracteres de 12 dígitos em uma bobina. Este RFID está funcionando a uma taxa de transmissão de 9600 bps. RFID usa eletroímã para transferir dados de leitor para etiqueta ou etiqueta para leitor.
Seção de controle:
O microcontrolador 8051 é usado para controlar o processo completo deste projeto. Aqui, usando o 8051, estamos recebendo dados RFID e enviando status ou mensagens para o LCD.
Seção de exibição:
Um LCD 16x2 é usado neste projeto para exibir mensagens nele.
Seção do motorista:
Esta seção tem um driver de motor L293D para abrir o portão e um buzzer com um transistor NPN BC547 para indicações.
Trabalhando
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 dados ou informações definidas. Se os dados forem combinados com os dados definidos, o microcontrolador incrementa o atendimento por um dos responsáveis pelo tag e, se a correspondência não ocorrer, o microcontrolador mostra o cartão inválido no LCD e a campainha toca continuamente por algum tempo.
O diagrama do circuito para o projeto do sistema de atendimento com graves RFID é mostrado acima. No circuito, o LCD é conectado no modo de quatro bits com o microcontrolador 8051. 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 são conectados diretamente no pino P1.4, P1.5, P1.6 e P1.7 da porta 1. O driver do motor é conectado no pino número P2.4 e P2.5 da PORTA. e a campainha está conectada em P2.6 na PORT2.
Explicação do programa
Para programar para o sistema de atenuação baseado em RFID, primeiro precisamos incluir arquivos de cabeçalho e definir o pino de entrada e saída e as variáveis.
#incluir
Depois disso, precisamos criar 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 freqüência de cristal de 11,0592 MHz. Estamos monitorando o cadastro do SBUF para recebimento de 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 um está marcado nele. Armazenamos essa string em uma matriz e, em seguida, combinamos com os dados de matriz predefinidos.
lcdcmd (1); lcdstring ("Coloque seu cartão:"); lcdcmd (0xc0); i = 0; para (i = 0; i <12; i ++) rfid = rxdata (); rfid = '\ 0'; lcdcmd (1);
Se ocorrer uma correspondência, o controlador aumenta o atendimento em um. Caso contrário, o alarme sonoro é executado continuamente e o LCD mostra o cartão inválido.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {contagem1 ++; lcdcmd (1); lcdstring ("Presença"); lcdcmd (0xc0); lcdstring ("Registrado"); atraso (200); lcdcmd (1); lcdstring ("Aluno1"); lcdcmd (0xc0); lcdstring ("Attnd. No.:"); sprintf (resultado, "% d", contagem1); lcdstring (resultado);
Layout PCB
Aqui está o layout PCB para o sistema de atendimento baseado em RFID: