تكنولوجيا الأمواج الراديوية لتحديد الهوية RFID
سنتحدث في هذه المقالة عن تكنولوجيا حديثة وتحت التطور المستمر وهي تحديد الهوية عبر أمواج الراديو RFID.
في المستقبل القريب, لن تكون بحاجة لحمل النقود المعدنية في جيبك لتدفع أجرة الباص مثلاً, او لن يضّطر الموظفون في عيادة الجامعة لأخذ معلومات معينة منك لجلب ملفك المرضي, وحتى انك سوف تقوم بتسجيل حضورك في المحاضرة او العمل من دون أي توقيع, وكل هذا سيتم من خلال بطاقتك الشخصية الممغنطة الذكية!
كيف؟!
هذا النظام ( تكنولوجيا الأمواج الراديوية ) الحديث يتكون من دائرتين الكترونيتين, الأولى تُسمى “القارئ Reader” و الأخرى تُسمّى “الوسم Tag”.
يتم الاتصال بين هاتين الدائرتين لاسلكياً باستخدام أمواج الراديو لمسافات تتراوح بين السنتيمترات والأمتار القليلة.
القارئ يتكون من مرسل ومستقبل Transceiver و لاقط Antenna, وهذه الدائرة تحتاج مصدر تغذية لتشغيلها, أما الوسم فهو دائرة الكترونية دقيقه جداً وتحتاج طاقة قليلة جداً لتغذيتها لدرجة أنها لا تحتوي على بطارية أو مصدر تغذيه!!
ولكن كيف تعمل من دون بطارية!؟
عند تقريب الوسم من القارئ (لمسافة أقل من 5 سم) تتداخل الأمواج الكهرومغناطيسية من القارء مع الوسم, فيتولد تيار حثي داخل دائرة الوسم ذو طاقة قليلة جداً لكنها كافية لتشغيلها, وعندها يقوم القارئ بقراءة المعلومات المخزنة على الوسم كنت قد خزّنتها سابقاً على البطاقة.
طبعاً هناك أنواع كثيره من هذه القوارئ والأوسام وهي تختلف بكيفية تشغيلها وتردد كل منها والعديد من الخصائص.
ولكن في هذه المقاله سنقوم بشرح كيفية تجربة القارئ MFRC522 الأكثر شيوعاً وسهولة المُبيّن في الصور أعلاه, باستخدام الأردوينو .
ستحتاج الى:
-Arduino
-RFID MFRC522 Reader
-RFID 13.56MHz Tag
-Jumpers and Wires
أولاً عليك بتحميل المكتبة الجاهزة لهذا القارئ على جهازك من هنا.
http://playground.arduino.cc/Learning/MFRC522
وبعدها قم بتوصيل الأردوينو بالقارئ كما يلي:
arduino RC522
-
Reset 9 RST
-
SPI MOSI 11 MOSI
-
SPI SS 10 SDA
-
SPI SCK 13 SCK
-
SPI MISO 12 MISO
-
IOREF —- 3v3
-
3v3 —– 3v3
وقم بعدها بتحميل هذا البرنامج على الأردوينو, هذا البرنامج سيقوم بطباعة كل المعلومات الخاصة بكل بطاقة على الـ Serial Monitor الخاص بالأردوينو.
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
#define RST_PIN 9
void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 card
if ( ! mfrc522.PICC_IsNewCardPresent()) {
Serial.println(“Scan PICC to see UID and type…”);
}
void loop() {
// Look for new cards
return;
}
// Dump debug info about the card. PICC_HaltA() is automatically called.
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}
والآن بناءاً على ما سبق من معلومات قد قمت باستخراجها من البطاقة, هل تظّن أن بامكانك القيام بنظام قفل/فتح للباب وذلك استجابة لحامل المفتاح… أقصد البطاقة الصحيحة؟