Mundarija:

C# va Arduino + RC-522 bilan homiylik ishi: 5 qadam
C# va Arduino + RC-522 bilan homiylik ishi: 5 qadam

Video: C# va Arduino + RC-522 bilan homiylik ishi: 5 qadam

Video: C# va Arduino + RC-522 bilan homiylik ishi: 5 qadam
Video: Arduino: Getting RFID tag data using C# 2024, Iyul
Anonim
C# va Arduino + RC-522 bilan homiylik qilish
C# va Arduino + RC-522 bilan homiylik qilish

Homiylik yugurishlari juda keng tarqalgan. Biroq, ularni boshqarish har doim ham oson ish emas, bu har bir jamoa necha turda samarali yugurishni ro'yxatga olishni o'z ichiga oladi. Men RFID -ni har bir jamoani aniqlash uchun token sifatida ishlatishga qaror qildim. Agar siz RC-522 RFID o'quvchi kartasini va arduino-ni ancha arzon sotib olishingiz mumkin bo'lsa, bu tizimni juda oson qurishga imkon beradi.

1 -qadam: kerakli materiallar ro'yxati

  • Arduino taxtasi: har qanday taxta qiladi. Men Arduino Nano -ni o'lchamiga qarab ishlataman
  • Arduino rivojlanish muhiti
  • RC-522: mahalliy yoki chet elda sotib olish/buyurtma qilish mumkin
  • MiFare 13.56 MGts teglar. Odatda ba'zi namunalar sizning RC-522 kartangiz bilan birga kelishi mumkin. Belgining turi muhim emas. Shunchaki ular to'g'ri chastota ekanligini tekshiring.
  • Agar siz kodni o'zgartirmoqchi bo'lsangiz, Windows bilan ishlaydigan va Visual Studio o'rnatilgan kompyuter.

2-qadam: Arduino + RC-522 ni tayyorlash

Arduino + RC-522 ni tayyorlash
Arduino + RC-522 ni tayyorlash

Yuqoridagi rasmda RC-522 modulining Arduino-ga ulanishi ko'rsatilgan. Har qanday Arduino shunday qiladi. Shunday qilib, agar sizda Arduino Nano mavjud bo'lsa, undan foydalanishingiz mumkin. Boshqa tomondan, barchasini boks qilish uchun ba'zi holatlarni topishingiz mumkin. Men bir marta sinab ko'rdim, lekin uni bosib chiqarish uchun chekkalari juda kichik bo'lib, yaroqsiz 3D-chop etish bilan tugadi.

Men hali ham buning uchun yaxshi ish ustida ishlayapman.

RC-522 kartangizdan foydalanish uchun Arduino muharririga kutubxona qo'shishingiz kerak bo'ladi. Afsuski, bu Arduino muharriri tomonidan boshqariladigan kutubxona emas, shuning uchun uni "eski maktab" usulini yuklash va kutubxonalar papkasiga nusxalash usulini qo'shish kerak bo'ladi. Arduino tahrirlovchisini ochish uchun uni qayta ishga tushirishni unutmang.

Kutubxonani https://github.com/miguelbalboa/rfid saytida topish mumkin.

Hozircha sizda muharrir tayyor. Skriptni Arduino -ga yuklash vaqti keldi. Agar siz kodni tahlil qilsangiz, 5000 millisekundlik interval borligini bilib olasiz, bunda bir xil kalitni bir necha marta bosib chiqarish mumkin emas. Siz bu intervalni o'zgartirishingiz mumkin, lekin agar siz uni juda kichik qilib qo'ysangiz, bir xil kalit bir -biridan keyin bir necha marta ko'rsatiladi.

Shunday qilib, endi bu qism ishlayotganligini tekshirish vaqti keldi. Men foydalanadigan RFID - bu 13,56 MGts chastotali standart MiFare 1Kb foblari, ular ham juda arzon.

Arduino muharririning ketma-ket monitorini oching va RC-522 moduliga olib kelganda kalitlar paydo bo'lishini ko'ring.

3 -qadam: Windows interfeysi C# da yozilgan

Windows interfeysi C# da yozilgan
Windows interfeysi C# da yozilgan

