I dette RFID-baserede deltagelsessystemprojekt vil vi forklare dig, hvordan vi automatisk kan tælle deltagelse ved hjælp af RFID-kort. RFID-teknologi (Radio Frequency Identification and Detection) bruges ofte i skoler, gymnasier, kontorer og stationer til forskellige formål for automatisk at holde styr på mennesker. Her tæller vi tilstedeværelsen af en autoriseret person ved hjælp af RFID.
Vi kan opdele det komplette fremmødssystem i forskellige sektioner: læserafsnit, kontrolafsnit, førersektion og udstillingsafsnit. Rollen for hvert afsnit vises i nedenstående blokdiagram:
Læsesektion
Dette afsnit indeholder et RFID, som er en elektronikindretning, der har to dele - den ene er RFID-læser, og den anden er RFID-tag eller -kort. Når vi sætter RFID-tag tæt på RFID-læseren, læser det tag-data serielt. RFID-tag har 12-cifret tegnkode i en spole. Dette RFID fungerer med en baudrate på 9600 bps. RFID bruger elektromagnet til at overføre data fra læser til tag eller tag til læser.
Kontrolafsnit:
8051 mikrokontroller bruges til at styre hele projektets proces. Her ved hjælp af 8051 modtager vi RFID-data og sender status eller meddelelser til LCD.
Vis sektion:
En 16x2 LCD bruges i dette projekt til at vise meddelelser på det.
Førersektion:
Dette afsnit har en motordriver L293D til åbning af port og en summer med en BC547 NPN-transistor til indikationer.
Arbejder
Når en person lægger deres RFID-tag til RFID-læser, læser RFID tag-data og sender det til 8051 mikrokontroller, og derefter sammenligner mikrokontroller disse data med definerede data eller oplysninger. Hvis data matches med definerede data, øges mikrokontrolleren tilstedeværelsen af en af taggens person, og hvis der ikke er matchet, viser mikrocontrolleren et ugyldigt kort på LCD, og summeren bipper kontinuerligt i nogen tid.
Kredsløbsdiagram for RFID-baseret tilstedeværelsessystem-projekt er vist ovenfor. I kredsløbet er LCD forbundet i firebitstilstand med 8051 mikrokontroller. LCD's RS-, RW- og EN-ben er direkte forbundet med PORT 1-pin nummer P1.0, P1.1 og P1.2. D4, D5, D6 og D7 ben på LCD er direkte forbundet med pin P1.4, P1.5, P1.6 og P1.7 i port 1. Motordriveren er forbundet med PORT pin nummer P2.4 og P2.5. og summer er tilsluttet ved P2.6 ved PORT2.
Programforklaring
For at programmere for RFID-baseret attedanssystem skal vi først medtage headerfiler og definerer input- og output-pin og variabler.
#omfatte
Herefter skal vi oprette en funktion til forsinkelse.
ugyldig forsinkelse (int itime) {int i, j; for (i = 0; i
Så laver vi en funktion til LCD og initialiserer LCD-funktion,
ugyldigt lcd_init (ugyldigt) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Her har vi nogle funktioner, som vi har brugt i vores program. I dette har vi konfigureret 9600bps baudrate ved 11.0592MHz Crystal Frequency. Vi overvåger SBUF-registret for modtagelse af data.
ugyldigt uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; returnere ch; }
Efter dette i hovedprogrammet har vi initialiseret lcd og UART, og derefter læser vi output af RFID, når der er et mærke på det. Vi gemmer denne streng i en matrix og matcher derefter med foruddefinerede matrixdata.
lcdcmd (1); lcdstring ("Placer dit kort:"); lcdcmd (0xc0); i = 0; for (i = 0; i <12; i ++) rfid = rxdata (); rfid = '\ 0'; lcdcmd (1);
Hvis der opstår match, øger controlleren fremmøde med en. Ellers kører en bip-summer kontinuerligt, og LCD viser ugyldigt kort.
hvis (strncmp (rfid, "160066A5EC39", 12) == 0) {count1 ++; lcdcmd (1); lcdstring ("fremmøde"); lcdcmd (0xc0); lcdstring ("Registreret"); forsinkelse (200); lcdcmd (1); lcdstring ("Student1"); lcdcmd (0xc0); lcdstring ("Attnd. nr.:"); sprintf (resultat, "% d", count1); lcdstring (resultat);
Printkortlayout
Her er printkortlayoutet for RFID-baseret deltagelsessystem: