У цьому проекті ми збираємося розробити систему безпеки на основі RFID та клавіатури. Цей проект реалізований за допомогою мікроконтролера 8051. Технологія RFID (ідентифікація та виявлення радіочастот) зазвичай використовується в школах, коледжах, офісах та на станціях для різних цілей для автоматичної автентифікації людей із дійсними тегами RFID. Тут ми перевіримо тег RFID разом із паролем, пов’язаним із тегом, для захисту системи.
Працює
Ми можемо розділити всю систему безпеки на різні розділи - розділ зчитування, клавіатура, розділ управління, розділ драйвера та розділ дисплея. Робота всієї системи та роль кожного розділу можна зрозуміти через нижченаведену блок-схему.
Розділ зчитувача: Цей розділ містить RFID, який є електронним пристроєм, що складається з двох частин - одна - зчитувач RFID, а інша - мітка або картка RFID. Коли ми розміщуємо тег RFID біля зчитувача RFID, він послідовно зчитує дані тегів. Тег RFID, який ми використовували тут, має 12-значний код символу або серійний номер. Цей RFID працює зі швидкістю передачі даних 9600 біт / с.
Клавіатура: Тут ми використовували матричну клавіатуру 4x4 для введення пароля до системи.
Розділ управління: Мікроконтролер 8051 використовується для управління повним процесом цієї системи безпеки на основі RFID. Тут, використовуючи 8051, ми отримуємо дані RFID і надсилаємо статус або повідомлення на РК-дисплей.
Розділ дисплея: У цьому проекті для відображення повідомлень використовується РК-дисплей 6x2. Тут ви можете побачити підручник: РК-взаємодія з мікроконтролером 8051
Секція водія: У цій секції є драйвер двигуна L293D для відкривання воріт та зумер із транзистором BC547 NPN для індикацій.
Коли людина поміщає свій RFID-тег на RFID-зчитувач, тоді RFID зчитує дані тегу та надсилає їх мікроконтролеру 8051, а потім мікроконтролер порівнює ці дані із заздалегідь визначеними даними. Якщо дані відповідають заздалегідь визначеним даним, тоді мікроконтролер запитує пароль, а після введення мікроконтролера порівнює пароль із заздалегідь визначеним паролем. Якщо ворота збігу паролів відкриються, інакше на РК-дисплеї відображається доступ заборонено, а зумер починає писати на деякий час.
Принципова схема та пояснення
Як показано на наведеній вище схемі схеми системи безпеки RFID, РК-дисплей 16x2 підключений у чотирибітовому режимі з мікроконтролером. Виводи RS, RW та EN на РК-дисплеї безпосередньо підключені до PORT 1-контактних номерів P1.0, P1.1 і P1.2. Висновки D4, D5, D6 і D7 РК-дисплея безпосередньо підключені до виводів P1.4, P1.5, P1.6 і P1.7 порту 1. Драйвер двигуна підключений до виводів PORT P2.4 і P2.5. А зумер підключено на P2.6 на PORT2. А клавіатура підключена на PORT0. Рядок клавіатури підключено на P0.4 - P0.7, а стовпці - на P0.0 - P0.3.
Пояснення програми
Під час програмування мікроконтролера 8051 для системи безпеки на основі RFID, перш за все, ми включаємо файли заголовків та визначаємо вхідні та вихідні висновки та змінні.
#включати
Потім визначте шпильки для модуля клавіатури.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit рядок1 = P0 ^ 4; sbit рядок2 = P0 ^ 5; sbit рядок3 = P0 ^ 6; sbit рядок4 = P0 ^ 7;
Після цього ми створили функцію затримки.
void delay (int itime) {int i, j; для (i = 0; i
Потім ми робимо деяку функцію для РК-дисплея та ініціалізуємо функцію РК-дисплея, порожнеча lcd_init (порожнеча) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Тут ми маємо деякі функції, які ми використовували в нашій програмі. У цьому ми налаштували швидкість передачі даних 9600 біт / с на частоті кристалів 11,0592 МГц, і в якості прийому ми контролюємо регістр SBUF для отримання даних.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; повернути ch; }
Після цього в головній програмі ми ініціалізували lcd та Uart, а потім читаємо вихідні дані RFID, коли на них наноситься будь-який тег. Ми зберігаємо цей рядок у масиві, а потім збігаємось із попередньо визначеними даними масиву. А потім згадайте пароль.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {клавіатура (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring ("Доступ надано"); lcdcmd (0xc0);
Якщо збіг відбувається, контролер відкриває ворота, інакше звуковий сигнал запускається, і на РК-дисплеї відображається недійсна карта.