RFID Security Lock Circuit - Πλήρης κωδικός προγράμματος και λεπτομέρειες δοκιμής

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Σε αυτό το άρθρο θα δούμε πώς θα μπορούσε να χρησιμοποιηθεί ένα κύκλωμα ανάγνωσης RFID με βάση το Arduino για τον έλεγχο ενός ρελέ, το οποίο με τη σειρά του θα μπορούσε να χρησιμοποιηθεί σε εφαρμογές κλειδώματος πόρτας ασφαλείας.

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Εάν δεν έχετε ελέγξει ακόμη το προηγούμενο άρθρο RFID, προχωρήστε το ελέγξτε, κάλυψε το βασικά στοιχεία της τεχνολογίας RFID .



Θα προσδιορίσουμε τις εξουσιοδοτημένες ετικέτες χρησιμοποιώντας UID. Με λίγα λόγια, το UID είναι ο μοναδικός αριθμός αναγνώρισης της ετικέτας, όταν σαρώσετε την κάρτα σας στο γραφείο σας ή οπουδήποτε αλλού, εξάγει το UID από την κάρτα.

Το UID της κάρτας αποθηκεύεται στη βάση δεδομένων του γραφείου σας και θα αναγνωρίσει τον κάτοχο της κάρτας και θα δηλώσει την παρουσία σας.



Η ετικέτα όχι μόνο μεταφέρει UID, αλλά επίσης μεταφέρει κάποιες άλλες πληροφορίες που είναι αποθηκευμένες στην ετικέτα, οι ετικέτες μπορούν γενικά να αποθηκεύουν από 1KB σε 4KB μερικές φορές ακόμη περισσότερο.

Δεν θα συζητήσουμε πώς να αποθηκεύουμε πληροφορίες στην ετικέτα, αλλά θα συζητηθούν σε μελλοντικό άρθρο. Σε αυτήν την ανάρτηση θα χρησιμοποιήσουμε τον αριθμό UID για τον έλεγχο του ON / OFF ρελέ .

Το σύνθημα αυτού του έργου είναι να ενεργοποιήσετε / απενεργοποιήσετε τη συσκευή, η οποία συνδέεται με τη δεδομένη ρύθμιση για σάρωση με εξουσιοδοτημένη ετικέτα RFID.

Το UID της κάρτας ορίζεται στο πρόγραμμα και όταν εντοπιστεί εξουσιοδοτημένη κάρτα, θα ενεργοποιήσει το ρελέ στην πρώτη σάρωση και αν το σαρώσετε ξανά, θα απενεργοποιηθεί το ρελέ.

Εάν εντοπιστεί οποιαδήποτε μη εξουσιοδοτημένη κάρτα, θα δώσει μήνυμα σφάλματος στη σειριακή οθόνη και το ρελέ θα συνεχίσει την τρέχουσα εργασία του χωρίς διακοπή.

Εδώ όταν σαρώνεται η εξουσιοδοτημένη κάρτα, το ρελέ ενεργοποιείται / απενεργοποιείται, αυτός ο μηχανισμός μπορεί να χρησιμοποιηθεί οπουδήποτε, για παράδειγμα σε: σύστημα κλειδώματος πόρτας, όπου η εξουσιοδοτημένη κάρτα πρέπει να σαρωθεί για να ανοίξει η πόρτα.

Πως δουλεύει:

Κύκλωμα κλειδώματος ασφαλείας RFID χρησιμοποιώντας το Arduino

Το κύκλωμα RFID αποτελείται από LED που υποδεικνύει την κατάσταση του ρελέ, το τρανζίστορ BC 548 κινεί το ρελέ και η δίοδος 1N4007 συνδέεται κατά μήκος του ρελέ για να σταματήσει την ακίδα υψηλής τάσης κατά τη στιγμή της αλλαγής.

Αν θέλετε να συνδέσετε ρελέ με υψηλότερη τάση (9V ή 12V), μπορείτε να συνδέσετε εξωτερική τροφοδοσία + Ve σε ρελέ και –Ve τροφοδοσία στη γείωση του πείρου GND του arduino. Προσέξτε όσο περισσότερο προχωράτε σε αυτό το βήμα, καθώς ενδέχεται να προκαλέσετε ζημιά στον πίνακα εάν οι συνδέσεις δεν είναι σωστές.

Το επόμενο βήμα μετά την ολοκλήρωση της ρύθμισης υλικού είναι να ανεβάσετε τον κωδικό για να βρείτε το 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 της ετικέτας. Σημειώστε το, το οποίο θα χρησιμοποιηθεί στο επόμενο πρόγραμμα για την αναγνώριση της ετικέτας.
Αφού ολοκληρωθεί αυτό το βήμα, ανεβάστε τον παρακάτω κώδικα στην ίδια ρύθμιση.

Πρόγραμμα αναγνώρισης της κάρτας και του ρελέ ελέγχου:

//---------------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, μη διστάσετε να ρωτήσετε παρακάτω στην ενότητα σχολίων.




Προηγούμενο: Triac Phase Control χρησιμοποιώντας PWM Time Proportional Επόμενο: Φωτιζόμενο κύκλωμα ασφαλείας Crosswalk