V tem projektu bomo razvili RFID in varnostni sistem, ki temelji na tipkovnici. Ta projekt se izvaja z uporabo mikrokrmilnika 8051. Tehnologija RFID (identifikacija in zaznavanje radijskih frekvenc) se pogosto uporablja v šolah, fakultetah, pisarnah in na postajah za različne namene za samodejno preverjanje pristnosti ljudi z veljavnimi oznakami RFID. Tu bomo preverili oznako RFID in geslo, povezano z oznako, da zaščitimo sistem.
Delo
Celotni varnostni sistem lahko razdelimo na različne odseke - odsek za bralnike, tipkovnico, nadzorni odsek, odsek za gonilnike in zaslon. Delovanje celotnega sistema in vlogo vsakega odseka je mogoče razumeti skozi spodnji blokovni diagram.
Oddelek za bralnik: Ta odsek vsebuje RFID, ki je elektronska naprava, ki ima dva dela - eden je RFID čitalec, drugi pa RFID oznaka ali kartica. Ko RFID oznako postavimo blizu RFID čitalnika, ta zaporedno bere podatke o oznakah. Oznaka RFID, ki smo jo tukaj uporabili, ima 12-mestno kodo ali serijsko številko. Ta RFID deluje s hitrostjo prenosa 9600 bps.
Tipkovnica: Tukaj smo uporabili matrično tipkovnico 4x4 za vnos gesla v sistem.
Nadzorni odsek: mikrokrmilnik 8051 se uporablja za nadzor celotnega postopka tega varnostnega sistema, ki temelji na RFID. Tukaj z uporabo 8051 prejemamo podatke RFID in pošiljamo stanje ali sporočila na LCD.
Prikaz odseka: V tem projektu se za prikaz sporočil uporablja LCD 6x2. Tu si lahko ogledate vadnico: Povezovanje LCD-jev z mikrokrmilnikom 8051
Vozniški odsek: V tem odseku je gonilnik motorja L293D za odpiranje vrat in brenčalo s tranzistorjem BC547 NPN za indikacije.
Ko oseba da RFID oznako v RFID čitalnik, RFID prebere podatke oznake in jih pošlje mikrokrmilniku 8051, nato pa mikrokrmilnik te podatke primerja z vnaprej določenimi podatki. Če se podatki ujemajo z vnaprej določenimi podatki, potem mikrokrmilnik zahteva geslo in po vnosu gesla mikrokrmilnik primerja geslo z vnaprej določenim geslom. Če se vrata za ujemanje gesel odprejo, se na LCD-prikazovalniku prikaže Dostop zavrnjen in zvočni signal začne kratek čas piskati.
Shema vezja in razlaga
Kot je prikazano na zgornji shemi vezja varnostnega sistema RFID, je LCD 16x2 v štirih bitnih načinih povezan z mikrokrmilnikom. Zatiči RS, RW in EN LCD so neposredno povezani s številkami PORT 1 pin P1.0, P1.1 in P1.2. Zatiči D4, D5, D6 in D7 LCD-ja so neposredno priključeni na nožice P1.4, P1.5, P1.6 in P1.7 priključka 1. Gonilnik motorja je povezan s številkami PORT-pin P2.4 in P2.5. Zvočni signal je priključen na P2.6 na PORT2. Tipkovnica je priključena na PORT0. Vrstice tipkovnice so povezane pri P0.4 - P0.7, stolpci pa pri P0.0 - P0.3.
Pojasnilo programa
Med programiranjem mikrokrmilnika 8051 za varnostni sistem, ki temelji na RFID, najprej vključimo glave in določimo vhodni in izhodni pin in spremenljivke.
#include
Nato določite nožice za modul tipkovnice.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit vrstica1 = P0 ^ 4; sbit vrstica2 = P0 ^ 5; sbit vrstica3 = P0 ^ 6; sbit vrstica4 = P0 ^ 7;
Po tem smo ustvarili funkcijo za zamudo.
zamuda praznine (int itime) {int i, j; za (i = 0; i
Nato naredimo nekaj funkcije za LCD in inicializiramo funkcijo lcd, void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Tu imamo nekaj funkcij, ki smo jih uporabili v našem programu. V tem smo konfigurirali hitrost prenosa 9600 bps na kristalno frekvenco 11,0592 MHz in za sprejem sprejemnikov spremljamo SBUF register za sprejemanje podatkov.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; vrnitev ch; }
Po tem smo v glavnem programu inicializirali lcd in Uart in nato prebrali izhod RFID, ko je nanj pripeljana katera koli oznaka. Ta niz shranimo v matriko in se nato ujema z vnaprej določenimi podatki matrike. In nato ujemite geslo.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {tipkovnica (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring ("Dostop odobren"); lcdcmd (0xc0);
Če pride do ujemanja, krmilnik odpre vrata, sicer se zažene zvočni signal in LCD prikaže neveljavno kartico.