مشروع أردوينو: قفل وفك قفل حاسوبك بإستخدام قارئ الكرت RFID

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

RFID: يعد (RFID) واحدًا من أقدم التقنيات اللاسلكية. تُستخدم شرائح RFID لتخزين المعلومات رقميًا ، والتي يمكن بعد ذلك مشاركتها من خلال الحقول الكهرومغناطيسية وموجات الراديو.

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

سنستخدم في هذا المشروع Arduino Pro Micro (أو يمكنك استخدام Arduino Leonardo) مع شريحة ATmega32U4. من المهم جدًا لهذا المشروع اختيار لوحة أردوينو باستخدام شريحة ATmega32U4. لا يمكننا استخدام لوحات مثل Arduino Uno أو Mega 2560 أو Pro Mini أو Arduino Nano لهذا التطبيق. التفاصيل في الخطوات التالية.

بناء النموذج الأولي.

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

  • تم تصميم وحدة RC-522 RFID لجهد مدخل يبلغ 3.3 فولت فقط. إنه جهاز حساس للغاية ، لذا فإن أي قيم أعلى قد تئدي لأرتفاع درجة حرارتها وتلفها. تمنحك وحدة VCC من Arduino Pro Micro جهداً بقدرة 5 فولت. قم بعمل مقسم للجهد كما هو موضح في مخطط الدائرة (أو استخدم وحدة لتخفيض الجهد من 5 فولت إلى 3.3 فولت) لعمل جهد تزويد 3.3 فولت. قم بتوصيل وحدة التزويد 3.3 فولت بوحدة RFID الخاصة بـ VCC.

  • RST إلى pin 5 في Arduino.
  • قم بتوصيل  GND pin إلى ground.
  • IRQ pin – غير موصل.
  • MISO إلى pin 14 في Arduino.
  • MOSI إلى pin 16 في Arduino.
  • SCK إلى pin 15 في Arduino.
  • SDA إلى pin 10 في Arduino.

هذا كل ما في الأمر !، بسيط وسهل. ما عليك سوى توصيل الدارة بالحاسوب ونحن على استعداد لتحميل الكود واختبار الجهاز.

الكود

تحتوي Arduino Leonardo / Micro المزودة بشريحة ATmega32u4 على اتصال USB مدمج. هذا يسمح لـ Leonardo / Micro بالظهور على الكمبيوتر المتصل كأنها ماوس أو لوحة مفاتيح.

نحن سنستخدم مكتبة keyboard.h الأساسية لجعل اردوينو ترسل ضغطات لوحة مفاتيح إلى جهاز كمبيوتر متصل.

عمل الكود بسيط للغاية.

  • يتم تخزين UID الخاص ببطاقة / علامة RFID وكلمة مرور Windows / PIN في الكود.
  • عندما يتم عرض البطاقة الصحيحة على قارئ RFID ، سترسل اردوينو ضربات المفاتيح لقفل النوافذ وكلمة المرور لإلغاء قفل النوافذ في وقت واحد.
  • إذا كانت النوافذ في حالة تأمين ، فإن ضغطات المفاتيح لإغلاقها لن يكون له أي تأثير وسيؤدي الأمر إلى إلغاء تأمين الكمبيوتر المقفل.
  • أو إذا كانت النوافذ مؤمنة بالفعل ، فستقفلها الأوامر. (يأتي رمز إلغاء القفل أيضًا في وقت واحد ، ولكن نظرًا لوجود وقت قصير جدا (أجزاء من الثانيه) بين القفل وإلغاء قفل المفاتيح ، فإن Windows ينتقل إلى تنفيذ أمر القفل ولن يقرأ أمر فك القفل الذي سيأتي في ذلك الوقت.).

يجب عليك إجراء بعض التغييرات الصغيرة في الكود واستخدامه لنفسك.

  • قم بتوصيل النموذج الأولي بالكمبيوتر.
  • قم بتشغيل Arduino IDE والصق الكود المرفق ادناه.

  • من شريط الأدوات ، انتقل إلى الأدوات -> اللوحة وحدد Arduino Leonardo لكل من Arduino Pro micro و Arduino Leonardo.
  • تحقق من تحديد منفذ COM.
  • قم بتحميل الكود إلى اردوينو.
  • افتح Serial Monitor (Ctrl + Shift + M).
  • مرر البطاقة الممغنطة فوق المشروع.

  • السطر الأول من Sertial Monitor الموضح هو UID الخاص بالبطاقة الممغنطة الخاصة بك. قم بتدوين هذه القيمة.

  • انتقل الآن إلى الكود وقم بتغيير قيمة “card1” إلى UID الذي دونته للتو (في الكود ، يمكنك العثور عليه في السطر 41).

  • انتقل إلى الجزء الأخير من الكود وستجد سطرًا يقول “Keyboard.print (” PASSWORD “)؛” (السطر رقم 80 في الكود.). قم بتغيير هذه القيمة إلى كلمة سر ويندوز الخاص بك.
  • الآن قم بتحميل الكود المعدل على اردوينو.
  • مرر البطاقة الممغنطة لاختبار عمل النموذج الأولي.
  • بعد التأكد من عملها قم بلحامها وأغلاقها.

النتيجة

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

هناك العديد من الأفكار لتطبيق RFID + keyboard.h في حياتنا اليومية. نحن إستخدمناها من أجل قفل / فتح جهاز الكمبيوتر. لديك أفكار أخرى؟ اسمحوا لنا أن نعرف ذلك في التعليقات أدناه!

الكود المرفق

#include <Keyboard.h>
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 5
#define KEY_RETURN 0xB0                 //The hex value for the return key is 0xB0.
 
MFRC522 mfrc522 ( SS_PIN, RST_PIN ) ;
char Enter = KEY_RETURN;                //Return key is declared as Enter.
String readid;
String card1="48b45a10";                //Change this value to the UID of your card.
 
void setup( ) 
{
 Serial.begin(9600);
 Keyboard.begin();
 SPI.begin();
 mfrc522.PCD_Init();
}

void temp(byte *buffer, byte bufferSize)//function to store card uid as a string datatype.
{
  readid="";
  for(byte i = 0;i<bufferSize; i++)
  {
    readid=readid+String(buffer[i], HEX);
  }
}
void loop( ) 
{
 if(!mfrc522.PICC_IsNewCardPresent())
 {
  return;
 }
 if(!mfrc522.PICC_ReadCardSerial()) 
 {
  return;
 }
 mfrc522.PICC_DumpToSerial(&(mfrc522.uid));  // Display card details in serial Monitor.
 temp(mfrc522.uid.uidByte, mfrc522.uid.size);
 if(readid==card1)
 { 
  Keyboard.press(KEY_LEFT_GUI);              //Press the left windows key.
  Keyboard.press('l');                       //Press the "l" key.
  Keyboard.releaseAll();                     //Release all keys.
  delay (100);
  Keyboard.press(Enter);                     //Press the Enter key.
  Keyboard.release(Enter);                   //Release the Enter key.
  delay(100);
  Keyboard.print("PASSWORD");                    // Change this value to your Windows PIN/Password.
  Keyboard.releaseAll();
  delay(100);
  Keyboard.press(Enter);
  Keyboard.releaseAll();
 }
 else
 {
  return;
 } 
}

 

 

عبد الرحمن حجي
22 عام، طالب هندسة كهربائية في جامعة النجاح الوطنية، مؤسس موقع مجتمع التقنية.

اترك تعليقًا