RFID 보안 잠금 회로 – 전체 프로그램 코드 및 테스트 세부 정보

문제를 제거하기 위해 도구를 사용해보십시오





이 기사에서는 Arduino 기반 RFID 판독기 회로를 릴레이 제어에 사용하는 방법을 살펴 보겠습니다. 릴레이 제어는 보안 도어록 애플리케이션에 사용할 수 있습니다.

개요

이전 RFID 기사를 아직 확인하지 않았다면 계속 확인하십시오. RFID 기술의 기초 .



UID를 사용하여 승인 된 태그를 식별 할 것입니다. 요컨대 UID는 태그의 고유 한 식별 번호로, 사무실이나 다른 곳에서 카드를 스캔 할 때 카드에서 UID를 추출합니다.

카드의 UID는 사무실 데이터베이스에 저장되며 카드 소지자를 인식하고 출석을 등록합니다.



태그는 UID를 전송할뿐만 아니라 태그에 저장된 다른 정보도 전송합니다. 태그는 일반적으로 1KB에서 4KB까지 저장할 수 있습니다.

태그에 정보를 저장하는 방법에 대해서는 논의하지 않겠지 만 향후 기사에서 논의 할 것입니다. 이 게시물에서는 UID 번호를 사용하여 릴레이 ON / OFF .

이 프로젝트의 모토는 승인 된 RFID 태그로 스캔시 지정된 설정과 연결된 장치를 켜거나 끄는 것입니다.

카드의 UID는 프로그램에 정의되어 있으며 인증 된 카드가 감지되면 첫 번째 스캔에서 릴레이를 켜고 다시 스캔하면 릴레이가 비활성화됩니다.

승인되지 않은 카드가 감지되면 직렬 모니터에 오류 메시지를 표시하고 릴레이는 중단없이 현재 작업을 계속합니다.

여기에서 승인 된 카드가 스캔되면 릴레이가 활성화 / 비활성화되며,이 메커니즘은 예를 들어 문을 열기 위해 승인 된 카드를 스캔해야하는 도어 잠금 시스템과 같은 어디에서나 사용할 수 있습니다.

작동 원리 :

Arduino를 사용한 RFID 보안 잠금 회로

RFID 회로는 릴레이의 상태를 나타내는 LED로 구성되며 BC 548 트랜지스터는 릴레이를 구동하며 1N4007 다이오드는 릴레이를 통해 연결되어 스위칭 순간 고전압 스파이크를 저지합니다.

더 높은 전압 정격 릴레이 (9V 또는 12V)를 연결하려면 외부 + Ve 전원을 릴레이에 연결하고 –Ve 전원을 arduino의 GND 핀 접지에 연결할 수 있습니다. 연결이 올바르지 않을 경우 보드가 손상 될 수 있으므로이 단계를 진행하는 동안 최대한주의하십시오.

하드웨어 설정을 완료 한 후 다음 단계는 코드를 업로드하여 태그의 UID를 찾는 것입니다.
이제 아래 주어진 프로그램을 arduino에 업로드하고 직렬 모니터를 열고 태그를 스캔하십시오.

UID를 찾는 프로그램 :

#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
}
void loop() {
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K)
{
Serial.println(F('Your tag is not of type MIFARE Classic, your card/tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++) {
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
Serial.print('Your card's UID: ')
Serial.println(StrID)
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}

직렬 모니터의 출력 (예) :

카드의 UID는 AA : BB : CC : DD입니다.

직렬 모니터에 태그의 UID 인 16 진수 코드가 표시됩니다. 다음 프로그램에서 태그를 식별하는 데 사용됩니다.
이 단계가 완료되면 동일한 설정에 아래 코드를 업로드하십시오.

카드 및 제어 릴레이를 식별하는 프로그램 :

//---------------Program developed by R.Girish------------//
#include
#include
#define SS_PIN 10
#define RST_PIN 9
int flag=0
int op=8
char UID[] = 'XX:XX:XX:XX' //Place your UID of your tag here.
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
pinMode(op,OUTPUT)
}
void loop()
{
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
Serial.println(F('Your tag is not of type MIFARE Classic, your tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++)
{
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
if(StrID!=UID)
{
Serial.println('This is an invalid tag :(')
Serial.println('***************************************')
delay(2000)
}
if (StrID==UID && flag==0)
{
flag=1
digitalWrite(op,HIGH)
Serial.println('This is a vaild tag :)')
Serial.println('Status: ON')
Serial.println('***************************************')
delay(2000)
}
else if(StrID==UID && flag==1)
{
flag=0
digitalWrite(op,LOW)
Serial.println('This is a vaild tag :)')
Serial.println('Status: OFF')
Serial.println('***************************************')
delay(2000)
}
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}
//---------------Program developed by R.Girish------------//

char UID [] = 'XX : XX : XX : XX'// 여기에 태그의 UID를 배치합니다.
XX : XX : XX : XX를 UID로 바꿉니다.

문과 금고를위한 완벽한 RFID 보안 잠금 장치로 효과적으로 사용할 수있는 저자의 프로토 타입 :

승인 된 카드가 스캔되는 경우 :

승인되지 않은 태그가 스캔되는 경우 :

이 Arduino RFID 보안 잠금 회로에 대한 질문이 있으시면 아래 의견 섹션에서 언제든지 질문하십시오.




Previous : PWM 시간 비례를 사용한 트라이 액 위상 제어 다음 : 조명 된 횡단 보도 안전 라이트 회로