O‘ZBEKISTON RESPUBLIKASI OLIY VA O‘RTA MAXSUS TA’LIM VAZIRLIGI
FARG‘ONA DAVLAT UNIVERSITETI
FIZIKA-TEXNIKA FAKULTETI FIZIKA YO‘NALISHI
3-BOSQICH 20.12-GURUH TALABASI
G'OPIRJONOVA MOHINURNING
“ROBOTOTEXNIKA VA SXEMOTEXNIKA ASOSLARI” FANIDAN
“RFID yordamida Windows kompyuterini bloklash yoki qulfni ochish” MAVZUSIDA TAYYORLAGAN
MUSTAQIL ISHI
Tayyorladi: G'opirjonova M.
Qabul qildi: Qo'chqorov A.
Mavzu:RFID yordamida Windows kompyuterini bloklash yoki qulfni ochish.
Kerakli komponentlar va ta'minotlar
Arduino mikro
Rezistor 10 kom li 3 ta
RC-522 RFID Module
Kerakli asboblar
Lehimlash temir (umumiy).
Bu loyiha haqida qisqacha maʼlumot
Kompyuteringiz/noutbuk har safar qulflanganda uni qulfdan chiqarish uchun parolni kiritishdan qanchalik charchagansiz? Men uni har kuni bir necha marta qulflashga odatlanganman va har safar qulfdan chiqarmoqchi bo'lganimda parol/pinni qayta-qayta yozishdan ko'ra zerikarliroq narsa yo'q. Biror narsaga bo'lgan ehtiyoj muhim bo'lib qolganda, siz uni olish yo'llarini izlashga majbur bo'lasiz. “Zarur – ixtironing onasi” deganlaridek, ichimdagi dangasa aql har safar qulflashga majbur bo‘lganimda shaxsiy Kompyuterim/Noutbukimni qulfdan chiqarishning oson va arzon yo‘li haqida o‘ylay boshladi. Men narsalarimni ko'zdan kechirar ekanman, RC522 RFID modulini topdim. O'shanda men RFID tizimini yaratishga qaror qildim.
RFID: Radiochastotani identifikatsiyalash (RFID) eng qadimgi simsiz texnologiyalardan biridir. RFID chiplari ma'lumotlarni raqamli saqlash uchun ishlatiladi, keyinchalik ular elektromagnit maydonlar va radio to'lqinlar orqali ob'ektlar o'rtasida taqsimlanishi mumkin. Bu o'ta ilg'or bo'lmasligi mumkin, ammo ko'plab ishlab chiqaruvchilar, qanchalik eski bo'lishidan qat'i nazar, texnologiyada haqiqiy imkoniyatlarni ko'rishadi.
Ushbu loyihada men qanday qilib oddiy RFID tizimini yaratishni tushuntiraman, bu sizning Windows kompyuteringizni RFID kartasi/yorlig'i bilan qulflash/qulfdan chiqarish. Ushbu tizim mavjud bo'lganda, siz uni har safar blokirovka qilganingizda Noutbuk/Kompyuteringizni qulfdan chiqarish bilan bog'liq muammolar bo'lmaydi.
Ushbu loyihaning yuragi ATmega32U4 chipli Arduino Pro Micro (yoki siz Arduino Leonardo dan foydalanishingiz mumkin). Ushbu loyiha uchun ATmega32U4 chipli ishlab chiqish taxtasini tanlash juda muhimdir. Ushbu ilova uchun Arduino Uno, Mega 2560, Pro Mini yoki Arduino Nano kabi ishlab chiqish platalaridan foydalana olmaymiz. Tafsilotlar quyidagi bosqichlarda.
Prototipni yaratish.
Sxemani tenglikni lehimlashdan oldin non taxtasida prototip yaratishingizni tavsiya qilaman. Bu sizga ulanishlarni yaxshiroq tushunishga yordam beradi va ulanishlarni ulashda yuzaga keladigan xatolarni tuzatishga imkon beradi. Ushbu loyihani hisobga olgan holda prototipni yaratish unchalik qiyin emas. Biz faqat bir nechta ulanishlarni amalga oshirishimiz kerak va biz kodni yuklashga tayyormiz. Ulanishlar quyida tavsiflanadi. Arduino-da ko'p pinlar o'zgarmasdir. Ushbu qurilma SPI shinasidan foydalanganligi sababli, pinlarni almashtirishga ruxsat bermaydi, pinlar 14, 15 va 16 ko'rsatilgandek qolishi kerak. RST va SDA foydalanuvchi tomonidan belgilangan.
RC-522 RFID moduli atigi 3,3 voltlik kirish kuchlanishiga mo'ljallangan. Bu juda sezgir qurilma, shuning uchun har qanday yuqori qiymatlar haddan tashqari qizib ketishi va modulga zarar etkazishi mumkin. Arduino Pro Micro-dan VCC sizga 5 voltli quvvat beradi. 3,3 voltli kuchlanishni yaratish uchun elektron diagrammada ko'rsatilganidek, kuchlanish bo'luvchisini yarating (yoki 5 V dan 3,3 V gacha pastga tushirish modulidan foydalaning). 3,3 V quvvat manbaini RFID modulining VCC ga ulang.
Arduino-ning 5-piniga RST. (Siz ushbu pinni kodda o'zgartirishingiz mumkin.)
GND pinini erga ulang.
IRQ pin - ulanmagan.
MISO Arduino-ning 14-pinini ulash uchun.
Arduino-ning 16-piniga MOSI.
Arduino-ning 15-piniga SCK.
Arduino-ning 10-pinini ulash uchun SDA. (Bu ham foydalanuvchi tomonidan belgilangan pin.)
Hammasi shu!, Oddiy va oson. Kabelni ulang va biz kodni yuklashga va qurilmani sinab ko‘rishga tayyormiz.
Kodeks.
ATmega32u4 chipli Arduino Leonardo/Micro o‘rnatilgan USB aloqasiga ega. Bu Leonardo/Micro-ga ulangan kompyuterga sichqoncha yoki klaviatura sifatida ko'rinishiga imkon beradi.
Arduino tugmachalarini ulangan kompyuterga yuborishi uchun biz keyboard.h yadro kutubxonasidan foydalanamiz.
Kodning ishlashi juda oddiy.
RFID kartangiz/tegingiz UID va Windows parolingiz/PIN-kodingiz kodda saqlanadi.
RFID o'quvchiga to'g'ri karta ko'rsatilganda, arduino bir vaqtning o'zida derazalarni qulflash uchun tugmalar bosishlarini va derazalarni ochish uchun parolingizni yuboradi.
Agar derazalar qulflangan holatda bo'lsa, uni bloklash uchun tugmalar bosish hech qanday ta'sirga ega bo'lmaydi va buyruq qulflangan kompyuterni qulfdan chiqaradi.
Yoki agar derazalar allaqachon qulfdan chiqarilgan bo'lsa, buyruqlar uni bloklaydi. (Qulfni ochish kodi ham bir vaqtning o'zida keladi, lekin qulflash va qulfni ochish tugmachalarini bosish o'rtasida biroz kechikish bo'lganligi sababli, Windows qulflash buyrug'ini bajarishga kirishadi va o'sha paytda keladigan qulfni ochish kodi buyrug'ini o'qimaydi.)
Uni o'rganish va o'zingiz uchun ishlatish uchun men taqdim etgan kodga ozgina o'zgartirishlar kiritishingiz kerak.
Prototipni kompyuterga ulang.
Arduino IDE-ni ishga tushiring va men bu erda bergan kodni oching.
Asboblar panelidan asboblar -> Kengashga o'ting va Arduino Pro micro va Arduino Leonardo uchun Arduino Leonardo-ni tanlang.
COM porti tanlanganligini tekshiring.
Kodni arduino-ga yuklang.
Seriya monitorni oching (Ctrl+Shift+M).
Kartangizni/tegingizni skanerlang.
Seriya monitorida ko'rsatilgan chiqishning birinchi qatori sizning kartangiz/tegingizning UID-kodidir. Ushbu qiymatni yozib oling.
Endi kod muharririga qayting va "card1" qatorining qiymatini siz qayd etgan UID ga o'zgartiring ( kod qismidagi 41-qatorda topishingiz mumkin).
Kodning oxirgi qismiga o'ting va siz "Keyboard.print("PASSWORD");" degan qatorni topasiz. (Koddagi 80-qator.). Ushbu qiymatni Windows qulfini ochish kodiga o'zgartiring.
Endi o'zgartirilgan kodni arduino-ga yuklang.
Prototipni sinab ko'rish uchun kartani / tegni skanerlang.
Bu RFID teglari yordamida kompyuteringizga parollarni kiritish uchun asosiy koddir. Siz ko'proq kartalar/teglar qo'shish va turli ilovalar uchun har bir karta uchun turli parollar o'rnatish uchun kodni o'zgartirishingiz mumkin.
Lehimlash.
Bu juda kichik va oddiy sxema. Shaxsiy PCB yasash uchun ko'p vaqt sarflagandan ko'ra, uni prototipli PCB platasiga lehimlash yaxshiroqdir.
Arduino va RFID modulini ulash uchun har doim sarlavhalardan foydalaning, aks holda lehimlash paytida issiqlikka uzoq vaqt ta'sir qilish bu platalarga doimiy ravishda zarar etkazishi mumkin.
O'chirish diagrammasida ko'rsatilganidek, barcha ulanishlarni lehimlang va arduino va RFID modulini tenglikni plataga ulang. Men qulaylik yaratish uchun RFID modulini to'g'ri burchakli ayol sarlavha yordamida tenglikni plataga gorizontal ravishda uladim.
Lehimlashdan keyin har doim qurilmani har qanday bo'shashmaslik yoki nosozliklar uchun sinab ko'ring.
Qoplama yasash.
Men garajimdan topgan karton qutilar yordamida oddiy korpus yasadim. Men xuddi shu kartondan foydalanib, uning uchun stend yasadim va kabelni ulash va arduinodagi LEDlar uchun qutidagi teshiklarni kesib tashladim. Keyin men butun sozlashni uglerod tolali teksturali stiker bilan o'rab oldim va taxtadagi LEDlar joylashgan teshikka yarim shaffof qorong'i stiker qo'ydim.
Qurilmaning ishlashini ko'rish uchun videoni tomosha qiling.
Esingizda bo'lsin, bu oddiy sevimli mashg'ulot loyihasi va uy foydalanuvchisi uchun ishni mukammal bajaradi. Shaxsiy foydalanish uchun buni amalga oshirishdan oldin, mumkin bo'lgan xavfsizlik zaifliklarini ko'rib chiqing. Men hech qanday xavfsizlikka kafolat bera olmayman.
RFID + keyboard.h ni kundalik hayotimizda qo'llash uchun ko'plab imkoniyatlar mavjud. Men uni kompyuterimni qulflash/ochish uchun qildim.
Dasturning kod qismi
#include
#include
#include
#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{
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;
}
}
Dasturning umumiy sxemadagi ko'rinishi
Dostları ilə paylaş: |