Siz C# loyihasini o'z ichiga olgan siqilgan papkani topasiz. Yuklab oling va oching. Kod Visual Studio 2017 maqsadli. Net framework 4.6.1 da yozilgan. Har qanday yangilangan kompyuterda bu bo'lishi va uni bajarishi kerak. Siz Visual Studio dasturini o'rnatishingiz shart emas. Kod uni o'zgartirmoqchi yoki tekshirmoqchi bo'lganlar uchun berilgan. Dasturga o'zgartirishlar kiritilmasdan, yugurish davomiyligi 1 soat 30 minut qilib belgilanadi. Oddiy aylanish vaqti 50 sekundga o'rnatiladi, bu 400 metrli trekka to'g'ri keladi.

Ijro etiladigan faylni SponsorRun / SponsorRun / bin papkasida joylashgan disk raskadrovka papkasida topish mumkin.

Ushbu papkada, shuningdek, ushbu loyihada ma'lumotlarni saqlash uchun ishlatiladigan matnli fayllar mavjud.

Matnli fayllar:

  • rfidKeys.txt: har xil jamoalar uchun kalitlarni o'z ichiga oladi. Birinchi kalit birinchi jamoa uchun va boshqalar. Siz bu faylni olib tashlashingiz va o'z kalitlaringizni qo'shishingiz mumkin (dastur qanday ishlashini quyida ko'ring).
  • teams.txt: turli jamoalar nomlarini o'z ichiga oladi. Birinchi ism birinchi jamoa uchun va hokazo. Ushbu faylni oddiy matn muharriri bilan tahrirlang (bloknot bajarishi mumkin).
  • results.txt: CSV formatidagi, jamoalarning turli davralari natijalarini o'z ichiga olgan fayl (hozircha hech bir tur qayd etilmagan bo'lsa, yo'q bo'lishi mumkin)
  • fraude.txt: aldashga urinayotgan jamoalarni o'z ichiga olgan CSV formatidagi fayl (hozircha hech qanday xiyonat aniqlanmagan bo'lishi mumkin)

Dasturning ishlash tartibi quyidagicha:

  • Dasturni ishga tushirgandan so'ng, dastur kompyuterdagi har xil COM portlarini aniqlaydi. Aloqa qilish uchun siz Arduino -ga tayinlangan MAQOMOTI portini tanlashingiz kerak. Odatiy bo'lib, COM tezligi 9600 bps bo'lishi kerak, bu Arduino kodida o'rnatilgan tezlikka mos keladi.
  • Aloqani faollashtirish uchun "Tinglashni boshlash" tugmasini bosing
  • Shu vaqtdan boshlab siz ikkita funktsiyani tanlashingiz mumkin:

    • RFID kalitlarini o'qing: bu rfidKeys.txt fayliga yangi kalitlarni qo'shadi
    • Ro'yxatdan o'tish davri (standart variant): results.txt fayliga yangi davrani ro'yxatdan o'tkazadi. Har safar haqiqiy kalit o'qilganda, xabar paydo bo'ladi va ro'yxatdan o'tishni tasdiqlash uchun ovozli signal eshitiladi. Natijalar.txt -ga qator qo'shiladi. Agar aldashga urinilgan bo'lsa, xabar alohida matn qutisida paydo bo'ladi, boshqa signal eshitiladi va natija fraude.txt ga yoziladi. Bunday holda, aylanish vaqti, aldash aniqlangan vaqtga o'rnatiladi.

4 -qadam: Mumkin bo'lgan yaxshilanishlar

Men ushbu loyihani maktabimdagi aniq vaziyat uchun yaratdim. Ma'lumki, ba'zi parametrlar sizning loyihangizga mos kelmasligi mumkin. Hozircha siz C# kodidagi parametrlarni to'g'rilashingiz va dasturni qayta kompilyatsiya qilishingiz kerak bo'ladi, bu Visual Studio dasturini o'rnatishni talab qiladi (3,5 Gb hajmli o'rnatish). Agar oqilona javob bo'lsa, men ushbu parametrlarni tashqi fayldan o'qishni o'ylab ko'rishim mumkin.

Arduino loyihasini joylashtirish uchun men topgan 3D-holatlar ishlatilmaydi. Men bitta ishni boshladim, lekin ba'zi kamchiliklar bor edi, shuning uchun men ularni hali qo'shmaganman. Kim bo'lishishni xohlasa, men bilan bog'lanishi mumkin, shuning uchun men ushbu ko'rsatmada sizning ishingizga murojaat qilishim mumkin.

5 -qadam: barmog'ingizni yuqoriga ko'taring !!

Umid qilamanki, siz ushbu loyihadan foydalanishingiz mumkin va men sizdan javob kutaman.