Mündəricat:

Arduino RFID Qapı Kilidi: 5 Adım (Şəkillərlə birlikdə)
Arduino RFID Qapı Kilidi: 5 Adım (Şəkillərlə birlikdə)

Video: Arduino RFID Qapı Kilidi: 5 Adım (Şəkillərlə birlikdə)

Video: Arduino RFID Qapı Kilidi: 5 Adım (Şəkillərlə birlikdə)
Video: Rfid Şifreli Ve Proximity Kart Okuyuculu Kapı Kilidi Cihazlarında Şifre Değiştirme 2024, Noyabr
Anonim
Arduino RFID Qapı Kilidi
Arduino RFID Qapı Kilidi
Arduino RFID Qapı Kilidi
Arduino RFID Qapı Kilidi
Arduino RFID Qapı Kilidi
Arduino RFID Qapı Kilidi
Arduino RFID Qapı Kilidi
Arduino RFID Qapı Kilidi

*** 8/9/2010 yeniləndi *** Qarajıma girmək üçün asan və təhlükəsiz bir yol etmək istədim. Qapımı açmağın ən yaxşı yolu RFID idi, hətta əllərim dolu olsa da qapını açıb aça bilərəm! Elektron qapı kilidini idarə etmək üçün əsas ATMega 168 arduino çipi və ID-20 RFID oxuyucusu olan sadə bir dövrə qurdum. Dövrə 3 ayrı hissədən ibarətdir, RFID etiketlərini oxumaq üçün oxucu, oxuyucudan məlumatları qəbul etmək və RGB LED -in çıxışını və Elektrik qapı kilidini idarə etmək üçün bir nəzarətçi. Qapı kilidi əvvəlcə bir qapıya quraşdırılır və düzgün qurulmasını təmin etmək üçün 9v batareya ilə sınaqdan keçirilir. Əksər hallarda qapı kilidində Normal Açıq bir dövrə və ya Arızalı Təhlükəsizlik istəyərsiniz. Bu o deməkdir ki, qapıdan heç bir cərəyan keçmədikdə kilidli olaraq qalır. 12vDC qapı kilidindəki elektromaqnitdən keçirildikdə, kiliddəki bir boşqab yer verir və qapının sərbəst şəkildə açılmasına imkan verir. Oxucu qapının kənarına yerləşdirilir və içəridəki idarəedicidən ayrıdır ki, heç kim Oxucunu açıb oxucunu qısaqapanmağa çalışaraq təhlükəsizliyi aşa bilməsin. Nəzarətçi Reader -dən serial məlumatları alır və RGB ledini və Qapı kilidini idarə edir. Bu vəziyyətdə test üçün ayrı çörək lövhələrinə qoydum. İşdə olan sistemin video görüntüsü budur ki, özünüz üçün necə quracağınızı öyrənin! ** Yeniləmə ** Bütün kodlar, sxemlər və PCB dizaynları sınaqdan keçirilmiş və təkmilləşdirilmişdir. Hamısı 8/9/2010 tarixindən etibarən burada yerləşdirilmiş və işləyən son sistemin yenilənmiş videosu olaraq yerləşdirilmişdir.

Addım 1: Lazım olan hissələr

Ehtiyac duyulan hissələr
Ehtiyac duyulan hissələr

Burada satın aldığım SparkFun.com hissələrinin və bağlantıların siyahısı. Bu, arduino qurmaq üçün lazım olan əsas hissələr və RFID etiketlərini arduinoya oxumaq üçün bir dövrədir. Artıq bir çörək taxtanız, elektrik təchizatı və bağlama telləriniz olduğunu düşünürəm.

Arduino əşyaları

Armeino Bootloader ilə ATmega168 4.95 dollar

Crystal 16MHz 1.50 dollar

Kondansatör Seramik 22pF $ 0.25 (x2)

Rezistor 10k Ohm 1/6 Vatt PTH $ 0.25

Mini Push Button Switch 0.35 dollar

Üçqat Çıxışlı LED RGB - 1.95 dollar yayılıb

RFID məhsulları

Bunlardan hər hansı biri 20-nin daha yaxşı diapazonuna malikdir, 12-si kiçikdirRFID Reader ID-12 $ 29.95RFID Reader ID-20 $ 34.95

RFID Reader Breakout $ 0.95

Başlıqları ayırın - Düz 2.50 dollar

RFID Etiketi - 125 kHz 1.95 dollar

Digər

TIP31A tranzistoru (radio kulbası/yerli elektronika mağazası 1.50 dollar)

Qapı Kilidi ebay -dan. Qapı Arızası Təhlükəsiz giriş nəzarəti Electric Strike v5 NO 17.50 $ (kawamall, bay)

Addım 2: Arduino Controller qurun

Arduino Controller qurun
Arduino Controller qurun
Arduino Controller qurun
Arduino Controller qurun
Arduino Controller qurun
Arduino Controller qurun

