이 프로젝트에서는 RFID 및 키패드 기반 보안 시스템 을 개발할 예정 입니다. 이 프로젝트는 8051 마이크로 컨트롤러를 사용하여 구현됩니다. RFID 기술 (Radio Frequency Identification and Detection)은 유효한 RFID 태그가있는 사람을 자동으로 인증하기 위해 다양한 목적으로 학교, 대학, 사무실 및 역에서 일반적으로 사용됩니다. 여기서는 태그와 관련된 암호와 함께 RFID 태그를 확인하여 시스템을 보호합니다.
일
전체 보안 시스템은 리더 섹션, 키패드, 컨트롤 섹션, 드라이버 섹션 및 디스플레이 섹션으로 나눌 수 있습니다. 전체 시스템의 작동과 각 섹션의 역할은 아래 블록 다이어그램을 통해 이해할 수 있습니다.
리더 섹션: 이 섹션에는 RFID가 포함되어 있습니다. 하나는 RFID 리더이고 다른 하나는 RFID 태그 또는 카드입니다. RFID 리더 근처에 RFID 태그를 놓으면 태그 데이터를 직렬로 읽습니다. 여기서 사용한 RFID 태그는 12 자리 문자 코드 또는 일련 번호가 있습니다. 이 RFID는 9600bps의 전송 속도로 작동합니다.
키패드: 여기서는 시스템에 암호를 입력하기 위해 4x4 매트릭스 키패드를 사용했습니다.
제어 섹션: 8051 마이크로 컨트롤러는이 RFID 기반 보안 시스템 의 전체 프로세스를 제어하는 데 사용 됩니다. 여기서 8051을 사용하여 RFID 데이터를 수신하고 LCD에 상태 또는 메시지를 보냅니다.
디스플레이 섹션: 6x2 LCD는이 프로젝트에서 메시지를 표시하는 데 사용됩니다. 여기에서 튜토리얼을 볼 수 있습니다. 8051 마이크로 컨트롤러와 LCD 인터페이스
드라이버 섹션: 이 섹션에는 게이트를 열기위한 모터 드라이버 L293D와 표시를위한 BC547 NPN 트랜지스터가있는 버저가 있습니다.
사람이 RFID 태그를 RFID 리더기에 넣으면 RFID가 태그의 데이터를 읽고 8051 마이크로 컨트롤러로 전송 한 다음 마이크로 컨트롤러가이 데이터를 미리 정의 된 데이터와 비교합니다. 데이터가 미리 정의 된 데이터와 일치하면 마이크로 컨트롤러는 암호를 요청하고 암호를 입력 한 후 마이크로 컨트롤러는 암호를 미리 정의 된 암호와 비교합니다. 비밀번호 일치 게이트가 열리면 LCD에 Access denied가 표시되고 부저음이 잠시 울립니다.
회로도 및 설명
위의 RFID 보안 시스템 회로도에서 볼 수 있듯이 16x2 LCD는 마이크로 컨트롤러와 4 비트 모드로 연결됩니다. LCD의 RS, RW 및 EN 핀은 PORT 1 핀 번호 P1.0, P1.1 및 P1.2에 직접 연결됩니다. LCD의 D4, D5, D6 및 D7 핀은 포트 1의 P1.4, P1.5, P1.6 및 P1.7 핀에 직접 연결됩니다. 모터 드라이버는 PORT 핀 번호 P2.4 및 P2.5에 연결됩니다. 부저는 PORT2의 P2.6에 연결됩니다. 그리고 키패드는 PORT0에 연결됩니다. 키패드 행은 P0.4 – P0.7에서 연결되고 열은 P0.0 – P0.3에서 연결됩니다.
프로그램 설명
RFID 기반 보안 시스템 용 8051 마이크로 컨트롤러를 프로그래밍하는 동안 먼저 헤더 파일을 포함하고 입력 및 출력 핀과 변수를 정의합니다.
#포함
그런 다음 키패드 모듈의 핀을 정의합니다.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit row1 = P0 ^ 4; sbit 행 2 = P0 ^ 5; sbit row3 = P0 ^ 6; sbit 행 4 = P0 ^ 7;
그 후 지연을위한 함수를 만들었습니다.
void delay (int itime) {int i, j; for (i = 0; i
그런 다음 LCD 기능을 만들고 LCD 기능을 초기화합니다.
void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
여기에 우리 프로그램에서 사용한 몇 가지 기능이 있습니다. 여기에서는 11.0592MHz 크리스탈 주파수에서 9600bps 보오율을 구성했으며 수신 기능은 데이터 수신을 위해 SBUF 레지스터를 모니터링하고 있습니다.
무효 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);
일치가 발생하면 컨트롤러가 게이트를 열고 그렇지 않으면 부저가 시작되고 LCD에 잘못된 카드가 표시됩니다.