Circuito di blocco di sicurezza RFID - Codice programma completo e dettagli sui test

Prova Il Nostro Strumento Per Eliminare I Problemi





In questo articolo vedremo come un circuito lettore RFID basato su Arduino potrebbe essere utilizzato per controllare un relè, che a sua volta potrebbe essere utilizzato nelle applicazioni di blocco delle porte di sicurezza.

Panoramica

Se non hai ancora controllato il precedente articolo RFID, vai avanti, controlla, ha coperto il basi della tecnologia RFID .



Identificheremo i tag autorizzati utilizzando l'UID. In poche parole l'UID è il numero di identificazione univoco del tag, quando si esegue la scansione della carta in ufficio o in qualsiasi altro luogo, estrae l'UID dalla carta.

L'UID della tessera viene salvato nel database del tuo ufficio e riconoscerà il titolare della tessera e registrerà la tua presenza.



Il tag non solo trasferisce l'UID, ma trasferisce anche alcune altre informazioni memorizzate nel tag, i tag possono generalmente memorizzare da 1KB a 4KB a volte anche di più.

Non discuteremo su come memorizzare le informazioni sul tag, ma ne parleremo in un prossimo articolo. In questo post utilizzeremo il numero UID per controllare il file relè ON / OFF .

Il motto di questo progetto è quello di accendere / spegnere il dispositivo, che è collegato alla configurazione data in scansione con tag RFID autorizzato.

L'UID della carta è definito nel programma e quando viene rilevata la carta autorizzata, accenderà il relè alla prima scansione e la scansione di nuovo disattiverà il relè.

Se viene rilevata una scheda non autorizzata, emetterà un messaggio di errore sul monitor seriale e il relè continuerà la sua attività corrente senza alcuna interruzione.

Qui quando la carta autorizzata viene scansionata, il relè si attiva / disattiva, questo meccanismo può essere utilizzato ovunque, ad esempio in: sistema di chiusura della porta, dove la carta autorizzata deve essere scansionata per aprire la porta.

Come funziona:

Circuito di blocco di sicurezza RFID con Arduino

Il circuito RFID è costituito da LED che indicano lo stato del relè, il transistor BC 548 pilota il relè e il diodo 1N4007 è collegato attraverso il relè per arrestare il picco di alta tensione nell'istante della commutazione.

Se si desidera collegare un relè con tensione nominale più elevata (9 V o 12 V), è possibile collegare l'alimentazione + Ve esterna al relè e l'alimentazione –Ve a massa del pin GND di arduino. Prestare la massima attenzione mentre si procede in questo passaggio, poiché si potrebbe danneggiare la scheda se i collegamenti non sono corretti.

Il passaggio successivo dopo aver completato la configurazione dell'hardware è caricare il codice per trovare l'UID del tag.
Ora carica il programma indicato di seguito su arduino, apri il monitor seriale e scansiona il tag.

Programma per trovare 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 ()
}

L'output su monitor seriale (esempio):

L'UID della tua carta è: AA: BB: CC: DD

Sul monitor seriale, vedrai un codice esadecimale, che è l'UID del tag. Annotatelo, che verrà utilizzato nel prossimo programma per identificare il tag.
Al termine di questo passaggio, carica il codice riportato di seguito nella stessa configurazione.

Programma per identificare la scheda e il relè di controllo:

//---------------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' // Inserisci qui il tuo UID del tag.
Sostituisci XX: XX: XX: XX con il tuo UID.

Prototipo dell'autore che può essere efficacemente utilizzato come serratura di sicurezza RFID infallibile per porte e casseforti:

Quando una carta autorizzata viene scansionata:

Quando viene scansionato un tag non autorizzato:

In caso di domande su questo circuito di blocco di sicurezza RFID Arduino, non esitate a chiedere di seguito nella sezione commenti.




Precedente: Triac Phase Control utilizzando PWM Time Proportional Avanti: Circuito luminoso di sicurezza attraversamento pedonale illuminato