دائرة قارئ RFID باستخدام Arduino

جرب أداة القضاء على المشاكل





في هذه المقالة سنقوم بجولة حول تقنية دوائر RFID. سنستكشف كيفية عمل علامات RFID والقارئات ، وكيفية واجهة وحدة RFID (RC522) مع Arduino واستخراج بعض المعلومات المفيدة من علامات RFID.

استخدام علامات RFID

أنا متأكد من أن كل واحد منكم قد استخدم RFID للحصول على وصول الأمان مرة واحدة على الأقل في المكتب أو المدرسة أو الكلية أو المكتبة وما إلى ذلك.



تحتوي البطاقة / البطاقة التي تحملها على شريحة إلكترونية مضمنة فيها ، وتقوم الشريحة بتخزين هويتك إلكترونيًا. على عكس الرموز الشريطية ، حيث يجب أن تكون البطاقة على خط رؤية القارئ ، يمكن وضع RFID بالقرب من القارئ لقراءة المعلومات.

تستخدم معظم بطاقاتنا الذكية تقنية RFID السلبية ، مما يعني عدم الحاجة إلى طاقة لقراءة المعلومات من البطاقة. يقوم القارئ بتشغيل شريحة RFID ويستخرج المعلومات في نفس الوقت.



يمكن لهذه الأنواع من العلامات قراءة المعلومات من ملليمترات إلى بضعة أقدام ، اعتمادًا على العلامة والتطبيق.

يتم تشغيل علامات RFID النشطة خارجيًا ، وتنقل هذه الأنواع من العلامات المعلومات حتى 100 قدم. تم تحسين استهلاك طاقة البطارية لتدوم بضع سنوات.

في هذا المشروع سنلقي نظرة على تقنية RFID السلبية. نحن نستخدم وحدة قارئ RC522 مع اردوينو لاستخراج المعلومات وعرضها. وحدة RC522 متاحة بشكل شائع في مواقع التجارة الإلكترونية ومتجر مجموعات الإلكترونيات المحلية.

رسم توضيحي لوحدة قارئ / كاتب RC522:

RC522 قارئ / كاتب وحدة

علامات نوع البطاقة والمفاتيح:

البطاقات ونوع المفاتيح

كما نرى ، فإن جزءًا من ثنائي الفينيل متعدد الكلور محاط بمسار توصيل في شكل مربع على القارئ ، وهذا سيولد مجالًا كهرومغناطيسيًا للعلامة بتردد 13.56 ميجا هرتز.

يتم اختيار EMF المتولد بواسطة العلامة ويتحول إلى جهد كافي لتشغيل العلامة ، وستقوم العلامة بإرسال المعلومات الضرورية في شكل نبض إلى القارئ. يقوم المتحكم الدقيق الموجود على متن الطائرة بفك تشفير المعلومات.

كيف تعمل

دائرة RFID باستخدام Arduino

التخطيطي سهل للغاية ولا يحتاج إلى شرح ، يكفي عدد قليل من أسلاك العبور لإنجاز هذا المشروع. سنقوم بتشغيل اردوينو و RFID عبر منفذ USB للكمبيوتر. جهد التشغيل لـ RC522 هو 3.3 فولت ، لا تقم بتوصيل مصدر 5 فولت بالوحدة وسيؤدي ذلك إلى إتلاف المكونات الموجودة على اللوحة.

نموذج دائرة اردوينو RFID:

هذه هي كل اتصالات الأجهزة ، فلننتقل الآن إلى الترميز.

قبل تحميل البرنامج ، قم بتنزيل ملف المكتبة من الرابط التالي وانتقل إلى مجلد مكتبة 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------------------//

موافق! ما الذي صممه البرنامج أعلاه ليعمل؟

سيعرض البرنامج أعلاه المعرف الفريد للعلامة في الشاشة التسلسلية لـ IDE ، عند مسح القارئ. UID هو رقم تعريف فريد للعلامة ، ولا يمكن تغييره ويتم تعيينه من قبل الشركة المصنعة.

انتاج:

UID الخاص ببطاقتك: FA: 4E: B2 // هذا مثال.

ملاحظة 1: يتم فصل كل قيمتين بنقطتين ، والذي يتم بواسطة القيم الحقيقية للبرنامج قد لا يتم فصلها بنقطتين ولكن ، بدلاً من المسافة.

ملاحظة 2: علامات RFID المصنعة من قبل NXP هي فقط قابلة للقراءة / للكتابة مع الإعداد المقترح ، وهي شائعة الاستخدام وتجاريًا.

يتم استخدام UID للتعرف على العلامة التي تأتي مع المجموعة ويمكنها تخزين ما يصل إلى 1 كيلوبايت من المعلومات. هناك بطاقات أخرى يمكنها تخزين ما يصل إلى 4 كيلوبايت من المعلومات أو أكثر.

عملية تخزين واستخراج المعلومات من العلامة موضوع مقال آخر.
إذا كان لديك سؤال بخصوص هذا المشروع ، فلا تتردد في طرحه في قسم التعليقات.




السابق: دائرة مستشعر الضغط الجوي - تفاصيل العمل والواجهة التالي: التحكم في الطور Triac باستخدام PWM Time Proportional