Circuit de verrouillage de sécurité RFID - Code de programme complet et détails des tests

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous verrons comment un circuit de lecteur RFID basé sur Arduino pourrait être utilisé pour contrôler un relais, qui à son tour pourrait être utilisé dans des applications de verrouillage de porte de sécurité.

Aperçu

Si vous n'avez pas encore consulté l'article précédent sur la RFID, veuillez le consulter, il couvrait la bases de la technologie RFID .



Nous allons identifier les balises autorisées à l'aide de l'UID. En un mot, l'UID est le numéro d'identification unique de la balise, lorsque vous scannez votre carte à votre bureau ou ailleurs, il extrait l'UID de la carte.

L'UID de la carte est sauvegardé dans la base de données de votre bureau et il reconnaîtra le titulaire de la carte et enregistrera votre présence.



La balise transfère non seulement l'UID, mais transfère également certaines autres informations qui sont stockées dans la balise, les balises peuvent généralement stocker de 1 Ko à 4 Ko parfois même plus.

Nous ne discuterons pas de la manière de stocker des informations sur la balise, mais nous en parlerons dans un prochain article. Dans cet article, nous allons utiliser le numéro UID pour contrôler le relais ON / OFF .

La devise de ce projet est d'allumer / d'éteindre l'appareil, qui est connecté à la configuration donnée lors de la numérisation avec une étiquette RFID autorisée.

L'UID de la carte est défini dans le programme et lorsque la carte autorisée est détectée, il allumera le relais lors du premier scan et le scanner à nouveau désactivera le relais.

Si une carte non autorisée est détectée, elle émettra un message d'erreur sur le moniteur série et le relais continuera sa tâche actuelle sans aucune interruption.

Ici, lorsque la carte autorisée est scannée, le relais s'active / se désactive, ce mécanisme peut être utilisé n'importe où, par exemple dans: système de verrouillage de porte, où la carte autorisée doit être scannée pour ouvrir la porte.

Comment ça fonctionne:

Circuit de verrouillage de sécurité RFID utilisant Arduino

Le circuit RFID se compose de LED qui indiquent l'état du relais, le transistor BC 548 pilote le relais et la diode 1N4007 est connectée à travers le relais pour arrêter la pointe de haute tension au moment de la commutation.

Si vous souhaitez connecter un relais de tension nominale plus élevée (9V ou 12V), vous pouvez connecter une alimentation externe + Ve au relais et une alimentation –Ve à la masse de la broche GND de l’arduino. Veuillez faire très attention lors de cette étape, car vous pourriez endommager la carte si les connexions ne sont pas correctes.

L'étape suivante après avoir terminé la configuration matérielle consiste à télécharger le code pour trouver l'UID de votre balise.
Maintenant, téléchargez le programme ci-dessous sur arduino, ouvrez le moniteur série et scannez l'étiquette.

Programme pour trouver l'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 ()
}

La sortie sur moniteur série (exemple):

L'UID de votre carte est: AA: BB: CC: DD

Sur le moniteur série, vous verrez du code hexadécimal, qui est l'UID de la balise. Notez-le, qui sera utilisé dans le prochain programme pour identifier la balise.
Une fois cette étape terminée, téléchargez le code ci-dessous sur la même configuration.

Programme d'identification de la carte et du relais de contrôle:

//---------------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' // Placez votre UID de votre tag ici.
Remplacez XX: XX: XX: XX par votre UID.

Prototype de l'auteur qui peut être utilisé efficacement comme serrure de sécurité RFID infaillible pour les portes et coffres-forts:

Lorsqu'une carte autorisée est numérisée:

Lorsqu'un tag non autorisé est analysé:

Si vous avez des questions concernant ce circuit de verrouillage de sécurité RFID Arduino, n'hésitez pas à demander ci-dessous dans la section des commentaires.




Précédent: Contrôle de phase Triac utilisant PWM proportionnel au temps Un article: Circuit lumineux de sécurité pour passage pour piétons