Trong dự án này, chúng tôi sẽ phát triển hệ thống Bảo mật dựa trên RFID và bàn phím. Dự án này được thực hiện bằng cách sử dụng vi điều khiển 8051. Công nghệ RFID (Nhận dạng và phát hiện tần số vô tuyến) thường được sử dụng trong các trường học, cao đẳng, văn phòng và nhà ga cho nhiều mục đích khác nhau để tự động xác thực mọi người bằng thẻ RFID hợp lệ. Ở đây chúng tôi sẽ kiểm tra thẻ RFID, cùng với mật khẩu được liên kết với thẻ, để bảo mật hệ thống.
Đang làm việc
Chúng ta có thể chia hệ thống bảo mật hoàn chỉnh thành nhiều phần khác nhau - Phần đọc, Bàn phím, Phần Điều khiển, Phần Trình điều khiển và Phần Hiển thị. Hoạt động của toàn bộ hệ thống và vai trò của từng phần có thể được hiểu qua sơ đồ khối dưới đây.
Phần đầu đọc: Phần này chứa RFID, là một thiết bị điện tử có hai phần - một phần là Đầu đọc RFID và phần còn lại là thẻ hoặc Thẻ RFID. Khi chúng tôi đặt thẻ RFID gần đầu đọc RFID, nó sẽ đọc dữ liệu thẻ theo thứ tự. Thẻ RFID mà chúng tôi đã sử dụng ở đây có mã ký tự 12 chữ số hoặc số sê-ri. RFID này đang hoạt động ở tốc độ truyền 9600 bps.
Bàn phím: Ở đây chúng tôi đã sử dụng bàn phím ma trận 4x4 để nhập mật khẩu vào hệ thống.
Phần Điều khiển: Bộ vi điều khiển 8051 được sử dụng để kiểm soát toàn bộ quá trình của hệ thống bảo mật dựa trên RFID này. Ở đây bằng cách sử dụng 8051, chúng tôi đang nhận dữ liệu RFID và gửi trạng thái hoặc tin nhắn đến LCD.
Phần hiển thị: Màn hình LCD 6x2 được sử dụng trong dự án này để hiển thị thông báo trên đó. Ở đây bạn có thể xem hướng dẫn: Giao tiếp LCD với vi điều khiển 8051
Phần trình điều khiển: Phần này có trình điều khiển động cơ L293D để mở cổng và một còi có bóng bán dẫn BC547 NPN để chỉ báo.
Khi một người đặt thẻ RFID của mình vào bộ đọc RFID thì RFID sẽ đọc dữ liệu của thẻ và gửi nó đến bộ vi điều khiển 8051 và sau đó bộ vi điều khiển so sánh dữ liệu này với dữ liệu được xác định trước. Nếu dữ liệu khớp với dữ liệu xác định trước thì vi điều khiển yêu cầu mật khẩu và sau khi nhập mật khẩu, vi điều khiển sẽ so sánh mật khẩu với mật khẩu xác định trước. Nếu không, cổng khớp mật khẩu sẽ mở nếu không thì màn hình LCD Hiển thị quyền truy cập bị từ chối và bộ rung bắt đầu phát ra tiếng bíp đôi khi.
Sơ đồ mạch và giải thích
Như thể hiện trong sơ đồ mạch hệ thống bảo mật RFID ở trên, LCD 16x2 được kết nối ở chế độ bốn bit với bộ vi điều khiển. Các chân RS, RW và EN của LCD được kết nối trực tiếp tại PORT 1 số chân P1.0, P1.1 và P1.2. Các chân D4, D5, D6 và D7 của LCD được kết nối trực tiếp tại chân P1.4, P1.5, P1.6 và P1.7 của cổng 1. Trình điều khiển động cơ được kết nối tại chân PORT số P2.4 và P2.5. Và buzzer được kết nối tại P2.6 tại PORT2. Và bàn phím được kết nối tại PORT0. Hàng bàn phím được kết nối tại P0.4 - P0.7 và Các cột được kết nối tại P0.0 - P0.3.
Giải thích chương trình
Trong khi lập trình vi điều khiển 8051 cho hệ thống bảo mật dựa trên RFID, trước hết chúng tôi bao gồm các tệp tiêu đề và xác định chân đầu vào và đầu ra và các biến.
#include
Sau đó, xác định các chân cho mô-đun bàn phím.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit hàng1 = P0 ^ 4; sbit hàng2 = P0 ^ 5; sbit hàng3 = P0 ^ 6; sbit hàng4 = P0 ^ 7;
Sau đó, chúng tôi đã tạo một hàm để trì hoãn.
void delay (int itime) {int i, j; cho (i = 0; i
Sau đó, chúng tôi tạo một số chức năng cho LCD và khởi tạo chức năng LCD, void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Ở đây chúng tôi có một số chức năng mà chúng tôi đã sử dụng trong chương trình của mình. Trong phần này, chúng tôi đã định cấu hình tốc độ truyền 9600bps ở Tần số tinh thể 11,0592MHz và quá trình nhận, chúng tôi đang theo dõi thanh ghi SBUF để nhận dữ liệu.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; trả lại ch; }
Sau điều này trong chương trình chính, chúng tôi đã khởi tạo lcd và Uart và sau đó chúng tôi đọc đầu ra của RFID khi có bất kỳ thẻ nào trên đó. Chúng tôi lưu trữ chuỗi này trong một mảng và sau đó khớp với dữ liệu mảng tìm kiếm trước. Và sau đó khớp với mật khẩu.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {keypad (); if (strncmp (pass, "4201", 4) == 0) {accept (); lcdcmd (1); lcdstring ("Đã cấp quyền truy cập"); lcdcmd (0xc0);
Nếu khớp xảy ra thì bộ điều khiển sẽ mở cổng, nếu không thì còi bắt đầu và màn hình LCD hiển thị thẻ không hợp lệ.