Mündəricat:
- Addım 1: Parçalar və Alətlər
- Addım 2: Əvvəlcədən mövcud olan Hardware
- Addım 3: Dövrlər
- Addım 4: Birlikdə kabel çəkin
- Addım 5: Kod
Video: Cryptap: Ritmə əsaslanan Qapı Kilidi: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:49
Hackaday.com saytında gördüyüm bir neçə qapı kilidini açma mexanizmindən ilhamlanaraq özüm yaratmağa qərar verdim. Bu iki düyməli bir interfeysə malikdir; biri şifrənin təqdim edilməsini başlamaq və bitirmək üçün, biri də şifrəniz olan ritmə vurmaq üçün. Vəziyyət işığı da var. Bunu son bir neçə ay ərzində təmizlədiyim hissələrdən istifadə edərək həqiqətən də ucuza tikə bildim. Ödəməli olduğum tək şey 21 dollar olan mikro nəzarətçinin özü idi (https://www.pjrc.com/teensy/) və əvvəllər aldığım şəkil asma teli.
Ulduz Döyüşləri mövzusuna toxunmaq və ya otağıma girmək çox əyləncəlidir. İndi yenidən otaqdan çıxıb özümü kilidləməkdən narahat olmaq lazım deyil! Üstəlik, özünü yaxşı və qəribə hiss edir.
Addım 1: Parçalar və Alətlər
Teensy -ni seçdim, çünki bu mənim ilk mikro nəzarətçimdir və hələ də proqramçım yoxdur. The Teensy yalnız Mac/Windows/Linux ilə uyğun A-miniB USB kabeli və quraşdırılması üçün pulsuz proqram tələb edir. Ayrıca, hex faylını yükləmək çox asandır; sadəcə tərtib edin və Teensy düyməsini basın.
Mənə bu layihənin qiyməti 21 dollar, üstəlik şəkil asma teli idi. Küçədəki hissələr bir qəhvə süzgəcindən (röle, LED, kondansatör) və bir yönləndiricidən (LED, modul jak, güc jakı, kondansatörlər) gəldi. Pulsuz nümunələr 7805 5 voltluq tənzimləyici, düymələr və açar idi. EE laboratoriyamdakı "qırıq hissələr" qutusunda çox şey tapdım: banan bağlayıcıları və kabel, tel, sn754410 sürücüsü, dörd pinli başlıq və rezistorlar. Ətrafımda güc üçün istifadə etdiyim əlavə bir dizüstü kompüter şarj cihazı və çıxarıldığı Apple modem kabeli vardı. Digər avadanlıq: divar lövhəsi. İsti bir yapışqan silahı, bir lehimləmə dəmiri, iynə faylı və olduqca standart olan bir elektrik matkabı istifadə etdim. İstifadə etdiyim ən qeyri -adi şey uzun, çevik bir tutma vasitəsi idi.
Addım 2: Əvvəlcədən mövcud olan Hardware
Çox şanslı idim ki, artıq çox şey quraşdırılıb. Otağım ADA üçün əlçatandır və artıq quraşdırılmış müxtəlif borular, elektrik qutuları və elektrik qapı zərbəsi var idi. Maraq ucbatından qapı zərbəsini aradan qaldıranda, əlaqəli olmadığını gördüm. Qapının vuruşundan otağımın içindəki boş bir divar lövhəsinə, oradan isə kənarda boş divar lövhəsinə başqa bir boru vardı.
Qapı tətili, işləməsi üçün 24V@3A -ya ehtiyacı olduğunu söyləyir, amma məndə olan 19V, 7.9A enerji təchizatı ilə öhdəsindən gələ bildim. Qapı zərbəsi qütbləşdi, buna görə polariteyi düzgün etdiyinizə əmin olun!
Addım 3: Dövrlər
Qapı zərbəsini idarə etmək üçün qəhvə süzgəcində tapdığım röleyi istifadə etdim. Bu röleyi idarə etmək üçün 5V -dən çox TTL lazım idi, buna görə də sn754410, röleyi idarə edən TTL -ni 19V -ə çevirmək üçün istifadə edildi. Sn754410 həqiqətən dörddə bir yarım H sürücüsüdür, buna görə çipin 3/4 hissəsini israf edirdim, amma heç bir güc tranzistorum yox idi, buna görə də istifadə etdim.
Sn754410 çipində biri 5V üçün, digəri isə çıxmaq istədiyiniz gərginlik üçün iki VCC pin var, bu mənim üçün 19V idi. Həqiqətən də gözəl bir çipdir. Bunu mühərrikləri və röleləri birbaşa idarə etmək üçün istifadə edə bilərsiniz, çünki hər çipdə 1A-ı dəyişə bilər və quraşdırılmış qoruyucu diodlara malikdir. Məlumat cədvəlinə baxın. Dövrümdə sn754410 -u birbaşa Teensy -nin çıxış pininə bağladım. Düymələr mikro nəzarətçilər üçün çox yaygın olan aktiv-aşağı olaraq bağlanır. Onlar birbaşa Teensy ilə əlaqəlidirlər, yəni proqram təminatında debunq etməliyəm. Vəziyyət işığı 1K ohm rezistor vasitəsilə Teensy -yə qoşulur; xüsusi heçnə. Dövrə kondansatör olmadan işləyirdi, amma hər halda onları qoydum. Yerə qədər həm 19V, həm də 5V güc raylarında qoruyucu qapaqlar var. Teensy -ni proqramlaşdırarkən 5V USB -dən gəldi, ancaq öz -özünə işləyərkən güc laptopun güc kərpicindən gəlir. 7805 tənzimləyicisini 19V -a birbaşa bağladığımda, həqiqətən də çox isti oldu, buna görə giriş gərginliyini və cərəyanı tənzimləyiciyə məhdudlaşdırmaq üçün bir rezistor şəbəkəsi qoydum. Bu bir şey idi, amma indi hər şey idarə oluna bilən bir temperaturdadır.
Addım 4: Birlikdə kabel çəkin
Teensy -də heç bir problem yox idi. Sancaqlar ilə gəlir, buna görə birbaşa çörək taxtasına qoşa bilərsiniz.
Laboratoriyanın sınmış hissələri qutusundan qırmızı (+) və qara (-) banan kabelləri ilə qapıya vurulan telləri rənglə kodlaşdırmağa qərar verdim. Tellərindən kəsilmiş bəzi fişlər var idi, buna görə bir lehim nöqtəsini açmaq üçün bir az plastik götürdüm. Laboratoriya banan fişlərinin bir -birinə necə bağlana biləcəyini çox sevirəm. Otağın xaricindəki düymələri və vəziyyət işığını içəridəki Teensy -yə bağlamaq üçün Apple telefon kabelindən istifadə etdim. Bir tərəfi qırıldığından o ucunu kəsdim və dörd pinli başlığa lehim edərək isti yapışqanla bağladım. Bu çörək lövhəmə gözəl bir şəkildə yapışdı. Fişi tərk etdiyim tərəf, yönlendiricidən qurtardığım modul yuvaya girdi. Bütün dörd teldən istifadə edildi (GND, vəziyyət işığı, start/stop düyməsi, kod düyməsi). Diqqət etməmisinizsə, fişləri və bağlayıcıları sevirəm. Routerdən sürüşdürdüyüm elektrik cərəyanına qoşulmuş güc kərpic. Telləri divar borularından keçirtmək, elastik tutma işi səbəbindən çox da çətin deyildi. Bu, həqiqətən də mənim günümü xilas etdi.
Addım 5: Kod
Kodumu şərh etməyə çalışdım. Unutmayın ki, bu 1.0 proqramdır, yəni səhvsiz deyil. ## Əməliyyat ## 1. Kod daxil etməyə başlamağa hazır olduğunuzu bildirmək üçün start/stop düyməsini basın. Vəziyyət işığı yavaş -yavaş yanıb sönməyə başlayır. 2. Kod düyməsinə kodunuzu vurun. Vəziyyət işığı 120 BPM -də yanıb -sönəcək, buna görə də istəsəniz bunu metronomunuz kimi istifadə edə bilərsiniz. Bununla birlikdə, kriptovalyuta proqramı bir -birinə nisbətlə nəbz uzunluqlarını ölçəcək, buna görə də öz tempinizi istifadə edə bilərsiniz. Yalnız kifayət qədər dəqiq olduğuna əmin olun! 3. Kod daxil edildikdən sonra yenidən start/stop düyməsini basın. Proqram sizi içəri buraxıb-buraxmayacağınıza qərar verəcək. İnsanlar çox dəqiq vaxt qoruyucusu olmadıqları üçün (sizinki həqiqətən deyil), tolerantlıq nisbətini +/- 30%olaraq təyin etdim. Bu o deməkdir ki, döyüntü uzunluqları bu məbləğdə qeyri -dəqiq ola bilər və yenə də toplanışdan keçə bilər. Bu olduqca oxşar melodiyalar arasındakı fərqi izah etmək üçün kifayət qədər yaxşıdır. İkiqat və üçqat uzunluqlu vuruşlar arasında az miqdarda çatmaq çətin olan üst-üstə düşmə var, amma kodu pozmaq hələ də olduqca çətindir. Qapının kilidini açmaq üçün vuruşlar bir-birinə doğru nisbətdə olmalıdır (+/- tolerantlıq nisbəti) və vuruşların sayı düzgün olmalıdır. Yanlış bir parol daxil edildikdə, proqram hər hansı bir istifadəçi girişinə məhəl qoymadan bir neçə saniyə gözləyir. Vəziyyət işığını da tez bir zamanda yandıracaq. Doğru kod daxil edildikdə, vəziyyət işığı davamlı olaraq yanacaq və qapı 8 saniyə kilidini açacaq. ## İSTİFADƏÇİ KONFİGÜRASİYASI ## Açar belə bir massivdə saxlanılır: #deleine keylength 5 const int key = {2, 1, 3, 3, 3}; // "Ad günün mübarək" serialı, atışlar arasında baş verən vaxtı saxlayır. Şifrənizdə "Sənin ad günün mübarək" kimi ALTI qeyd varsa, serialda BEŞ element olmalıdır. Şifrəniz həqiqətən uzundursa və içərisində 16 -dan çox vuruşunuz varsa (həqiqətən çətin, bunu məsləhət görmürəm), bu sətirdə göstərilən sayını artırmalısınız: #decine inputCodeLength 16 ## KODUN QALDIĞI # # Fasilələrlə maraqlandım, buna görə də düymələrimdə fasilələri işə saldım. Bu fasilələrin istifadəsini asanlaşdırmaq üçün kəsmə işçilərimdən müəyyən funksiya göstəricilərini yoxlamasını istədim. Göstərici NULL olaraq təyin edilmədikdə, göstərdiyi funksiya çağırılır. Bunlar cryptap.c daxilindəki müxtəlif "rejim tənzimləmə" funksiyaları ilə qurulur. Maksimum sayda daxil edilmiş impuls təyin edərək tampon daşmalarının qarşısını almağa çalışdım. Maksimum impuls sayı daxil olarsa, proqram dərhal parol analizinə başlayır və qapının kilidini açıb açmayacağına qərar verir. Ümid edirəm koddakı şərhlərim kömək edəcək. ## BUGS ## USB ayıklama kodunu silməyə çalışdım, amma etsəm kod işləməyəcək. Beləliklə, usb_init () və müxtəlif print () ifadələrini buraxdım. Kimsə onları silə bilsə və hələ də proqram üzərində işləsə, çox sevinərəm. Bunun mənim üçün niyə işləmədiyini izah etsələr daha yaxşı olar. Proqramlaşdırıldıqdan dərhal sonra, Teensy bəzən kod girişini qəbul etmir. Bunu həll etmək üçün dövrəni elektrik dövrəsinə keçirin.
Tövsiyə:
RFID Ev istehsalı qapı kilidi: 4 addım
RFID Ev Hazır Qapı Kilidi: RFID Qapı Kilidi cihazı gündəlik həyatınızda istifadə edə biləcəyiniz praktik bir cihazdır. Açar kartınızı taradığınız zaman qapı kilidini aça bilərsiniz. Layihəni bu veb saytdan dəyişdirdim: https://atceiling.blogspot.com/2017/05/arduino-rfid.html?m=1Yo
Tnikercad -da parol qorunan qapı kilidi: 4 addım
Tnikercad-da Şifrə Qorunan Qapı Kilidi: Bu layihə üçün bir klaviaturadan giriş alacağıq, bu girişi bucaq mövqeyi olaraq işləyəcəyik və əldə edilən 3 rəqəmli açıya əsaslanaraq servo motoru hərəkət etdirəcəyik. 4 x 4 klaviatura istifadə etdim, ancaq 3x4 klaviaturanız varsa, çox oxşar bir əlaqə var, buna görə ola bilər
Abellcadabra (Üz Tanıma Qapı Kilidi Sistemi): 9 addım
Abellcadabra (Üz Tanıma Qapı Kilidi Sistemi): Karantin zamanı evin qapısı üçün üz tanıma quraraq vaxtı öldürmək üçün bir yol tapmağa çalışdım. Adını Abellcadabra qoydum - bu, Abracadabra ilə qapının zəngi olan sehrli bir ifadənin birləşməsidir və mən yalnız zəng vururam. LOL
Üz Tanıma Qapı Kilidi: 8 Addım
Üz Tanıma Qapı Kilidi: Təxminən bir aydır ki, üz tanıma qapı kilidini təqdim edirəm! Bacardığım qədər səliqəli görünməyə çalışdım, ancaq 13 yaşım qədər edə bilərəm. Bu üz tanıma qapı kilidi Raspberry Pi 4 tərəfindən idarə olunur, xüsusi portativ çubuqla
Barmaq izi skaneri və RFID oxuyucusu olan elektrikli qapı kilidi: 11 addım (şəkillərlə)
Barmaq izi skaneri və RFID oxuyucusu olan elektrikli qapı kilidi: Layihə, düymələrdən istifadə etmənin qarşısını almaq üçün dizayn edildi, məqsədimizə çatmaq üçün optik barmaq izi sensoru və Arduino istifadə etdik. Ancaq oxunmaz bir barmaq izi olan insanlar var və sensor onları tanımır. Sonra düşünərək