In dit project gaan we een op RFID en toetsenbord gebaseerd beveiligingssysteem ontwikkelen. Dit project wordt geïmplementeerd met behulp van 8051 microcontroller. RFID-technologie (Radio Frequency Identification and Detection) wordt vaak gebruikt in scholen, hogescholen, kantoren en stations voor verschillende doeleinden om mensen automatisch te authenticeren met geldige RFID-tags. Hier zullen we de RFID-tag controleren, samen met een wachtwoord dat aan de tag is gekoppeld, om het systeem te beveiligen.
Werken
We kunnen het complete beveiligingssysteem onderverdelen in verschillende secties - Lezerssectie, Toetsenbord, Controle sectie, Driver sectie en Display sectie. De werking van het hele systeem en de rol van elke sectie kan worden begrepen aan de hand van het onderstaande blokschema.
Lezersgedeelte: dit gedeelte bevat een RFID, een elektronisch apparaat dat uit twee delen bestaat: een is een RFID-lezer en een ander is een RFID-tag of kaart. Wanneer we een RFID-tag in de buurt van de RFID-lezer plaatsen, leest deze tag-gegevens serieel. RFID-tag die we hier hebben gebruikt, heeft een 12-cijferige tekencode of serienummer. Deze RFID werkt met een baudrate van 9600 bps.
Toetsenbord: hier hebben we een 4x4 matrix toetsenbord gebruikt om het wachtwoord in het systeem in te voeren.
Besturingsgedeelte: 8051 microcontroller wordt gebruikt voor het besturen van het volledige proces van dit op RFID gebaseerde beveiligingssysteem. Hier door middel van 8051 ontvangen we RFID-gegevens en sturen we status of berichten naar het LCD-scherm.
Weergavesectie: 6x2 LCD wordt in dit project gebruikt voor het weergeven van berichten erop. Hier kunt u de tutorial bekijken: LCD-interface met 8051-microcontroller
Driver sectie: Deze sectie heeft een motor driver L293D voor het openen van de poort en een zoemer met een BC547 NPN transistor voor indicaties.
Wanneer een persoon zijn RFID-tag in de RFID-lezer plaatst, leest RFID de gegevens van de tag en stuurt deze naar de 8051-microcontroller en vervolgens vergelijkt de microcontroller deze gegevens met vooraf gedefinieerde gegevens. Als gegevens worden gematcht met vooraf gedefinieerde gegevens, vraagt de microcontroller om een wachtwoord en na het invoeren van het wachtwoord vergelijkt de microcontroller het wachtwoord met het vooraf gedefinieerde wachtwoord. Als de poort voor het matchen van het wachtwoord wordt geopend, wordt op het LCD-scherm Toegang geweigerd weergegeven en begint de zoemer een tijdje te piepen.
Schakelschema en uitleg
Zoals te zien is in het bovenstaande schakelschema van het RFID-beveiligingssysteem, is 16x2 LCD-scherm in vier bitsmodus verbonden met een microcontroller. De RS-, RW- en EN-pinnen van het LCD-scherm zijn rechtstreeks verbonden met PORT 1-pinnummer P1.0, P1.1 en P1.2. De D4-, D5-, D6- en D7-pinnen van het LCD-scherm zijn rechtstreeks aangesloten op pin P1.4, P1.5, P1.6 en P1.7 van poort 1. De motordriver is aangesloten op PORT-pinnummer P2.4 en P2.5. En zoemer is aangesloten op P2.6 op PORT2. En toetsenbord is aangesloten op PORT0. Toetsenbordrij is verbonden op P0.4 - P0.7 en kolommen zijn verbonden op P0.0 - P0.3.
Programma-uitleg
Bij het programmeren van de 8051-microcontroller voor een op RFID gebaseerd beveiligingssysteem, nemen we allereerst header-bestanden op en definiëren we de invoer- en uitvoerpin en variabelen.
# omvatten
Definieer vervolgens pinnen voor de toetsenbordmodule.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit row1 = P0 ^ 4; sbit row2 = P0 ^ 5; sbit row3 = P0 ^ 6; sbit row4 = P0 ^ 7;
Hierna hebben we een functie voor vertraging gemaakt.
ongeldige vertraging (int itime) {int i, j; voor (i = 0; i
Vervolgens maken we een functie voor LCD en initialiseren we de lcd-functie, void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Hier hebben we een functie die we in ons programma hebben gebruikt. Hierin hebben we een baudsnelheid van 9600 bps geconfigureerd op 11,0592 MHz kristalfrequentie, en voor het ontvangen controleren we het SBUF-register voor het ontvangen van gegevens.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; terug ch; }
Hierna hebben we in het hoofdprogramma lcd en Uart geïnitialiseerd en vervolgens lezen we de output van RFID wanneer er een tag op wordt aangebracht. We slaan deze string op in een array en matchen vervolgens met vooraf gedefinieerde arraygegevens. En pas dan het wachtwoord aan.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {keypad (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring ("Toegang verleend"); lcdcmd (0xc0);
Als er een match optreedt, opent de controller de poort, anders start de zoemer en toont het LCD-scherm ongeldige kaart.