Tässä RFID-pohjaisessa läsnäolojärjestelmähankkeessa kerromme sinulle, kuinka voimme laskea läsnäolon automaattisesti käyttämällä RFID-kortteja. RFID-tekniikkaa (radiotaajuuksien tunnistus ja tunnistus) käytetään yleisesti kouluissa, korkeakouluissa, toimistoissa ja asemilla eri tarkoituksiin ihmisten automaattisen seurannan varmistamiseksi. Tässä lasketaan valtuutetun henkilön läsnäolo RFID: n avulla.
Voimme jakaa koko läsnäolojärjestelmän eri osioihin: lukijaosio, ohjausosa, kuljettajaosa ja näyttöosa. Kunkin osan rooli on esitetty alla olevassa lohkokaaviossa:
Lukija-osio
Tämä osa sisältää RFID: n, joka on elektroniikkalaite, jolla on kaksi osaa - yksi on RFID-lukija ja toinen on RFID-tunniste tai -kortti. Kun laitamme RFID-tunnisteen lähelle RFID-lukijaa, se lukee tunnistetiedot sarjaan. RFID-tunnisteessa on 12-numeroinen merkkikela kelassa. Tämä RFID toimii 9600 bps: n siirtonopeudella. RFID käyttää sähkömagneettia tiedonsiirtoon lukijasta tunnisteen tai tunnisteen lukijaan.
Ohjausosa:
8051-mikrokontrolleria käytetään tämän projektin koko prosessin ohjaamiseen. Täällä 8051: n avulla vastaanotamme RFID-tietoja ja lähetämme tilaa tai viestejä LCD: lle.
Näyttöosa:
Tässä projektissa käytetään 16x2-nestekidenäyttöä viestien näyttämiseen siinä.
Kuljettajan osa:
Tässä osiossa on moottorin ohjain L293D portin avaamiseksi ja summeri, jossa on BC547 NPN -transistori merkintöjä varten.
Työskentely
Kun henkilö laittaa RFID-tunnisteensa RFID-lukijaan, RFID lukee tunnisteen tiedot ja lähettää sen 8051-mikrokontrollerille ja sitten mikrokontrolleri vertaa näitä tietoja määriteltyihin tietoihin. Jos tiedot sovitetaan määriteltyihin tietoihin, mikro-ohjain lisää yhden tagin henkilön läsnäoloa ja jos vastaavaa ei tapahdu, mikro-ohjain näyttää virheellisen kortin LCD-näytöllä ja summeri piippaa jatkuvasti jonkin aikaa.
Kytkentäkaavio RFID-bassoitua läsnäolojärjestelmää varten on esitetty yllä. Piirissä LCD on kytketty nelibittisessä tilassa 8051-mikrokontrollerilla. LCD: n RS-, RW- ja EN-nastat on kytketty suoraan PORT 1 -nastanumeroihin P1.0, P1.1 ja P1.2. Nestekidenäytön D4-, D5-, D6- ja D7-nastat on kytketty suoraan portin 1 napoihin P1.4, P1.5, P1.6 ja P1.7. Moottorin ohjain on kytketty PORT-napoihin P2.4 ja P2.5. ja summeri on kytketty porttiin P2.6 portissa 2.
Ohjelman selitys
Jos haluat ohjelmoida RFID-pohjaista valvontajärjestelmää, meidän on ensin sisällytettävä otsikkotiedostot ja määritettävä sisääntulo- ja lähtönastat ja muuttujat.
#sisältää
Tämän jälkeen meidän on luotava viivetoiminto.
void delay (int itime) {int i, j; (i = 0; i
Sitten teemme jonkin toiminnon LCD: lle ja alustamme LCD-tuotannon,
void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Tässä meillä on jokin toiminto, jota olemme käyttäneet ohjelmassa. Tässä olemme määrittäneet 9600 bps: n siirtonopeuden 11,0592 MHz: n kristallitaajuudella. Valvomme SBUF-rekisteriä tietojen vastaanottamiseksi.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; paluu ch; }
Tämän jälkeen pääohjelmassa olemme alustaneet lcd: n ja UART: n ja sitten lukemme RFID: n lähdön, kun siinä on yksi tagi. Tallennamme tämän merkkijonon matriisiin ja sovitamme sitten yhteen ennalta määritettyjen taulukotietojen kanssa.
lcdcmd (1); lcdstring ("Aseta korttisi:"); lcdcmd (0xc0); i = 0; ryhmälle (i = 0; i <12; i ++) rfid = rxdata (); rfid = '\ 0'; lcdcmd (1);
Jos ottelu tapahtuu, ohjain lisää osallistumisastetta yhdellä. Muut äänimerkin summerit käyvät jatkuvasti ja nestekidenäytössä näkyy virheellinen kortti.
jos (strncmp (rfid, "160066A5EC39", 12) == 0) {count1 ++; lcdcmd (1); lcdstring ("läsnäolo"); lcdcmd (0xc0); lcdstring ("rekisteröity"); viive (200); lcdcmd (1); lcdstring ("Opiskelija1"); lcdcmd (0xc0); lcdstring ("Varoitusnro:"); sprintf (tulos, "% d", määrä1); lcdstring (tulos);
Piirilevyn asettelu
Tässä on piirilevyasento RFID-pohjaiseen läsnäolojärjestelmään: