I detta RFID-baserade närvarasystemprojekt kommer vi att förklara hur vi kan räkna närvaro automatiskt med hjälp av RFID-kort. RFID-teknik (Radio Frequency Identification and Detection) används ofta i skolor, högskolor, kontor och stationer för olika ändamål för att automatiskt hålla koll på människor. Här räknar vi närvaron hos en auktoriserad person med hjälp av RFID.
Vi kan dela upp hela närvarosystemet i olika sektioner: läsaravsnitt, kontrollavsnitt, förarsektion och displayavsnitt. Rollen för varje sektion visas i nedanstående blockschema:
Läsare
Detta avsnitt innehåller ett RFID, som är en elektronikanordning som består av två delar - en är RFID-läsare och en annan är RFID-tagg eller kort. När vi sätter RFID-taggen nära RFID-läsaren läser den taggdata seriellt. RFID-taggen har 12-siffrig teckenkod i en spole. Detta RFID fungerar med överföringshastighet på 9600 bps. RFID använder elektromagnet för att överföra data från läsare till tagg eller tagg till läsare.
Kontrollavsnitt:
8051 mikrokontroller används för att styra hela processen för detta projekt. Här genom att använda 8051 tar vi emot RFID-data och skickar status eller meddelanden till LCD.
Visa avsnitt:
En 16x2 LCD används i detta projekt för att visa meddelanden på den.
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.
Arbetssätt
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 definierad data eller information. Om data matchas med definierade data ökar mikrokontrollern närvaron av en av taggens person och om matchning inte inträffar visar mikrokontroller ogiltigt kort på LCD-skärmen och summern piper kontinuerligt under en tid.
Kretsschema för RFID-baserade närvaroprojektprojekt visas ovan. I kretsen är LCD ansluten i fyrbitsläge med 8051 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-stift nummer P2.4 och P2.5. och summer är ansluten vid P2.6 vid PORT2.
Programförklaring
För att programmera för RFID-baserat attedanssystem måste vi först inkludera rubrikfiler och definiera in- och utgångsstift och variabler.
#omfatta
Efter detta måste vi skapa 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 initierar LCD-funktion,
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. Vi övervakar 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 på den. Vi lagrar den här strängen i en array och matchar sedan med fördefinierad arraydata.
lcdcmd (1); lcdstring ("Placera ditt kort:"); lcdcmd (0xc0); i = 0; för (i = 0; i <12; i ++) rfid = rxdata (); rfid = '\ 0'; lcdcmd (1);
Om matchning inträffar ökar styrenheten närvaron med en. Annars hörs en ljudsignal kontinuerligt och LCD visar ett ogiltigt kort.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {count1 ++; lcdcmd (1); lcdstring ("närvaro"); lcdcmd (0xc0); lcdstring ("Registrerad"); fördröjning (200); lcdcmd (1); lcdstring ("Student1"); lcdcmd (0xc0); lcdstring ("Attnd. nr.:"); sprintf (resultat, "% d", count1); lcdstring (resultat);
PCB-layout
Här är PCB-layouten för RFID-baserat närvarosystem: