I det här projektet ska vi utveckla ett RFID- och knappsatsbaserat säkerhetssystem. Detta projekt genomförs med hjälp av 8051 mikrokontroller. RFID Tecnology (Radio Frequency Identification and Detection) används ofta i skolor, högskolor, kontor och stationer för olika ändamål för att automatiskt autentisera personer med giltiga RFID-taggar. Här kommer vi att kontrollera RFID-taggen, tillsammans med ett lösenord som är associerat med taggen, för att säkra systemet.
Arbetssätt
Vi kan dela upp hela säkerhetssystemet i olika sektioner - Läsaravsnitt, Knappsats, Kontrollavsnitt, Drivrutinsavsnitt och Displayavsnitt. Funktion av hela systemet och rollen för varje sektion kan förstås genom nedanstående blockschema.
Läsaravsnitt: Detta avsnitt innehåller en RFID, som är en elektronikanordning som har två delar - en är RFID-läsare och en är RFID-tagg eller -kort. När vi sätter RFID-taggen nära RFID-läsaren läser den taggdata seriellt. RFID-tagg som vi har använt här har 12-siffrig teckenkod eller serienummer. Detta RFID fungerar med överföringshastighet på 9600 bps.
Knappsats: Här har vi använt en 4x4 matris knappsats för att ange lösenordet till systemet.
Kontrollavsnitt: 8051 mikrokontroller används för att styra hela processen för detta RFID-baserade säkerhetssystem. Här genom att använda 8051 tar vi emot RFID-data och skickar status eller meddelanden till LCD.
Displayavsnitt : 6x2 LCD används i detta projekt för att visa meddelanden på den. Här kan du se handledningen: LCD-gränssnitt med 8051 mikrokontroller
Förarsektion: Detta avsnitt har en motorförare L293D för att öppna grinden och en summer med en BC547 NPN-transistor för indikationer.
När en person lägger sin RFID-tagg till RFID-läsaren läser RFID taggens data och skickar den till 8051 mikrokontroller och sedan jämför mikrokontroller dessa data med fördefinierade data. Om data matchas med fördefinierade data så frågar mikrokontroller om lösenord och efter att ha angett lösenord, jämför mikrokontroller lösenord med fördefinierat lösenord. Om grind för lösenordsmatchning öppnas annars visar LCD-skärmen Åtkomst nekad och summern börjar pipa någon gång.
Kretsschema och förklaring
Som visas i kretsschema för RFID-säkerhetssystem, är 16x2 LCD ansluten i fyrbitsläge med mikrokontroller. LCD: s RS-, RW- och EN-stift ansluts direkt till PORT 1-stift P1.0, P1.1 och P1.2. D4-, D5-, D6- och D7-stift på LCD-skärmen är direktanslutna vid stift P1.4, P1.5, P1.6 och P1.7 i port 1. Motordrivrutinen är ansluten till PORT-stiftnummer P2.4 och P2.5. Och summern är ansluten till P2.6 vid PORT2. Och knappsatsen är ansluten till PORT0. Knappsatsraden är ansluten vid P0.4 - P0.7 och kolumner är anslutna vid P0.0 - P0.3.
Programförklaring
Under programmeringen av 8051-mikrokontrollern för RFID-baserat säkerhetssystem inkluderar vi först headerfiler och definierar in- och utgångsstift och variabler.
#omfatta
Definiera sedan stift för knappsatsmodul.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit rad1 = P0 ^ 4; sbit rad2 = P0 ^ 5; sbit rad3 = P0 ^ 6; sbit rad4 = P0 ^ 7;
Efter detta har vi skapat en funktion för fördröjning.
ogiltig fördröjning (int itime) {int i, j; för (i = 0; i
Sedan gör vi lite funktion för LCD och initialiserar LCD-funktionen, ogiltig lcd_init (ogiltig) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Här har vi en funktion som vi har använt i vårt program. I detta har vi konfigurerat 9600bps baudhastighet vid 11.0592MHz Crystal Frequency, och fuktionen för mottagning övervakar vi SBUF-registret för att ta emot data.
ogiltig uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; retur ch; }
Efter detta i huvudprogrammet har vi initialiserat lcd och Uart och sedan läser vi utdata från RFID när någon tagg tas med på den. Vi lagrar den här strängen i en array och matchar sedan med fördefinierad arraydata. Och matcha sedan lösenordet.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {tangentbord (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring ("Tilldelad åtkomst"); lcdcmd (0xc0);
Om matchning inträffar öppnar styrenheten grinden, annars börjar summern och LCD visar ogiltigt kort.