Sisukord:

Cryptap: rütmipõhine ukselukk: 5 sammu
Cryptap: rütmipõhine ukselukk: 5 sammu

Video: Cryptap: rütmipõhine ukselukk: 5 sammu

Video: Cryptap: rütmipõhine ukselukk: 5 sammu
Video: CrypTap Bitcoin Maden Kazarak Para Kazanma 2024, Juuli
Anonim
Cryptap: rütmipõhine ukselukk
Cryptap: rütmipõhine ukselukk
Cryptap: rütmipõhine ukselukk
Cryptap: rütmipõhine ukselukk
Cryptap: rütmipõhine ukselukk
Cryptap: rütmipõhine ukselukk

Inspireerituna mitmest ukse avamise mehhanismist, mida olen näinud saidil hackaday.com, otsustasin selle ise luua. Sellel on kahe nupuga liides; üks parooli esitamise alustamiseks ja lõpetamiseks ning teine teie parooli rütmis. Olemas on ka olekutuli. Suutsin selle tõesti odavalt ehitada, kasutades osi, mida olin viimase paari kuu jooksul puhastanud. Ainsad asjad, mille eest pidin maksma, olid mikrokontroller ise, mille hind oli 21 dollarit (https://www.pjrc.com/teensy/), ja mõned piltide riputamistraadid, mis mul varem olid.

Minu tuppa sisenemiseks on väga lõbus koputada Star Warsi teemale või midagi muud. Nüüd ei pea ma muretsema, et end uuesti oma toast välja lukustan! Lisaks tundub see hea ja nipsakas.

Samm: osad ja tööriistad

Osad ja tööriistad
Osad ja tööriistad
Osad ja tööriistad
Osad ja tööriistad

Valisin Teensy, kuna see on minu esimene mikrokontroller ja mul pole veel programmeerijat. Teensy installimiseks on vaja ainult A-miniB USB-kaablit ja tasuta tarkvara, mis ühildub Maci/Windowsi/Linuxiga. Lisaks on hex -faili üleslaadimine tõesti lihtne; lihtsalt kompileerige ja vajutage Teensy nuppu.

Selle projekti maksumus oli minu jaoks 21 dollarit, millele lisandus pildi riputamise traat. Osad tänavalt tulid kohvipulgaatorist (relee, LED, kondensaator) ja ruuterist (LED, modulaarne pistik, toitepistik, kondensaatorid). Tasuta proovid olid 7805 5-voldine regulaator, nupud ja lüliti. Samuti leidsin oma EE labori "katkiste osade" kastist palju asju: banaanipistikud ja kaabel, juhe, draiver sn754410, nelja kontaktiga päis ja takistid. Mul oli sülearvuti lisalaadija, mida kasutasin toiteks, ja Apple'i modemikaabel, mille sakk oli katki. Muu riistvara: seinaplaat. Kasutasin kuuma liimipüstolit, jootekolvi, nõelaviili ja jõutrelli, mis on päris standardsed. Kõige ebatavalisem asi, mida ma kasutasin, oli pikk paindlik haaratsitööriist.

Samm: olemasolev riistvara

Olemasolev riistvara
Olemasolev riistvara
Olemasolev riistvara
Olemasolev riistvara
Olemasolev riistvara
Olemasolev riistvara
Olemasolev riistvara
Olemasolev riistvara

Mul vedas väga, et sinna oli juba nii palju paigaldatud. Minu tuba on ADA-juurdepääsetav ning sinna olid juba paigaldatud erinevad torud, elektrikarbid ja elektriline ukselöök. Ukselöögi eemaldamisel uudishimust avastasin, et see pole ühendatud. Minu toa sees oli toru ukselöögist tühja seinaplaadini ja sealt veel üks toru tühja seinaplaadini.

Ukselöök ütleb, et selle toimimiseks on vaja 24 V@3A, kuid sain hakkama 19V, 7,9A toiteallikaga, mis mul oli. Ukselöök oli polariseeritud, seega veenduge, et polaarsus oleks õige!

3. samm: ahelad

Ahelad
Ahelad
Ahelad
Ahelad
Ahelad
Ahelad
Ahelad
Ahelad

Ukselöögi kontrollimiseks kasutasin releed, mille leidsin kohvipritsist. Selle relee juhtimiseks oli vaja rohkem kui 5 V TTL -i, nii et sn754410 kasutati TTL -i tõlkimiseks 19 V -ks, mis käivitas relee. SN754410 on tõesti neljarattaline pool-H draiver, nii et raiskasin 3/4 kiibist, kuid mul polnud võimsustransistore, seega kasutasin seda.

Kiibil sn754410 on kaks VCC tihvti, üks 5 V jaoks, teine mis tahes pinge jaoks, mida soovite välja tulla, mis oli minu jaoks 19 V. See on tõesti lahe kiip. Saate seda kasutada mootorite ja releede otsejuhtimiseks, kuna see võib lülitada 1A kvartali kiibile ja sellel on sisseehitatud kaitsedioodid. Heitke pilk andmelehele. Oma vooluringis ühendasin sn754410 otse oma Teensy väljundpoldiga. Nupud on ühendatud kui aktiivne-madal, mis on mikrokontrollerite puhul väga tavaline. Need on otse Teensyga ühendatud, mis tähendab, et ma pean tarkvara tühistama. Olekutuli on Teensy'ga ühendatud 1K oomi takisti kaudu; ei midagi erilist. Vooluahel töötas ilma kondensaatoriteta, kuid igaks juhuks panin need ikkagi sisse. Nii 19V kui ka 5V toiteliinidel on maapinnale kaitsekorgid. Teensy programmeerimisel tuli 5V USB -st, kuid kui see töötab iseseisvalt, saab toite sülearvuti toiteplokist. Kui ma ühendasin regulaatori 7805 otse 19 V pingega, läks see PÄRISELT kuumaks, nii et panin sisse takistite võrgu, et piirata regulaatori sisendpinget ja -voolu. See oli nali, kuid nüüd on kõik hallataval temperatuuril.

Samm: ühendage see kokku

Juhtmestik koos
Juhtmestik koos
Juhtmestik koos
Juhtmestik koos

Teensy polnud probleem. Kaasas on tihvtid, nii et saate selle otse leivaplaadile ühendada.

Otsustasin värvida ukselöögi juhtmed punaste (+) ja mustade (-) banaanikaablitega labori purunenud osade kastist. Nende juhtmetelt oli lõigatud mõned pistikud, nii et ma tõmbasin plastikust ära, et paljastada jootmispunkt. Mulle väga meeldib, kuidas labade banaanipistikud saavad üksteise külge ühendada. Kasutasin Apple'i telefonikaablit, et ühendada väljaspool tuba asuvad nupud ja olekutuli Teensyga. Kuna üks külg oli katki, lõikasin selle otsa ära ja jootsin neljatahvilise päise sisse, sulgedes selle kuuma liimiga. See ühendati kenasti minu leivalauaga. Külg, mille külge ma pistiku jätsin, läks ruuterist päästetud modulaarsesse pesasse. Kasutati kõiki nelja juhtmestikku (GND, olekutuli, start/stopp -nupp, koodinupp). Kui te pole märganud, siis mulle meeldivad pistikud ja pistikud. Toiteplokk on ühendatud toitepistikuga, mille ma ruuterist pühkisin. Painduva haaratsi tõttu polnud juhtmete läbi seina torude keerutamine liiga keeruline. See päästis mu päeva tõesti.

Samm: kood

Kood
Kood
Kood
Kood

Olen proovinud oma koodi kommenteerida. Pidage meeles, et see on 1.0 tarkvara, mis tähendab, et see pole tõrgeteta. Olekutuli hakkab aeglaselt vilkuma. 2. Puudutage koodinupul oma koodi. Olekutuli vilgub kiirusel 120 lööki minutis, nii et saate seda soovi korral oma metronoomina kasutada. Krüpteerimisprogramm mõõdab aga proportsionaalselt impulsi pikkusi üksteise suhtes, nii et saate kasutada ka oma tempot. Lihtsalt veenduge, et olete piisavalt täpne! 3. Kui koodisisestus on tehtud, vajutage uuesti start/stopp -nuppu. Seejärel otsustab programm, kas teid sisse lasta. Kuna inimesed ei ole väga täpsed ajaarvestajad (teie omad seda tegelikult ei tee), siis määran tolerantsisuhteks +/- 30%. See tähendab, et löögipikkused võivad selle summa võrra olla ebatäpsed ja läbida ikkagi. See on piisavalt hea, et eristada üsna sarnaseid lugusid. Kahe- ja kolmekordse löögi vahel on väike raskesti ligipääsetav kattumine, kuid koodi on siiski üsna raske murda. Ukse avamiseks peavad löögid olema üksteisega õiges vahekorras (+/- tolerantsisuhe) ja löökide arv peab olema õige. Kui sisestate vale parooli, ootab programm mõni sekund, jättes kasutaja sisendi tähelepanuta. Samuti vilgutab see olekutuld kiiresti. Kui sisestate õige koodi, süttib olekutuli pidevalt ja uks avaneb 8 sekundiks. ## USER CONFIGURATION ## Võti salvestatakse sellisesse massiivi: #define keylength 5 const int key = {2, 1, 3, 3, 3}; // "Palju õnne teile sünnipäevaks" Massiiv salvestab löökide vahel toimuva aja. Nii et kui teie paroolil on KUUS märkust, näiteks "Palju õnne teile", peaks massiivis olema VIIS elementi. Kui teie parool on tõesti pikk ja teil on rohkem kui 16 lööki (tõesti raske, ma ei soovita seda), peate suurendama sellel real määratletud arvu: #define inputCodeLength 16 ## THE CODE REST # # Olin uudishimulik katkestuste pärast, nii et lasin nuppudel katkestusi käivitada. Et neid katkestusi oleks lihtne kasutada, lasin katkestuste käitlejatel kontrollida teatud funktsiooninäpunäiteid. Kui kursor pole seatud väärtusele NULL, käivitatakse funktsioon, millele see osutab. Neid saab määrata erinevate režiimide seadistamise funktsioonidega cryptap.c-s. Püüdsin vältida puhvri ülevoolu, määrates maksimaalse sisestatud impulsside arvu. Kui sisestatakse maksimaalne arv impulsse, alustab programm kohe paroolianalüüsi ja otsustab, kas avada uks. Loodan, et minu kommentaarid koodis aitavad. ## VIGAD ## Proovisin USB silumiskoodi eemaldada, kuid kood ei tööta, kui seda teen. Niisiis, jätsin usb_init () ja mitmesugused print () avaldused. Oleksin tänulik, kui keegi saaks need eemaldada ja programm siiski töötaks. Veelgi parem, kui nad suudavad selgitada, miks see minu jaoks ei töötanud. Kohe pärast programmeerimist ei aktsepteeri Teensy mõnikord koodi sisestamist. Selle lahendamiseks lülitage ahel sisse.

Soovitan: