În acest proiect, vom dezvolta un sistem de securitate bazat pe tastatură și RFID. Acest proiect este implementat prin utilizarea microcontrolerului 8051. Tehnologia RFID (identificarea și detectarea frecvenței radio) este utilizată în mod obișnuit în școli, colegii, birouri și stații în diverse scopuri pentru autentificarea automată a persoanelor cu etichete RFID valide. Aici vom verifica eticheta RFID, împreună cu o parolă asociată etichetei, pentru a securiza sistemul.
Lucru
Putem împărți sistemul complet de securitate în diverse secțiuni - secțiunea Reader, tastatură, secțiunea Control, secțiunea Driver și secțiunea Afișaj. Lucrarea întregului sistem și rolul fiecărei secțiuni poate fi înțeleasă prin diagrama bloc de mai jos.
Secțiunea Reader: Această secțiune conține un RFID, care este un dispozitiv electronic care are două părți - una este RFID Reader și alta este etichetă RFID sau Card. Când punem eticheta RFID lângă cititorul RFID, aceasta citește datele etichetei în serie. Eticheta RFID pe care am folosit-o aici are un cod de 12 cifre sau un număr de serie. Acest RFID funcționează la o rată de transmisie de 9600 bps.
Tastatura: Aici am folosit o tastatură matricială 4x4 pentru introducerea parolei în sistem.
Secțiunea de control: microcontrolerul 8051 este utilizat pentru controlul procesului complet al acestui sistem de securitate bazat pe RFID. Aici, folosind 8051, primim date RFID și trimitem starea sau mesajele pe LCD.
Secțiunea de afișare: ecranul LCD 6x2 este utilizat în acest proiect pentru afișarea mesajelor pe acesta. Aici puteți vedea tutorialul: interfața LCD cu microcontrolerul 8051
Secțiunea Driver: Această secțiune are un driver L293D pentru deschiderea porții și un buzzer cu un tranzistor BC547 NPN pentru indicații.
Când o persoană își pune eticheta RFID pe cititorul RFID, atunci RFID citește datele etichetei și le trimite la microcontrolerul 8051, iar apoi microcontrolerul compară aceste date cu datele predefinite. Dacă datele sunt potrivite cu date predefinite, atunci microcontrolerul solicită parola și după introducerea parolei, microcontrolerul compară parola cu parola predefinită. În cazul în care poarta de potrivire a parolei se va deschide, în caz contrar, afișajul LCD afișează Accesul refuzat și buzzerul începe să emită un sunet de ceva vreme.
Diagrama și explicația circuitului
Așa cum se arată în schema de circuit a sistemului de securitate RFID de mai sus, ecranul LCD 16x2 este conectat în modul pe patru biți cu microcontroler. Pinii RS, RW și EN LCD sunt conectați direct la PORT 1 pin numărul P1.0, P1.1 și P1.2. Pinii D4, D5, D6 și D7 ai ecranului LCD sunt conectați direct la pinii P1.4, P1.5, P1.6 și P1.7 ai portului 1. Driverul motorului este conectat la pinul PORT numărul P2.4 și P2.5. Și buzzer-ul este conectat la P2.6 la PORT2. Iar tastatura este conectată la PORT0. Rândul tastaturii este conectat la P0.4 - P0.7, iar coloanele sunt conectate la P0.0 - P0.3.
Explicația programului
În timp ce programăm microcontrolerul 8051 pentru sistemul de securitate bazat pe RFID, în primul rând includem fișiere antet și definim pinul și variabilele de intrare și ieșire.
#include
Apoi definiți pinii pentru modulul tastaturii.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit rând1 = P0 ^ 4; sbit rând2 = P0 ^ 5; sbit rând3 = P0 ^ 6; sbit rând4 = P0 ^ 7;
După aceasta am creat o funcție pentru întârziere.
void delay (int itime) {int i, j; pentru (i = 0; i
Apoi facem unele funcții pentru LCD și inițializăm funcția LCD, void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Aici avem unele funcții pe care le-am folosit în programul nostru. În acest sens, am configurat o rată de transmisie de 9600bps la 11.0592MHz Crystal Frequency, iar la recepție monitorizăm înregistrarea SBUF pentru primirea datelor.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; returnează ch; }
După aceasta, în programul principal, am inițializat lcd și Uart și apoi citim ieșirea RFID când apare orice etichetă pe ea. Stocăm acest șir într-un tablou și apoi îl potrivim cu datele de matrice predefind. Și apoi potriviți parola.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {tastatură (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring („Acces acordat”); lcdcmd (0xc0);
Dacă se potrivește, controlerul deschide poarta, altfel pornește buzzerul și LCD-ul afișează cardul invalid.