قارئ البطاقات التعريفية RFID

تعريف بالتقنية واّلية عملها :

RFID يعني تحديد الهوية باستخدام تردد الراديو.

يتكون نظام RFID أو تحديد تردد الراديو من مكونين رئيسيين ، جهاز مرسل مستجيب متصل بجسم ويدعى tag/card ، وجهاز إرسال واستقبال يُعرف أيضًا باسم القارئ.

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

يمكنك استخدام نظام RFID لفتح الباب. على سبيل المثال ، يُسمح فقط للشخص الذي لديه المعلومات الصحيحة على بطاقته بالدخول.
حيث يمكننا تحديد هذا المعلومات في البرمجة بشكل مسبق وسنناقش ذلك لاحقا.

يتكون القارئ من وحدة تردد الراديو وهوائي يولد مجالًا كهرومغناطيسيًا عالي التردد.

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

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

RFID Card Reader | قارئ البطاقات التعريفية RFID

التوصيل مع الاردوينو :

يعتمد قارئ RFID في الاتصال مع الاردوينو على بروتوكول SPI ويحتاج ايضا لمكتبة خاصة للعمل .

نقوم بتوصيل القارئ مع الاردوينو كما هو مبين جانباً .

ويمكننا تحميل المكتبة الخاصة بالقارئ عبر الرابط التالي :

قراءة عنوان بطاقة تعريفية :

الكود المبين جانباً يسمح لنا بمعرفة عنوان بطاقة تعريفية ما وذلك لنستخدمه في التطبيقات الخاصة بالقارئ لاحقاً.

بعد كتابة الكود التالي ورفعه الى الاردوينو , نقوم بتقريب البطاقة التعريفية من القارئ ونفتح شاشة السيريال ونرى معلومات البطاقة ظاهرة عليها ومنها العنوان الخاص بالبطاقة.

سيظهر العنوان بالشكل التالي : A6 4A 76 AC

ولكن يجب الانتباه الى أن لكل بطاقة عنوان مميز خاص بها ويجب الانتباه لتغييره الى العنوان الخاص بك عند نسخ الاكواد.

الكود

				
					#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN);
byte nuidPICC[4];
void setup() {
Serial.begin(9600);
SPI.begin(); 
rfid.PCD_Init(); 
Serial.println(F("Scan RFID NUID...")); }
void loop() {
readRFID();
delay(200); }
void readRFID() {
if ( !rfid.PICC_IsNewCardPresent())
return;
if ( !rfid.PICC_ReadCardSerial())
return;
if (rfid.uid.uidByte[0] != nuidPICC[0] ||
rfid.uid.uidByte[1] != nuidPICC[1] ||
rfid.uid.uidByte[2] != nuidPICC[2] ||
rfid.uid.uidByte[3] != nuidPICC[3] ) {
Serial.println(F("A new card has been detected."));
for (byte i = 0; i < 4; i++) {
nuidPICC[i] = rfid.uid.uidByte[i]; }
Serial.print(F("RFID tag in dec: "));
printDec(rfid.uid.uidByte, rfid.uid.size);
Serial.println(); }
rfid.PICC_HaltA();
rfid.PCD_StopCrypto1(); }
void printDec(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], DEC);}}
				
			

استخدام العنوان للتأكد من صحة بطاقة تعريفية :

سنقوم الان باستخدام العنوان الخاص بالبطاقة التعريفية والذي كنا قد عرفناه سابقاً لتحديد سماحيات معينة لهذه البطاقة.

الفكرة ببساطة : سنقوم بربط ليدين مختلفين (احمر واخضر) مع الاردوينو المرتبط بالقارئ سنقوم بإضاءة الليد الاخضر عند قراءة قيمة البطاقة التعريفية الصحيحة والاحمر عن قراءة بطاقة تعريفية اخرى.

يمكن تحويل هذا التطبيق البسيط لشكل اكثر تعقيد باستبدال الليدات بمحرك لفتح باب بحيث سيسمح للبطاقة المطلوبة بالدخول وسيمنع غيرها من ذلك.

قارئ البطاقات التعريفية RFID

الكود

				
					#include <SPI.h>
#include <MFRC522.h>
MFRC522 mfrc522(10, 9);
void setup() {
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
pinMode(8, OUTPUT);
pinMode(7, OUTPUT); }
void loop() {
if ( ! mfrc522.PICC_IsNewCardPresent()){
return; }
if ( ! mfrc522.PICC_ReadCardSerial()) {
return; }
Serial.print("Tag:");
String content= "";
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX)); }
content.toUpperCase();
content = content.substring(1);
if(content == "A6 4A 76 AC"){
digitalWrite(8, HIGH);
delay(3000);
digitalWrite(8, LOW); }
else{
digitalWrite(7, HIGH);
delay(3000);
digitalWrite(7, LOW); }
Serial.println(); }
				
			

انتقل إلى المتجر

اردوينو اونو | ARDUINO UNO

50.00 ر.س

قارئ بطاقة التعريف RFID

30.00 ر.س

مصباح LED 5MM

02.00 ر.س

أسلاك توصيل M-F

15.00 ر.س
انتقال إلى الأعلى