In diesem Projekt werden wir ein RFID- und Tastatur-basiertes Sicherheitssystem entwickeln. Dieses Projekt wird mithilfe eines 8051-Mikrocontrollers implementiert. Die RFID-Technologie (Radio Frequency Identification and Detection) wird häufig in Schulen, Hochschulen, Büros und Stationen für verschiedene Zwecke verwendet, um Personen mit gültigen RFID-Tags automatisch zu authentifizieren. Hier überprüfen wir das RFID-Tag zusammen mit einem dem Tag zugeordneten Passwort, um das System zu sichern.
Arbeiten
Wir können das gesamte Sicherheitssystem in verschiedene Abschnitte unterteilen - Leserbereich, Tastatur, Steuerabschnitt, Treiberabschnitt und Anzeigeabschnitt. Die Funktionsweise des gesamten Systems und die Rolle jedes Abschnitts können anhand des folgenden Blockdiagramms verstanden werden.
Reader-Abschnitt: Dieser Abschnitt enthält ein RFID, ein elektronisches Gerät, das aus zwei Teilen besteht - einem RFID-Reader 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 hier verwendete RFID-Tag hat einen 12-stelligen Zeichencode oder eine Seriennummer. Diese RFID arbeitet mit einer Baudrate von 9600 bps.
Tastatur: Hier haben wir eine 4x4- Matrixtastatur zur Eingabe des Passworts für das System verwendet.
Steuerabschnitt: Der 8051-Mikrocontroller wird zur Steuerung des gesamten Prozesses dieses RFID-basierten Sicherheitssystems verwendet. Hier empfangen wir mit 8051 RFID-Daten und senden Status oder Nachrichten an das LCD.
Anzeigebereich: In diesem Projekt wird ein 6x2-LCD zum Anzeigen von Nachrichten verwendet. Hier sehen Sie das Tutorial: LCD-Schnittstelle mit 8051-Mikrocontroller
Treiberabschnitt : Dieser Abschnitt enthält einen Motortreiber L293D zum Öffnen des Gates und einen Summer mit einem BC547-NPN-Transistor zur Anzeige.
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 vordefinierten Daten. Wenn Daten mit vordefinierten Daten übereinstimmen, fragt der Mikrocontroller nach dem Passwort und nach Eingabe des Passworts vergleicht der Mikrocontroller das Passwort mit dem vordefinierten Passwort. Wenn sich das Passwort-Match-Gate öffnet, wird auf dem LCD-Bildschirm der Zugriff verweigert und der Summer ertönt für einige Zeit.
Schaltplan und Erklärung
Wie im obigen Schaltplan des RFID-Sicherheitssystems gezeigt, ist das 16x2-LCD im Vier-Bit-Modus mit einem 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. Und die Tastatur ist an PORT0 angeschlossen. Die Tastaturzeilen sind an P0.4 - P0.7 und die Spalten an P0.0 - P0.3 angeschlossen.
Programmerklärung
Bei der Programmierung des 8051-Mikrocontrollers für ein RFID-basiertes Sicherheitssystem schließen wir zunächst Header-Dateien ein und definieren Eingangs- und Ausgangs-Pin und -Variablen.
#einschließen
Definieren Sie dann die Pins für das Tastaturmodul.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit row1 = P0 ^ 4; sbit row2 = P0 ^ 5; sbit row3 = P0 ^ 6; sbit row4 = P0 ^ 7;
Danach haben wir eine Funktion für die Verzögerung erstellt.
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, und die Funktion für den Empfang überwachen wir das SBUF-Register für den Empfang von Daten.
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 dann die Ausgabe von RFID gelesen, wenn ein Tag darauf gebracht wird. Wir speichern diese Zeichenfolge in einem Array und stimmen sie dann mit vordefinierten Arraydaten überein. Und dann das Passwort abgleichen.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {keypad (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring ("Zugriff gewährt"); lcdcmd (0xc0);
Wenn eine Übereinstimmung auftritt, öffnet der Controller das Tor, andernfalls ertönt ein Summer und auf dem LCD wird eine ungültige Karte angezeigt.