Əsas bir Arduino ilə RFID qapı kilidi qurmağın ilk addımı, əsas işləyən bir arduino çıxarmaqdır. Əksər Arduino əvvəlcədən yanıb-sönən ATMega 168 çipləri əvvəlcədən quraşdırılmış standart yanıb sönmə proqramı ilə gəlir. Bir LED -i rəqəmsal çıxışa 13 qoşun və hər şeyin işlədiyini yoxlayın.

Daxili USB proqramlaşdırıcısı olan adi bir arduino istifadə etsək, bu RFID oxuyucunun hardware hissəsi çox sadə olardı. Bunu divara taxmağı və bir daha toxunmamağı planlaşdırdığım üçün 5 dollarlıq ATMega 168 alıb daha kiçik bir xüsusi PCB hazırlaya bildiyim zaman 30 dollarlıq böyük bir arduino lövhəsi istifadə etmək istəmirəm.

Əsas Arduino sxemini özüm etməyi seçdiyim üçün xarici USB-> Serial FDIT proqramçısına ehtiyacım var. 7805 gərginlik tənzimləyicisindən qurulmuş bir enerji təchizatı ilə nəzarətçinin Eagle sxemlərini daxil etdim. Testdə bir çörək taxtası enerji təchizatı istifadə etdim.

Arduino -nu işə salmaq üçün həqiqətən ehtiyac duyduğunuz şey, üstündə arduino proqramı olan ATMega168, 2x 22pF kondansatörler, 16mhz kristal, 10k ohm rezistor, düymə və çörək taxtasıdır. Bunun əlaqəsi yaxşı bilinir, amma dövrənin bütün sxemini daxil etdim.

Arduino, hər biri Qırmızı/Yaşıl/Mavi LEDlər üçün 4 çıxışı və 12vDC -ni qapı kilidinə göndərmək üçün TIP31A -nı işə salacaq. Arduino, ID-20 RFID oxuyucusundan Rx xəttində serial məlumatları alır.

Addım 3: RFID Reader qurun

RFID Reader qurun
RFID Reader qurun
RFID Reader qurun
RFID Reader qurun
RFID Reader qurun
RFID Reader qurun

Arduino çörəyinizi taxdıqdan və işlədikdən sonra, dövrənin vəziyyətini göstərmək üçün ID-10 və ya ID-20 və RGB LEDini ehtiva edən dövrənin RFID oxucu hissəsini bir araya gətirə bilərsiniz. Unutmayın ki, oxucu çöldə olacaq və içəridəki nəzarətçidən ayrı olacaq ki, kimsə asanlıqla girə bilməsin.

Bunu qurmaq üçün, əsas çörək lövhəsindən 5V/Zəmini Reader -in üzərində qurduğumuz ikinci dərəcəli çörək lövhəsinə göndərəcəyik. RGB LEDini idarə etmək üçün hər bir rəng üçün bir arduino çıxış pinindən 3 -dən çox tel göndərin. Daha bir tel, şəkillərdəki Brown, arduino-nun Rx serial girişi ilə danışmaq üçün ID-20-nin serial bağlantısı olacaq. Bu birləşdirmək üçün çox sadə bir sxemdir. Düzgün vəziyyəti təyin etmək üçün LED-lərin rezistorları və ID-20 üzərindəki bir neçə nöqtə yerə/5v-ə bağlanır.

Çörək bişirməyi asanlaşdırmaq üçün ID-10/ID-20 Sparkfun, çörək taxtasına uyğun olaraq daha uzun pin başlıqları bağlamağa imkan verən Breakout lövhəsi satır. Bu hissə və pin başlıqları və hissələr siyahısında verilmişdir.

Şematik irəli və izlənməsi asan olmalıdır.

Addım 4: Proqram

Arduino proqramlaşdırma vaxtıdır. Əsas bir arduino istifadə etmək bir az çətin ola bilər, yükləmənin əvvəlində və ilk hissəsində sıfırlama düyməsini bir neçə dəfə basmaq lazım ola bilər. Xatırlamaq lazım olan çox vacib bir şey, ID-20 seriya xəttini arduino-nun Rx xəttinə müvəqqəti olaraq ayırmasanız, yükləmə xətası alacaqsınız. ATMega168 yalnız 1 Rx girişinə malikdir və proqramçı ilə danışmaq üçün kod yükləmək üçün istifadə edir. Proqramlaşdırma zamanı ID-20-ni ayırın və bitirdikdən sonra yenidən qoşun. Arduino -nu USB vasitəsilə yalnız 4 tellə proqramlaşdırmağa imkan verən bir FTDI proqramçısı istifadə etdim. Nəzarətçi sxematik olaraq, birbaşa qoşmağa imkan verən bir pin başlığı bağlantısı göstərir. Sparkfun da bu hissəni satır, amma çoxlarında artıq ola bilər.

Kodumu arduinoya asanlıqla yükləyə bilərsiniz və heç vaxt geriyə baxmırsınız, amma bunun nə faydası var? Bunun necə işlədiyinə dair əsas fikri izah edim.

Əvvəla, heç bir xarici düymə/açar/və s. İstəmirdim və hər dəfə yeni bir kart əlavə etmək istədikdə arduinonu yenidən proqramlaşdırmaq istəmirdim. Buna görə də dövrənin işini və qapı kilidini idarə etmək üçün yalnız RFID istifadə etmək istədim.

Proqram yeni bir kart oxumağa hazır olduğunu bildirmək üçün Mavi LED -i yandırır. Kart oxunduqda, oxuduqlarını etibarlı kartların siyahısı ilə müqayisə edərək, onun etibarlı olub -olmamasına qərar verir. İstifadəçi etibarlı olarsa, arduino Mavi LED -i söndürür və Yaşıl LED -i 5 saniyə yandırır. Eyni zamanda 5 saniyə ərzində başqa bir çıxışı da işə salır. Bu çıxış TIP31A tranzistoruna qoşulur və kiçik arduinonun daha böyük 12v 300mA qapı kilidini zədələnmədən idarə etməsinə imkan verir. 5 saniyədən sonra qapı kilidi yenidən kilidlənir və başqa bir kartın oxunmasını gözləmək üçün LED mavi rəngə dönür. Kart etibarsızdırsa, LED bir neçə saniyə QIRMIZI olur və başqa bir kart gözləmək üçün Mavi rəngə dönür.

Arduino bir gecədə gücünü itirsə və ya sıfırlansa belə, qapı kilidinin işləməsi vacibdir. Buna görə bütün etibarlı kartlar EEPROM yaddaşında saxlanılır. ATMega168 -in 512 baytlıq EEPROM yaddaşı var. Hər bir RFID kartının ID-20 ilə arduino arasında ötürülməsində heç bir səhv olmadığını yoxlamaq üçün istifadə edə biləcəyimiz 5 Hex Byte seriya nömrəsi və 1 Hex Byte Check məbləği var.

Etibarlı kartlar, sayğac olaraq ilk baytı istifadə etməklə EEPROM -da saxlanılır. Məsələn, EEPROM -da ilk baytın saxlanıldığı 3 etibarlı kart varsa, 3 olardı. EEPROM.read (0); = 3. Bunu və hər bir şəxsiyyətin 5 bayt uzunluğunda olduğunu bildiyimiz halda, 1-5-in kart 1, 6-10-un 2-ci kart və 11-15-in 3-cü kart olduğunu bilirik. Bir anda 5 bayt və oxucu tərəfindən oxunan kartı tapmağa çalışır.

Ancaq dövrə quraşdırıldıqdan sonra EEPROM -a necə yeni kartlar əlavə edə bilərik ?? Sahib olduğum RFID kartlarından birində oxudum və onu Master RFID kartı olaraq kodlaşdırdım. Beləliklə, bütün EEPROM silinsə belə, master kart işləməyə davam edəcək. Bir kart oxunduqda, əvvəlcə Master kart olub olmadığını yoxlayır, yoxsa, etibarlı kart olub olmadığını görməyə davam edir. Kart əsas kartdırsa, arduino -nun "proqramlaşdırma rejiminə" keçməsini təmin edirik, burada RGB yanıb -sönür və başqa bir etibarlı etiketin oxunmasını gözləyir. Oxunan növbəti etiket EEPROM -dakı növbəti boş yerə əlavə olunur və kart EEPROM yaddaşında yoxdursa sayğac 1 artırılır. Oxucu daha sonra normal rejimə qayıdır və yeni bir kartın oxunmasını gözləyir.

Hal -hazırda bir kartı silməyin bir yolunu proqramlaşdırmamışam, çünki kartın silinmə səbəbləri çox güman ki, itirilmiş və ya oğurlanmış ola bilər. Çox güman ki, bu 1-10 nəfər arasında istifadə ediləcəyi üçün ən asan yol, bütün kartları EEPROM-dan silmək üçün Master Silmə kartını proqramlaşdırmaq və sonra hamısını yenidən əlavə etmək olacaq, bu da bir neçə saniyə çəkəcək. EEPROM -u silmək üçün kod əlavə etdim, amma bu xüsusiyyəti hələ tətbiq etməmişəm..

Kod hissə siyahısının bir nüsxəsi ilə birlikdə mətn sənədinə əlavə olunur.

Addım 5: Genişləndirin

Bu, RFID ilə edə biləcəyiniz ən gözəl şeylərdən yalnız biridir. Bunu bir LCD çıxışı, kimin və nə vaxt daxil olduğunu qeyd etməklə şəbəkə/twitter bağlantısı ilə genişləndirə bilərsiniz. Bu dövrənin bitmiş PCB versiyasını hazırlamağı planlaşdırıram. Daha əvvəl heç bir PCB etməmişəm, buna görə də hissələrin dizaynı və düzeni üzərində işləyirəm. Tamamladıqdan sonra onları da yerləşdirəcəyəm. Hər kəsi yazdığım kodu götürməyə və daha da gözəl şeylər etmək üçün dəyişdirməyə təşviq edirəm!

Arduino yarışmasının finalçısı

Tövsiyə: