Trong dự án Hệ thống chấm công dựa trên RFID này, chúng tôi sẽ giải thích cho bạn cách chúng tôi có thể đếm điểm danh tự động bằng cách sử dụng thẻ RFID. 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 các mục đích khác nhau để tự động theo dõi mọi người. Ở đây, chúng tôi sẽ đếm sự tham dự của người được ủy quyền bằng cách sử dụng RFID.
Chúng ta có thể chia hệ thống chấm công hoàn chỉnh thành các phần khác nhau: phần người đọc, phần điều khiển, phần trình điều khiển và phần hiển thị. Vai trò của từng phần được thể hiện trong sơ đồ khối dưới đây:
Phần đọ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 có mã ký tự 12 chữ số trong một cuộn dây. RFID này đang hoạt động ở tốc độ truyền 9600 bps. RFID sử dụng nam châm điện để truyền dữ liệu từ đầu đọc sang thẻ hoặc thẻ đến đầu đọc.
Phần kiểm soát:
Bộ vi điều khiển 8051 được sử dụng để kiểm soát toàn bộ quá trình của dự án 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 16x2 được sử dụng trong dự án này để hiển thị thông báo trên đó.
Phần trình điều khiển:
Phần này có một 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.
Đang làm việc
Khi một người đặt thẻ RFID của họ vào bộ đọc RFID thì RFID sẽ đọc dữ liệu của thẻ và gửi đế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 hoặc thông tin đã xác định. Nếu dữ liệu được khớp với dữ liệu đã xác định thì bộ vi điều khiển sẽ tăng số lần tham dự của một trong những người của thẻ và nếu không khớp không xảy ra thì bộ vi điều khiển hiển thị thẻ không hợp lệ trên màn hình LCD và còi kêu liên tục trong một thời gian.
Sơ đồ mạch cho dự án hệ thống chấm công trầm RFID được trình bày ở trên. Trong mạch, LCD được kết nối ở chế độ bốn bit với vi điều khiển 8051. 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.
Giải thích chương trình
Để lập trình cho hệ thống giám sát dựa trên RFID, trước tiên chúng ta cần 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 đó, chúng ta cần 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 cảm biến 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 đó, chúng tôi đã định cấu hình tốc độ truyền 9600bps ở Tần số tinh thể 11,0592MHz. Chúng tôi đang theo dõi sổ đăng ký 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 được xác định trước.
lcdcmd (1); lcdstring ("Đặt thẻ của bạn:"); lcdcmd (0xc0); i = 0; for (i = 0; i <12; i ++) rfid = rxdata (); rfid = '\ 0'; lcdcmd (1);
Nếu những người xuất hiện trận đấu thì bộ điều khiển sẽ tăng lượng người tham dự lên một. Còi bíp khác chạy liên tục và màn hình LCD hiển thị thẻ không hợp lệ.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {count1 ++; lcdcmd (1); lcdstring ("Điểm danh"); lcdcmd (0xc0); lcdstring ("Đã đăng ký"); chậm trễ (200); lcdcmd (1); lcdstring ("Sinh vien1"); lcdcmd (0xc0); lcdstring ("Số đính kèm:"); sprintf (kết quả, "% d", count1); lcdstring (kết quả);
Bố cục PCB
Đây là cách bố trí PCB cho Hệ thống chấm công dựa trên RFID: