W tym projekcie zamierzamy opracować system bezpieczeństwa oparty na RFID i klawiaturze. Projekt ten jest realizowany przy użyciu mikrokontrolera 8051. Technologia RFID (Radio Frequency Identification and Detection) jest powszechnie stosowana w szkołach, na uczelniach, w biurach i na stacjach w różnych celach do automatycznego uwierzytelniania ludzi za pomocą ważnych tagów RFID. Tutaj sprawdzimy tag RFID wraz z hasłem powiązanym z tagiem, aby zabezpieczyć system.
Pracujący
Cały system bezpieczeństwa możemy podzielić na różne sekcje - czytnik, klawiatura, sterowanie, kierowca i wyświetlacz. Działanie całego systemu i rolę każdej sekcji można zrozumieć za pomocą poniższego schematu blokowego.
Sekcja czytników: Ta sekcja zawiera RFID, czyli urządzenie elektroniczne, które składa się z dwóch części - jedna to czytnik RFID, a druga to tag RFID lub karta. Kiedy umieszczamy tag RFID w pobliżu czytnika RFID, odczytuje on dane tagów seryjnie. Zastosowany przez nas tag RFID ma 12-znakowy kod lub numer seryjny. Ten RFID działa z szybkością transmisji 9600 bps.
Klawiatura: Tutaj użyliśmy klawiatury matrycowej 4x4 do wprowadzenia hasła do systemu.
Sekcja sterowania: mikrokontroler 8051 służy do sterowania całym procesem tego systemu bezpieczeństwa opartego na technologii RFID. Tutaj za pomocą 8051 odbieramy dane RFID i wysyłamy status lub komunikaty do LCD.
Sekcja wyświetlacza: 6x2 LCD jest używany w tym projekcie do wyświetlania na nim komunikatów. Tutaj możesz zobaczyć tutorial: Połączenie LCD z mikrokontrolerem 8051
Sekcja sterownika: Ta sekcja zawiera sterownik silnika L293D do otwierania bramki i brzęczyk z tranzystorem BC547 NPN do wskazań.
Kiedy osoba umieszcza swój tag RFID w czytniku RFID, RFID odczytuje dane tagu i wysyła je do mikrokontrolera 8051, a następnie mikrokontroler porównuje te dane z danymi predefiniowanymi. Jeśli dane są zgodne z danymi predefiniowanymi to mikrokontroler pyta o hasło i po wpisaniu hasła mikrokontroler porównuje hasło z hasłem predefiniowanym. Jeśli hasło pasuje do bramki, otworzy się, w przeciwnym razie LCD pokaże Odmowa dostępu i brzęczyk zacznie przez jakiś czas wydawać sygnał dźwiękowy.
Schemat obwodu i wyjaśnienie
Jak pokazano na powyższym schemacie obwodu systemu bezpieczeństwa RFID, wyświetlacz LCD 16x2 jest połączony w trybie czterobitowym z mikrokontrolerem. Piny RS, RW i EN wyświetlacza LCD są podłączone bezpośrednio do pinów P1.0, P1.1 i P1.2 PORTU 1. Piny D4, D5, D6 i D7 wyświetlacza LCD są bezpośrednio podłączone do pinów P1.4, P1.5, P1.6 i P1.7 portu 1. Sterownik silnika jest podłączony do pinów PORT P2.4 i P2.5. Brzęczyk jest podłączony do P2.6 na PORT2. A klawiatura jest podłączona do PORT0. Rząd manipulatorów jest podłączony w P0.4 - P0.7, a kolumny w P0.0 - P0.3.
Objaśnienie programu
Podczas programowania mikrokontrolera 8051 dla systemu bezpieczeństwa opartego na RFID, przede wszystkim uwzględniamy pliki nagłówkowe oraz definiujemy pin wejściowy i wyjściowy oraz zmienne.
#zawierać
Następnie zdefiniuj piny dla modułu manipulatora.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit rząd1 = P0 ^ 4; sbit rząd2 = P0 ^ 5; sbit rząd3 = P0 ^ 6; sbit rząd4 = P0 ^ 7;
Następnie stworzyliśmy funkcję opóźnienia.
void delay (int itime) {int i, j; dla (i = 0; i
Następnie wykonujemy jakąś funkcję dla LCD i inicjalizujemy funkcję lcd, void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Tutaj mamy pewną funkcję, której użyliśmy w naszym programie. W tym skonfigurowaliśmy szybkość transmisji 9600bps przy częstotliwości krystalicznej 11,0592 MHz, a funkcję odbioru monitorujemy rejestr SBUF pod kątem odbioru danych.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; return ch; }
Następnie w głównym programie zainicjowaliśmy lcd i Uart, a następnie odczytujemy wyjście RFID, gdy zostanie na nim nałożony dowolny tag. Przechowujemy ten ciąg w tablicy, a następnie dopasowujemy do predefiniowanych danych tablicy. A następnie dopasuj hasło.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {keypad (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring („Dostęp udzielony”); lcdcmd (0xc0);
Jeśli dojdzie do dopasowania, kontroler otwiera bramę, w przeciwnym razie włączy się brzęczyk, a wyświetlacz LCD pokaże nieprawidłową kartę.