In questo progetto, svilupperemo un sistema di sicurezza basato su RFID e tastiera. Questo progetto è implementato utilizzando il microcontrollore 8051. La tecnologia RFID (Radio Frequency Identification and Detection) è comunemente utilizzata in scuole, college, uffici e stazioni per vari scopi per autenticare automaticamente le persone con tag RFID validi. Qui controlleremo il tag RFID, insieme a una password associata al tag, per proteggere il sistema.
Lavorando
Possiamo dividere l'intero sistema di sicurezza in varie sezioni: sezione Reader, Keypad, sezione Control, sezione Driver e sezione Display. Il funzionamento dell'intero sistema e il ruolo di ciascuna sezione possono essere compresi attraverso lo schema a blocchi sottostante.
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, esso legge i dati dei tag in modo seriale. Il tag RFID che abbiamo usato qui ha un codice di 12 caratteri o un numero di serie. Questo RFID funziona a una velocità di trasmissione di 9600 bps.
Tastiera: qui abbiamo utilizzato una tastiera a matrice 4x4 per inserire la password nel sistema.
Sezione di controllo: il microcontrollore 8051 viene utilizzato per controllare l'intero processo di questo sistema di sicurezza basato su RFID. Qui, utilizzando l'8051, stiamo ricevendo dati RFID e inviando messaggi di stato o messaggi a LCD.
Sezione display: LCD 6x2 viene utilizzato in questo progetto per visualizzare i messaggi su di esso. Qui puoi vedere il tutorial: Interfacciamento LCD con microcontrollore 8051
Sezione Driver: Questa sezione ha un driver motore L293D per l'apertura del cancello e un buzzer con un transistor BC547 NPN per le indicazioni.
Quando una persona inserisce il suo tag RFID nel lettore RFID, l'RFID legge i dati del tag e lo invia al microcontrollore 8051 e quindi il microcontrollore confronta questi dati con i dati predefiniti. Se i dati sono abbinati a dati predefiniti, il microcontrollore richiede la password e, dopo aver immesso la password, il microcontrollore confronta la password con la password predefinita. Se il cancello di corrispondenza della password si aprirà, altrimenti il display LCD mostrerà Accesso negato e il cicalino inizierà a suonare per qualche tempo.
Schema del circuito e spiegazione
Come mostrato nello schema elettrico del sistema di sicurezza RFID sopra, l'LCD 16x2 è collegato in modalità a quattro bit con il microcontrollore. 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. E la tastiera è collegata a PORT0. Le righe della tastiera sono collegate a P0.4 - P0.7 e le colonne sono collegate a P0.0 - P0.3.
Spiegazione del programma
Durante la programmazione del microcontrollore 8051 per il sistema di sicurezza basato su RFID, prima di tutto includiamo file di intestazione e definiamo pin e variabili di input e output.
#includere
Quindi definire i pin per il modulo della tastiera.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit riga1 = P0 ^ 4; sbit row2 = P0 ^ 5; sbit row3 = P0 ^ 6; sbit row4 = P0 ^ 7;
Successivamente abbiamo creato 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 e la funzione per la ricezione sta 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 viene inserito un tag. Memorizziamo questa stringa in un array e quindi abbiniamo con i dati dell'array predefiniti. E poi abbina la password.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {keypad (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring ("Accesso concesso"); lcdcmd (0xc0);
Se si verifica una corrispondenza, il controller apre il cancello, altrimenti il cicalino si avvia e il display LCD mostra la scheda non valida.