RFID Security Lock Circuit - Vollständiger Programmcode und Testdetails

RFID Security Lock Circuit - Vollständiger Programmcode und Testdetails

In diesem Artikel werden wir sehen, wie eine Arduino-basierte RFID-Leseschaltung zur Steuerung eines Relais verwendet werden kann, das wiederum in Sicherheitstürschlossanwendungen verwendet werden kann.

Überblick

Wenn Sie den vorherigen RFID-Artikel noch nicht überprüft haben, lesen Sie ihn bitte durch Grundlagen der RFID-Technologie .



Wir werden die autorisierten Tags mithilfe der UID identifizieren. Kurz gesagt, UID ist die eindeutige Identifikationsnummer des Tags. Wenn Sie Ihre Karte in Ihrem Büro oder anderswo scannen, wird die UID aus der Karte extrahiert.



Die UID der Karte wird in der Datenbank Ihres Büros gespeichert und erkennt den Karteninhaber und registriert Ihre Teilnahme.

Das Tag überträgt nicht nur die UID, sondern auch einige andere Informationen, die im Tag gespeichert sind. Die Tags können im Allgemeinen von 1 KB bis 4 KB manchmal sogar mehr speichern.



Wir werden nicht diskutieren, wie Informationen auf dem Tag gespeichert werden, aber es wird in einem zukünftigen Artikel besprochen. In diesem Beitrag werden wir die UID-Nummer verwenden, um die zu steuern Relais EIN / AUS .

Das Motto dieses Projekts ist das Ein- und Ausschalten des Geräts, das mit dem angegebenen Setup beim Scannen mit einem autorisierten RFID-Tag verbunden ist.

Die UID der Karte wird im Programm definiert. Wenn eine autorisierte Karte erkannt wird, wird das Relais beim ersten Scan eingeschaltet und beim erneuten Scannen wird das Relais deaktiviert.



Wenn eine nicht autorisierte Karte erkannt wird, wird auf dem seriellen Monitor eine Fehlermeldung ausgegeben, und das Relais setzt seine aktuelle Aufgabe ohne Unterbrechung fort.

Wenn die autorisierte Karte gescannt wird, wird das Relais aktiviert / deaktiviert. Dieser Mechanismus kann überall verwendet werden, z. B. in: Türverriegelungssystemen, in denen die autorisierte Karte gescannt werden muss, um die Tür zu öffnen.

Wie es funktioniert:

RFID Security Lock Circuit mit Arduino

Die RFID-Schaltung besteht aus einer LED, die den Status des Relais anzeigt. Der BC 548-Transistor steuert das Relais an und die 1N4007-Diode ist über das Relais geschaltet, um die Hochspannungsspitze zum Zeitpunkt des Schaltens anzuhalten.

Wenn Sie ein Relais mit höherer Nennspannung (9 V oder 12 V) anschließen möchten, können Sie die externe + Ve-Versorgung an das Relais und die –Ve-Versorgung an die Masse des GND-Pins des Arduino anschließen. Bitte seien Sie vorsichtig, während Sie diesen Schritt ausführen, da Sie die Platine beschädigen können, wenn die Verbindungen nicht richtig sind.

Der nächste Schritt nach Abschluss des Hardware-Setups besteht darin, den Code hochzuladen, um die UID Ihres Tags zu ermitteln.
Laden Sie nun das unten angegebene Programm auf arduino hoch, öffnen Sie den seriellen Monitor und scannen Sie das Tag.

Programm zum Finden der 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 ()
}

Die Ausgabe auf dem seriellen Monitor (Beispiel):

Die UID Ihrer Karte lautet: AA: BB: CC: DD

Auf dem seriellen Monitor wird ein hexadezimaler Code angezeigt, der die UID des Tags darstellt. Notieren Sie es sich, das im nächsten Programm zur Identifizierung des Tags verwendet wird.
Laden Sie nach Abschluss dieses Schritts den folgenden Code im selben Setup hoch.

Programm zur Identifizierung der Karte und des Steuerrelais:

//---------------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' // Platziere deine UID deines Tags hier.
Ersetzen Sie XX: XX: XX: XX durch Ihre UID.

Prototyp des Autors, der effektiv als kinderleichtes RFID-Sicherheitsschloss für Türen und Safes verwendet werden kann:

Wenn eine autorisierte Karte gescannt wird:

Wenn ein nicht autorisiertes Tag gescannt wird:

Wenn Sie Fragen zu diesem Arduino RFID-Sicherheitsschloss haben, wenden Sie sich bitte unten im Kommentarbereich.




Zurück: Triac-Phasensteuerung mit PWM Time Proportional Weiter: Beleuchteter Crosswalk-Sicherheitslichtkreis