מעגל קורא RFID באמצעות ארדואינו

נסה את הכלי שלנו לביטול בעיות





במאמר זה אנו הולכים לערוך סיור על טכנולוגיית מעגלי RFID. אנו נבדוק כיצד תגי RFID וקוראים עובדים, כיצד לממשק את מודול ה- RFID (RC522) עם Arduino ולהפיק מידע שימושי מתגי ה- RFID.

שימוש בתגי RFID

אני בטוח שכל אחד מכם השתמש ב- RFID כדי לקבל גישה לביטחון לפחות פעם אחת במשרד, בבית הספר, במכללה, בספרייה וכו '.



בתג / כרטיס שאתה נושא יש מוטבע שבב אלקטרוני, השבב מאחסן את זהותך באופן אלקטרוני. שלא כמו ברקודים, כאשר הכרטיס צריך להיות קו ראייה של הקורא, ניתן למקם RFID קרוב לקורא כדי לקרוא את המידע.

רוב הכרטיסים החכמים שלנו משתמשים בטכנולוגיית RFID פסיבית, כלומר אין צורך בכוח לקרוא את המידע מהכרטיס. הקורא מפעיל את שבב ה- RFID ומחלץ מידע בו זמנית.



תגים מסוג זה יכולים לקרוא מידע ממילימטרים עד מטרים ספורים, תלוי בתג וביישום.

תגי RFID פעילים מופעלים חיצונית, תגים מסוג זה מעבירים את המידע עד 100 מטר. צריכת החשמל של הסוללה מותאמת לשנים האחרונות.

בפרויקט זה אנו הולכים לבחון טכנולוגיית RFID פסיבית. אנו משתמשים במודול קורא RC522 יחד עם arduino להפקת מידע ולהצגתו. מודול RC522 זמין בדרך כלל באתרי מסחר אלקטרוני ובחנות ערכות אלקטרוניקה מקומיות.

איור של מודול קורא / כותב RC522:

מודול קורא / כותב RC522

תגיות מסוג כרטיס ומחזיק מפתחות:

תגי סוג כרטיס ומחזיק מפתחות

כפי שאנו רואים זאת, חלק מה- PCB מוקף בנתיב מוליך בצורה מרובעת על הקורא, זה ייצור שדה אלקטרומגנטי לתג בתדר 13.56MHz.

ה- EMF שנוצר נבחר על ידי התגית וממיר למתח מספיק בכדי שהתג יפעל, התג ישלח את המידע הדרוש בצורה דופק בחזרה לקורא. המיקרו-בקר המשולב מפענח את המידע.

איך זה עובד

מעגל RFID באמצעות ארדואינו

הסכימטי קל מאוד ומובן מאליו, מספיק חוטי מגשר כדי להשיג את הפרויקט הזה. אנו הולכים להניע את הארדואינו וה- RFID דרך יציאת USB של המחשב. מתח ההפעלה של RC522 הוא 3.3 וולט, אל תחבר אספקת 5 וולט למודול ויפגע ברכיבי הלוח.

אב טיפוס של מעגל RFID של Arduino:

זה כל חיבורי החומרה, עכשיו בוא נקפוץ לקידוד.

לפני העלאת התוכנית, הורד את קובץ הספרייה מהקישור הבא ועבר לתיקיית הספריה של arduino IDE.

github.com/miguelbalboa/rfid.git

קוד תכנית:

//-------------------------Program developed by R.Girish------------------//
#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 ()
}
//-------------------------Program developed by R.Girish------------------//

בסדר! מה התוכנה לעיל תוכננה לתפקד?

התוכנית שלעיל תציג את ה- UID של התג בצג הסידורי של IDE, כאשר אתה סורק על הקורא. UID הוא מספר זיהוי ייחודי של התג, לא ניתן לשנות אותו והוא מוגדר על ידי היצרן.

תְפוּקָה:

ה- UID של הכרטיס שלך: FA: 4E: B2 // זו דוגמה.

הערה 1: כל שני הערכים מופרדים על ידי נקודתיים, מה שנעשה על ידי התוכנית. ערכים אמיתיים עשויים שלא להיות מופרדים על ידי נקודתיים, אלא על ידי שטח.

הערה 2: רק תגי RFID המיוצרים על ידי NXP ניתנים לקריאה / כתיבה עם ההתקנה המוצעת, אלה נפוצים ומסחרית.

ה- UID משמש לזיהוי התג שהתג שמגיע יחד עם הערכה יכול לאחסן עד 1KB מידע. ישנם כרטיסים אחרים שיכולים לאחסן עד 4KB מידע או אפילו יותר.

תהליך אחסון ומיצוי המידע מהתג הנו נושא למאמר אחר.
אם יש לך שאלה בנוגע לפרויקט זה, אל תהסס לשאול בסעיף ההערות.




קודם: מעגל חיישן לחץ ברומטרי - פרטי עבודה וממשק הבא: בקרת שלב טריאק באמצעות פרופורציונאלי זמן PWM