In questo progetto del sistema di presenze basato su RFID, ti spiegheremo come possiamo contare automaticamente le presenze utilizzando le carte RFID. La tecnologia RFID (Radio Frequency Identification and Detection) è comunemente utilizzata nelle scuole, nei college, negli uffici e nelle stazioni per vari scopi per tenere automaticamente traccia delle persone. Qui conteremo le presenze di una persona autorizzata utilizzando l'RFID.
Possiamo dividere il sistema di presenza completo in diverse sezioni: sezione lettore, sezione controllo, sezione driver e sezione display. Il ruolo di ciascuna sezione è mostrato nel diagramma a blocchi seguente:
Sezione Reader
Questa sezione contiene un RFID, che è un dispositivo elettronico composto da due parti: una è un lettore RFID e l'altra è un tag o una scheda RFID. Quando mettiamo il tag RFID vicino al lettore RFID, questo legge i dati dei tag in modo seriale. Il tag RFID ha un codice di 12 cifre in una bobina. Questo RFID funziona a una velocità di trasmissione di 9600 bps. RFID utilizza l'elettromagnete per trasferire i dati dal lettore all'etichetta o dall'etichetta al lettore.
Sezione di controllo:
Il microcontrollore 8051 viene utilizzato per controllare l'intero processo di questo progetto. Qui, utilizzando 8051, stiamo ricevendo dati RFID e inviando stato o messaggi a LCD.
Sezione display:
In questo progetto viene utilizzato un LCD 16x2 per visualizzare i messaggi su di esso.
Sezione driver:
In questa sezione è presente un driver motore L293D per l'apertura del cancello e un buzzer con transistor BC547 NPN per le indicazioni.
Lavorando
Quando una persona inserisce il proprio tag RFID nel lettore RFID, l'RFID legge i dati del tag e lo invia al microcontrollore 8051, quindi il microcontrollore confronta questi dati con dati o informazioni definiti. Se i dati sono abbinati a dati definiti, il microcontrollore incrementa la presenza di una persona del tag e se non si verifica la corrispondenza, il microcontrollore mostra la scheda non valida sul display LCD e il cicalino suona continuamente per un po 'di tempo.
Lo schema del circuito per il progetto del sistema di presenza dei bassi RFID è mostrato sopra. Nel circuito, l'LCD è collegato in modalità a quattro bit con il microcontrollore 8051. I pin RS, RW e EN dell'LCD sono collegati direttamente ai pin numero P1.0, P1.1 e P1.2 della PORTA 1. I pin D4, D5, D6 e D7 dell'LCD sono collegati direttamente ai pin P1.4, P1.5, P1.6 e P1.7 della porta 1. Il driver del motore è collegato al numero di pin PORT P2.4 e P2.5. e il buzzer è collegato a P2.6 a PORT2.
Spiegazione del programma
Per programmare il sistema di partecipazione basato su RFID, dobbiamo prima includere file di intestazione e definire pin e variabili di input e output.
#includere
Dopodiché dobbiamo creare una funzione per il ritardo.
void delay (int itime) {int i, j; per (i = 0; i
Quindi creiamo alcune funzioni per LCD e inizializziamo la funzione LCD,
void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Qui abbiamo alcune funzioni che abbiamo utilizzato nel nostro programma. In questo abbiamo configurato una velocità di trasmissione di 9600 bps a una frequenza di cristallo di 11,0592 MHz. Stiamo monitorando il registro SBUF per la ricezione dei dati.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; return ch; }
Dopo questo nel programma principale, abbiamo inizializzato lcd e UART e quindi leggiamo l'output di RFID quando c'è un tag su di esso. Memorizziamo questa stringa in un array e quindi abbiniamo i dati dell'array predefiniti.
lcdcmd (1); lcdstring ("Posiziona la tua carta:"); lcdcmd (0xc0); i = 0; for (i = 0; i <12; i ++) rfid = rxdata (); rfid = '\ 0'; lcdcmd (1);
Se si verifica una partita, il controllore aumenta le presenze di uno. Altrimenti il cicalino del segnale acustico funziona continuamente e il display LCD mostra la scheda non valida.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {count1 ++; lcdcmd (1); lcdstring ("Presenza"); lcdcmd (0xc0); lcdstring ("Registrato"); ritardo (200); lcdcmd (1); lcdstring ("Student1"); lcdcmd (0xc0); lcdstring ("Attnd. No.:"); sprintf (risultato, "% d", count1); lcdstring (risultato);
Layout PCB
Ecco il layout PCB per il sistema di presenza basato su RFID: