En aquest projecte de sistema d’assistència basat en RFID, us explicarem com podem comptar l’assistència automàticament mitjançant targetes RFID. La tecnologia RFID (identificació i detecció de radiofreqüències) s’utilitza habitualment a les escoles, col·legis, oficines i estacions amb diversos propòsits per fer un seguiment automàtic de les persones. Aquí comptarem l’assistència d’una persona autoritzada mitjançant l’ús de RFID.
Podem dividir el sistema d'assistència complet en diferents seccions: secció lector, secció control, secció controlador i secció de visualització. El paper de cada secció es mostra al diagrama de blocs següent:

Secció Lector
Aquesta secció conté un RFID, que és un dispositiu electrònic que té dues parts: una és RFID Reader i l’altra és una etiqueta RFID o una targeta. Quan posem l'etiqueta RFID a prop del lector RFID, es llegeixen les dades de l'etiqueta en sèrie. L'etiqueta RFID té un codi de caràcters de 12 dígits en una bobina. Aquest RFID funciona a una velocitat de transmissió de 9600 bps. RFID utilitza un electroimant per transferir dades d’un lector a un altre o d’etiquetes al lector.
Secció de control:
El microcontrolador 8051 s’utilitza per controlar el procés complet d’aquest projecte. Aquí, mitjançant l’ús del 8051, rebem dades RFID i enviem l’estat o els missatges a la pantalla LCD.
Secció de visualització:
En aquest projecte s’utilitza una pantalla LCD de 16x2 per mostrar-hi missatges.
Secció del conductor:
Aquesta secció té un controlador de motor L293D per obrir la porta i un brunzidor amb un transistor BC547 NPN per a indicacions.
Treball
Quan una persona posa la seva etiqueta RFID al lector RFID, llavors RFID llegeix les dades de l’etiqueta i l’envia al microcontrolador 8051 i, a continuació, el microcontrolador compara aquestes dades amb dades o informació definides. Si les dades es combinen amb les dades definides, el microcontrolador augmenta l'assistència d'una persona de l'etiqueta i, si no es produeix cap coincidència, el microcontrolador mostra una targeta no vàlida a la pantalla LCD i el zumbador està sonant contínuament durant algun temps.

Es mostra el diagrama de circuits per al projecte del sistema d’assistència a graves RFID. Al circuit, la pantalla LCD es connecta en mode de quatre bits amb un microcontrolador 8051. Els pins RS, RW i EN de la pantalla LCD es connecten directament a PORT 1 pin número P1.0, P1.1 i P1.2. Els pins D4, D5, D6 i D7 de la pantalla LCD es connecten directament als pins P1.4, P1.5, P1.6 i P1.7 del port 1. El controlador del motor està connectat al PIN PORT número P2.4 i P2.5. i el brunzidor està connectat a P2.6 a PORT2.
Explicació del programa
Per programar el sistema d’assistència basat en RFID, primer hem d’incloure fitxers de capçalera i definir les variables d’entrada i sortida.
#incloure
Després d'això, hem de crear una funció per al retard.
void delay (int itime) {int i, j; per a (i = 0; i
A continuació, fem alguna funció per a LCD i inicialitzem la producció de lcd,
void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Aquí tenim algunes funcions que hem utilitzat al nostre programa. En això hem configurat una velocitat de transmissió de 9600bps a 11.0592MHz de freqüència de cristall. Estem supervisant el registre SBUF per rebre dades.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; tornar ch; }
Després d'això, al programa principal, hem inicialitzat lcd i UART i després llegim la sortida de RFID quan hi ha una etiqueta. Emmagatzemem aquesta cadena en una matriu i després coincidim amb dades de matriu predefinides.
lcdcmd (1); lcdstring ("Col·loca la teva targeta:"); lcdcmd (0xc0); i = 0; per a (i = 0; i <12; i ++) rfid = rxdata (); rfid = '\ 0'; lcdcmd (1);
Si es produeix un partit, el controlador augmenta l'assistència en un. Una altra sonora sonora s’executa contínuament i la pantalla LCD mostra una targeta no vàlida.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {count1 ++; lcdcmd (1); lcdstring ("Assistència"); lcdcmd (0xc0); lcdstring ("Registrat"); retard (200); lcdcmd (1); lcdstring ("Estudiant1"); lcdcmd (0xc0); lcdstring ("Núm. d'atenció:"); sprintf (resultat, "% d", recompte1); lcdstring (resultat);
Disseny de PCB
Aquí teniu el disseny de PCB per al sistema d’assistència basat en RFID:

