Блокировка безопасности RFID
Мы собираемся идентифицировать авторизованные теги с использованием UID. В двух словах UID - это уникальный идентификационный номер тега, когда вы просматриваете свою карту в офисе или где-либо еще, она извлекает UID с карты. UID карты сохраняется в базе данных вашего офиса, и он узнает владельца карты и зарегистрирует ваше участие. Тег не только передает UID, но также передает некоторую другую информацию, которая хранится в теге, теги обычно могут хранить от 1 КБ до 4 КБ, иногда даже больше. Мы не будем обсуждать, как хранить информацию о теге, но это будет обсуждаться в следующей статье. В этом сообщении мы будем использовать номер UID для управления включением / выключением реле. Девизом этого проекта является включение / выключение устройства, которое связано с данной установкой при сканировании с помощью разрешенной метки RFID. UID карты определяется в программе и, когда авторизованная карта обнаружена, она включит реле при первом сканировании и сканирование снова отключит реле. Если обнаружена какая-либо неавторизованная карта, она выдаст сообщение об ошибке на последовательном мониторе, а реле продолжит текущую задачу без прерывания. Здесь, когда проверяется авторизированная карта, реле активируется / деактивируется, этот механизм можно использовать где угодно, например, в: системе блокировки двери, где авторизованная карта должна быть отсканирована, чтобы открыть дверь.
Схема RFID состоит из светодиода, который указывает состояние реле, транзистор BC 548 управляет реле, а диод 1N4007 подключается через реле для остановки всплеска высокого напряжения в момент переключения. Если вы хотите подключить реле номинального напряжения более высокого напряжения (9 В или 12 В), вы можете подключить внешнее питание + Ve к реле и -Ve подать на землю заземляющего вывода arduino. Пожалуйста, примите во внимание, что при выполнении этого шага вы можете повредить плату, если соединения неправильные. Следующим шагом после завершения установки оборудования является загрузка кода для поиска UID вашего тега. Теперь загрузите приведенную ниже программу в arduino, откройте последовательный монитор и сканируйте тег.
Программа для поиска UID:
#include <SPI.h>
#include <MFRC522.h>
#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 тега. Запишите его вниз, который будет использоваться в следующей программе для идентификации тега. По завершении этого действия загрузите приведенный ниже код в ту же настройку.
Программа для идентификации карты и контрольного реле:
//---------------Program developed by R.Girish------------//
#include <SPI.h>
#include <MFRC522.h>
#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 выполнена