En este proyecto de Sistema de asistencia basado en RFID, le explicaremos cómo podemos contar la asistencia automáticamente mediante el uso de tarjetas RFID. La tecnología RFID (identificación y detección de radiofrecuencia) se usa comúnmente en escuelas, universidades, oficinas y estaciones para diversos fines para realizar un seguimiento automático de las personas. Aquí contaremos la asistencia de una persona autorizada mediante RFID.
Podemos dividir el sistema de asistencia completo en diferentes secciones: sección de lectura, sección de control, sección de conductor y sección de pantalla. El papel de cada sección se muestra en el siguiente diagrama de bloques:
Sección del lector
Esta sección contiene un RFID, que es un dispositivo electrónico que tiene dos partes: una es el lector RFID y la otra es una etiqueta o tarjeta RFID. Cuando colocamos la etiqueta RFID cerca del lector RFID, lee los datos de la etiqueta en serie. La etiqueta RFID tiene un código de caracteres de 12 dígitos en una bobina. Esta RFID funciona a una velocidad de 9600 bps. RFID utiliza un electroimán para transferir datos del lector a la etiqueta o de la etiqueta al lector.
Sección de control:
El microcontrolador 8051 se utiliza para controlar el proceso completo de este proyecto. Aquí, al usar 8051, estamos recibiendo datos RFID y enviando mensajes o estados a la pantalla LCD.
Sección de visualización:
En este proyecto se utiliza una pantalla LCD de 16x2 para mostrar mensajes.
Sección del conductor:
Esta sección tiene un controlador de motor L293D para abrir la puerta y un zumbador con un transistor NPN BC547 para indicaciones.
Trabajando
Cuando una persona coloca su etiqueta RFID en el lector RFID, RFID lee los datos de la etiqueta y los envía al microcontrolador 8051 y luego el microcontrolador compara estos datos con datos o información definidos. Si los datos coinciden con los datos definidos, el microcontrolador incrementa la asistencia de una de las personas de la etiqueta y si no se produce la coincidencia, el microcontrolador muestra una tarjeta no válida en la pantalla LCD y el zumbador suena continuamente durante algún tiempo.
El diagrama de circuito para el proyecto del sistema de asistencia basado en RFID se muestra arriba. En el circuito, la pantalla LCD está conectada en modo de cuatro bits con el microcontrolador 8051. Los pines RS, RW y EN de la pantalla LCD están conectados directamente en el puerto 1 número de pin P1.0, P1.1 y P1.2. Los pines D4, D5, D6 y D7 de la pantalla LCD están conectados directamente en el pin P1.4, P1.5, P1.6 y P1.7 del puerto 1. El controlador del motor está conectado en el pin PORT número P2.4 y P2.5. y el zumbador está conectado en P2.6 en PORT2.
Explicación del programa
Para programar un sistema de asistencia basado en RFID, primero debemos incluir archivos de encabezado y definir pines y variables de entrada y salida.
#incluir
Después de esto, necesitamos crear una función de retraso.
demora nula (int itime) {int i, j; para (i = 0; i
Luego hacemos alguna función para LCD e inicializamos la función lcd,
nulo lcd_init (nulo) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Aquí tenemos alguna función que hemos utilizado en nuestro programa. En esto hemos configurado una tasa de baudios de 9600bps a una frecuencia de cristal de 11.0592MHz. Estamos monitoreando el registro SBUF para recibir datos.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {mientras (! RI); ch = SBUF; RI = 0; return ch; }
Después de esto en el programa principal, hemos inicializado lcd y UART y luego leemos la salida de RFID cuando hay alguna etiqueta en él. Almacenamos esta cadena en una matriz y luego la combinamos con datos de matriz predefinidos.
lcdcmd (1); lcdstring ("Coloque su tarjeta:"); lcdcmd (0xc0); i = 0; para (i = 0; i <12; i ++) rfid = rxdata (); rfid = '\ 0'; lcdcmd (1);
Si ocurre un partido, el controlador aumenta la asistencia en uno. De lo contrario, el zumbador suena continuamente y la pantalla LCD muestra una tarjeta no válida.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {count1 ++; lcdcmd (1); lcdstring ("Asistencia"); lcdcmd (0xc0); lcdstring ("Registrado"); retraso (200); lcdcmd (1); lcdstring ("Estudiante1"); lcdcmd (0xc0); lcdstring ("Attnd. No.:"); sprintf (resultado, "% d", cuenta1); lcdstring (resultado);
Diseño de PCB
Aquí está el diseño de PCB para el sistema de asistencia basado en RFID: