In diesem Projekt des RFID-basierten Anwesenheitssystems erklären wir Ihnen, wie wir die Teilnahme mithilfe von RFID-Karten automatisch zählen können. Die RFID-Technologie (Radio Frequency Identification and Detection) wird häufig in Schulen, Hochschulen, Büros und Stationen für verschiedene Zwecke eingesetzt, um automatisch den Überblick über Personen zu behalten. Hier zählen wir die Anwesenheit einer autorisierten Person mithilfe von RFID.
Wir können das gesamte Anwesenheitssystem in verschiedene Abschnitte unterteilen: Leserabschnitt, Steuerabschnitt, Fahrerabschnitt und Anzeigeabschnitt. Die Rolle jedes Abschnitts ist im folgenden Blockdiagramm dargestellt:
Leserbereich
Dieser Abschnitt enthält ein RFID, ein elektronisches Gerät, das aus zwei Teilen besteht - einem RFID-Lesegerät und einem RFID-Tag oder einer RFID-Karte. Wenn wir das RFID-Tag in der Nähe des RFID-Lesegeräts platzieren, werden die Tag-Daten seriell gelesen. Das RFID-Tag hat einen 12-stelligen Zeichencode in einer Spule. Diese RFID arbeitet mit einer Baudrate von 9600 bps. RFID verwendet Elektromagneten, um Daten vom Lesegerät zum Etikett oder vom Lesegerät zum Lesegerät zu übertragen.
Kontrollbereich:
Der 8051-Mikrocontroller wird zur Steuerung des gesamten Prozesses dieses Projekts verwendet. Hier empfangen wir mit 8051 RFID-Daten und senden Status oder Nachrichten an das LCD.
Anzeigebereich:
In diesem Projekt wird ein 16x2-LCD zum Anzeigen von Nachrichten verwendet.
Treiberbereich:
Dieser Abschnitt enthält einen Motortreiber L293D zum Öffnen des Gates und einen Summer mit einem BC547-NPN-Transistor zur Anzeige.
Arbeiten
Wenn eine Person ihr RFID-Tag in einen RFID-Leser legt, liest RFID die Daten des Tags und sendet sie an den 8051-Mikrocontroller. Anschließend vergleicht der Mikrocontroller diese Daten mit definierten Daten oder Informationen. Wenn Daten mit definierten Daten übereinstimmen, erhöht der Mikrocontroller die Anwesenheit einer Person des Tags. Wenn keine Übereinstimmung vorliegt, zeigt der Mikrocontroller eine ungültige Karte auf dem LCD an und der Summer piept einige Zeit ununterbrochen.
Der Schaltplan für ein RFID-Projekt mit Bass-Anwesenheitssystem ist oben dargestellt. In der Schaltung ist das LCD im Vier-Bit-Modus mit dem 8051-Mikrocontroller verbunden. Die RS-, RW- und EN-Pins des LCD werden direkt an PORT 1-Pin-Nummer P1.0, P1.1 und P1.2 angeschlossen. Die Pins D4, D5, D6 und D7 des LCD sind direkt an Pin P1.4, P1.5, P1.6 und P1.7 von Port 1 angeschlossen. Der Motortreiber ist an den PORT-Pins P2.4 und P2.5 angeschlossen. und der Summer ist an P2.6 an PORT2 angeschlossen.
Programmerklärung
Um für ein RFID-basiertes Attedance-System zu programmieren, müssen wir zuerst Header-Dateien einschließen und den Eingangs- und Ausgangs-Pin und die Variablen definieren.
#einschließen
Danach müssen wir eine Funktion für die Verzögerung erstellen.
nichtige Verzögerung (int itime) {int i, j; für (i = 0; i
Dann machen wir eine Funktion für LCD und initialisieren die LCD-Funktion.
void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }}
Hier haben wir einige Funktionen, die wir in unserem Programm verwendet haben. Hier haben wir eine Baudrate von 9600 Bit / s bei einer Kristallfrequenz von 11,0592 MHz konfiguriert. Wir überwachen das SBUF-Register auf Datenempfang.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; return ch; }}
Danach haben wir im Hauptprogramm lcd und UART initialisiert und lesen dann die Ausgabe von RFID, wenn ein Tag darauf ist. Wir speichern diese Zeichenfolge in einem Array und stimmen sie dann mit vordefinierten Array-Daten ab.
lcdcmd (1); lcdstring ("Platziere deine Karte:"); lcdcmd (0xc0); i = 0; für (i = 0; i <12; i ++) rfid = rxdata (); rfid = '\ 0'; lcdcmd (1);
Wenn eine Übereinstimmung auftritt, erhöht der Controller die Anwesenheit um eins. Andernfalls ertönt ein kontinuierlicher Signalton und auf dem LCD wird eine ungültige Karte angezeigt.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {count1 ++; lcdcmd (1); lcdstring ("Anwesenheit"); lcdcmd (0xc0); lcdstring ("Registriert"); Verzögerung (200); lcdcmd (1); lcdstring ("Student1"); lcdcmd (0xc0); lcdstring ("Attnd. No.:"); sprintf (Ergebnis "% d", count1); lcdstring (Ergebnis);
Leiterplattenlayout
Hier ist das PCB-Layout für das RFID-basierte Anwesenheitssystem: