Arduino koodi lukk SD-kaardiga. Automaatne "Smart" lukk ja Arduino. Projekti edasine arendamine "Smart Castle"

Nii juhtus, et me otsustasime tööle installida koodiluku, sest me töötame pidevalt - me otsa kontorist, uksest, mis peaks elanike puudumisel pidevalt suletud. Võtmed osutuvad sageli unustatud sees. Üldiselt otsustasid nad, et koodilukk oli suurepärane väljapääs.

Ma tulistasin Hiina kirbuturgudel ja eBay-l ma ei leidnud midagi odavamat ja enam-vähem tõsist ja otsustas teha selle oma käed. Ma teen kohe reservatsiooni, et Arduino platvorm valiti selle lihtsuse jaoks, kuna mikrokontrollerite suhtlemise kogemus ei olnud üldse mitte.

Idee

Ukse uksestpoolt peaks olema klaviatuur, millele parool on sisestatud, ülejäänud disain on seestpoolt fikseeritud. Ukse täieliku sulgemise kontrollimiseks kasutab Geron. Kabineti käimine, isik surub klaviatuuri "*" ja ilma ootamata, kuni ukse lähemale lähemale läheb oma asjadesse, kui uks on täielikult suletud, geronite suletakse ja lukk suletakse. Ukse avaneb sisestades 4x-kohaline parool ja klõpsates "#".

Tarvikud

ARDUINO UNO \u003d $ 18
Arduino Protoshield + Breadboard \u003d $ 6
L293D \u003d $ 1
Juhtmete Punch 30pc Braddatrad \u003d $ 4
2 pistikupesa RJ45 \u003d $ 4
2 pistikud RJ45 \u003d $ 0,5
Kesklukustus täiturmehhanism \u003d 250 rubla.
Geron \u003d külmutamine vana aknast vaba.
Metalli hiiglaslikud suurused \u003d tasuta
Juhtum vana rummu D-lingilt ühest ja pool miljonist rauast \u003d tasuta
Toiteallikas sama D-Link Hub 12 ja 5V \u003d ka tasuta
Hunnik kruvid ja kopad kinnitus see kõik see hea eluaseme \u003d 100 rubla.
Juhtpaneel OT turvahäire \u003d tasuta.

Kokku: $ 33,5 ja 350 hõõruge.

Mitte nii vähe, siis ütlete ja te kindlasti õigesti, aga rõõmu eest peate maksma! Ja sa oled alati tore koguda midagi. Enne disainilahenduse aeglustamist, kui kasutate paljast MK ilma Arduinota.

Koostöö ettevalmistamine

Ma tahan öelda paar sõna, et ostate täiturmehhanismi konstruktsiooni põhielementi. Kohalikus Auto-poes pakkusin ka kahe tüübi täiturmehhanisme: "Kahe juhtmega ja viis". Saleswomani sõnul olid nad absoluutselt samad ja juhtmete arvu erinevus ei tähenda midagi. Kuid nagu see hiljem osutus, ei ole see nii! Valisin kahe juhtmega seadme, see toideti 12V-st. Viis juhtmega disainis on paigaldatud piirlülitid, mis võimaldab teil juhtida liikumist hoova. Ma mõistsin, et ma ei ostnud seda alles siis, kui ma teda demonteerisin ja muutsin selle hilja. Käigus hooba osutus liiga lühike, et lükata lindi tavaliselt, nii et see oli vaja muuta seda natuke, nimelt eemaldada kaks kummipesu lühendada täiturmehhanismi hooba. Sest see keha pidi lõikama mööda tavalist hacksaw, sest teine \u200b\u200bpesumasin oli sees. Sinine lint meid, nagu alati aitas meil tulevikus selle tagasi kokku panna.
Mootori mootori juhtimiseks kasutati L293D-mootoreid, mis talub täiturmehhanismi mootori peatamist kuni 1200 mA tippkoormuse, kasvatati kuni 600 mA.
Klaviatuuri, dünaamika ja kahe LED-i juhtimisseadmed eemaldati juhtimisseade juhtpaneelilt. Konsooli ja põhiseade pidi olema ühendatud kasutades keerdpaari ja RJ45 ühendused

Programmeerimine.

Niisiis, AS Arduino programmeerimiskogemus ei ole seni olnud. Ma kasutasin ära teiste inimeste töö ja artikleid saidilt arduino.cc-st. Kes on huvitatud, võib vaadata seda kole koodi :)

Foto ja video



Arduino ja täiturmehhanism


Toiteallikas


Klaviatuur


Sewingale (ühendatud täiturmehhanismi metallist nõelaga ja millele soojus kahaneb ilu eest)

Seade videooperatsioon:

Edusammud ei seista ja "arukad lossid" ilmuvad üha enam korterite, garaažide ja majade ustele.

Sarnane lukk avaneb, kui vajutate nutitelefoni nuppu. Õnneks on nutitelefonid ja tabletid juba meie kasutuses sisenenud. Mõnel juhul on "Smart Lukud" ühendatud "pilveteenustega", nagu Google Disk ja avada eemalt. Lisaks võimaldab see valik anda juurdepääsu ukse avamisele teistele inimestele.

Seda projekti rakendab ARduino nutika lukustuse DIY versioon, mida saab hallata eemalt maapinna punktist.

Lisaks lisas projekti võime avada lukustus pärast sõrmejälgede identifitseerimist. Selleks integreeritakse sõrmejälgede andur. Mõlemad avamise valikud toimivad Adafruit IO platvormi alusel.

Sarnane loss võib olla suurepärane esimene samm teie aruka kodu projektis.

Sõrmejälgede anduri seadistamine

Et töötada sõrmejälgede anduriga, on Arduino jaoks suurepärane raamatukogu, mis hõlbustab oluliselt anduri reguleerimise protsessi. ARDUINO UNO kasutatakse selles projektis. Adafruit CC3000 kasutatakse Interneti-ühenduse loomiseks.

Alustame ühendamise võimsust:

  • Ühendage kontakt 5V Arduino plaadist punasele rööbastele;
  • GND kontakt Arduinoga ühendub sinise rööpaga ebamugava trükkplaadi.

Minge sõrmejälgede anduri ühendamiseks:

  • Kõigepealt ühendage võimsus. Selleks on punane traat ühendatud raudtee +5 V-ga ja mustaga - raudtee GND-ga;
  • Valge anduri traat ühendab 4-ga Arduino.
  • Roheline traat kestab 3 mikrokontrollerile.

Nüüd tegeleme CC3000 mooduliga:

  • Kontakt IRQ-ga CC3000-kaartidest Ühendage PIN-iga Arduino PIN-iga.
  • Vbat - ühendust 5-ga.
  • CS - Võta ühendust 10-ga.
  • Pärast seda peate ühendama SPI-kontaktid Arduino: Mosi, Miso ja CLK-ga ühendust 11, 12 ja 13-ga.

Noh, lõpus on vaja pakkuda sööki: Vin - ARDUINO 5V (punane raudtee oma kinnitusplaate) ja GND GND (Blue Rail Laype).

Täieliku kokkupandud projekti foto on toodud allpool:

Enne skeemi väljatöötamist, mis laadivad ADafruit IO andmeid, peate edastama andmeid sõrmejälgede anduri kohta. Vastasel juhul ei tunne ta teid tulevikus;). Soovitame kalibreerida sõrmejälgede andurit Arduino eraldi. Kui töötate selle anduriga esimest korda, soovitame lugeda kalibreerimisprotsessi ja üksikasjalikke juhiseid sõrmejälgede anduriga töötamiseks.

Kui te pole seda veel teinud, alustate konto ADafruit Io kontol.

Pärast seda saame jätkata "Smart Lock" arendamise järgmisse etappi Arduino: nimelt visandi arengut, mis edastab andmed Adafruit Io kohta. Kuna programm on üsna mahukas, tootes esile ja kaalume ainult selle peamisi osi ja seejärel anname lingi GitHubile, kus saate alla laadida täieliku visandi.

Skipsi algab kõigi vajalike raamatukogude laadimisega:

#Include.

#Include.

#Include.

#Include "adafruit_mqtt.h"

#Include "ADAFRUIT_MQTT_CC3000.H"

#Include.

#Include. >

Pärast seda peate joonistamise parandamiseks õigesti parandama, lisades WiFi-võrgu parameetrid, täpsustades SSID-i ja parooli (parool):

#Define WLAN_SECURASE WLAN_SEC_WPA2\u003e

Lisaks peate ADAFRUTI IO konto sisestamiseks sisestama nimi ja AIO klahvi (võti):

#Define aio_serverport 1883.

#Define aio_username "adafruitic"

#Define aio_key "adafruit_io_key"\u003e

Sõrmejälgede anduri koostoime ja andmetöötluse eest vastutavad järgmised read. Kui andur on aktiveeritud (kokkupuutumise trükk), on "1":

const char fingerprint_feed progmem \u003d aio_username "/ feed / sõrmejälg";

Adafruit_mqtt_publish sõrmejälg \u003d adafruit_mqt_publish (& mqtt, sõrmejälje_feed);

Lisaks peate looma meie anduri jaoks pehme riftareliobjekti eksemplari:

Softwareseri myserial (3, 4);

Pärast seda saame luua meie anduri objekti:

Adafruit_fingerprint sõrme \u003d adafruit_fingerprint (& myserial);

Sisalduse sees täpsustame, milline sõrme peaks tulevikus lukustama. See näide kasutab 0, mis vastab esimesele sõrmejälgede ID-le, mida andur kasutab:

int fingerida \u003d 0;

Pärast seda alustate meie projekti loendur ja viivitus (viivitus). Sisuliselt tahame, et lukk pärast avamist automaatselt töötada. See näide kasutab 10 sekundi möödumist, kuid saate seda väärtust oma vajaduste jaoks kohandada:

int aktiveerimiscounter \u003d 0;

int Lasteactivation \u003d 0;

int aktiveerimise aeg \u003d 10 * 1000;

Setup () funktsiooni kehas alustame sõrmejälgede anduri ja tagame CC3000 kiibi ühendamise WiFi-võrguga.

Loop () funktsiooni kehas ühendust Adafruit Ioga. Selle eest vastutab järgmine rida:

Pärast adafruit IO platvormi ühendamist kontrollige viimast sõrmejälge. Kui see langeb kokku ja lukk ei ole aktiveeritud, saadame Adafruit Io töötlemiseks "1":

kui (sõrmepind \u003d\u003d fingerida && Lockstate \u003d\u003d False) (

Serial.println (F ("Access Access!"));

lockstate \u003d TRUE;

Serial.println (F ("ebaõnnestus"));

Serial.println (F (OK! "));

lastActivation \u003d Millis ();

Kui se silmuse () funktsiooni sees on lukk aktiveeritud ja jõudsime ülalpool näidatud viivitusväärtuse väärtusele, saatdes "0":

iF (Activationcounter - Lasteaktiveerimine\u003e ActivationTime) && Lockstate \u003d\u003d Tõsi) (

lockstate \u003d FALSE;

kui (! sõrmejälgi.Publish (olek)) (

Serial.println (F ("ebaõnnestus"));

Serial.println (F (OK! "));

Võite alla laadida uusim versioon koodi GitHub.

On aeg testida meie projekti! Ärge unustage alla laadida ja installida kõiki vajalikke raamatukogusid Arduino!

Veenduge, et olete teinud kõik vajalikud muudatused visandisse ja laadige see oma Arduinole alla. Pärast seda avage seeriajärgse aken.

Kui Arduino ühendub WiFi-võrguga, vilgub sõrmejälgede andur punaselt. Legenda sõrme andurile. Serial monitori aken peaks ilmuma ID-number. Kui see langeb kokku, ilmub sõnum, "OK!". See tähendab, et andmed saadeti Adafruit Io serveritele.

Skeem ja visand edasise lukustuse seadistuse kohta LED-i näitel

Nüüd tegeleme projekti osaga, mis on otseselt vastutav ukselukku haldamise eest. Ühendada traadita võrgu ja aktiveerida / deaktiveerida lukk, siis on vaja valikulist ADAFRUTI ESP8266 mooduli (ESP8266 moodul ei pea olema adafruitist). Näitel, mida me kaalub allpool, siis on teil võimalik hinnata, kui lihtne on tagada andmete vahetamine kahe platvormi (Arduino ja ESP8266) vahel ADafruit Io abil.

Selles osas me ei tööta otse lukuga. Selle asemel ühendame lihtsalt kaasa toodud kontaktiga, kus lukk on allpool ühendatud. See annab võimaluse testida meie koodi, süvendada lossi disaini omadusi.

Kava on üsna lihtne: kõigepealt panna esp8266 leivatlaua. Pärast seda seadke LED. Ärge unustage, et LED-i pikk (positiivne) jalg on vastupanu kaudu ühendatud. Teine takisti jala on ühendatud kontakti 5-ga ESP8266 moodulis. Teine (katood) LED on ühendatud GND PIN-koodi ESP8266.

Täielikult kogutud skeem Näidatud allpool olevas fotos.


Nüüd vaatame selle välja selle projekti jaoks kasutatava visandiga. Jällegi on kood üsna mahukas ja keeruline, nii et me kaalume ainult selle peamisi osasid:

Alustame vajalike raamatukogude ühendamisega:

#Include.

#Include "adafruit_mqtt.h"

#Include "adafruit_mqtt_client.h"

WiFi konfigureerimine:

#Define WLAN_SSID "YOUR_WIFI_SSID"

#Define wlan_pass "your_wifi_pall"

#Define WLAN_SECURASE WLAN_SEC_WPA2.

Konfigureerige ka Adafruit Io parameetrid. Nii nagu eelmises osas:

#Define aio_server "io.adafruit.com" "

#Define aio_serverport 1883.

#Define aio_username "Adafruit_io_" kasutaja "

#Define aio_key "adafruit_io_key" "

Me näitame, millisele männile oleme LED-i ühendanud (tulevikus on see meie lukk või relee):

int relaypin \u003d 5;

Koostoimed sõrmejälgede anduriga nagu eelmises osas:

const char lock_feed progmem \u003d aio_username "/ feed / lukk";

ADAFRUIT_MQTT_SUBSCRIBE LOCK \u003d ADAFRUIT_MQTT_SUBSCRIBE (& MQTT, LOCK_FEED);

Seadistuse () funktsiooni kehas täpsustame, et PIN-kood, mille LED on ühendatud, peaks töötama väljundrežiimis:

pinmode (relaypin, väljund);

Loop () tsükli jooksul kontrollige kõigepealt, kas me oleme ühendatud ADafruit IOga:

Pärast seda kontrollige, milline signaal tuleb. Kui "1" edastatakse, aktiveerida kontakt, et oleme teatanud varem, millele meie LED on ühendatud. Kui meil on "0", tõlgime kontakti "madala" riigiga:

Adafruit_mqtT_subscribe * tellimus;

((Tellimus \u003d mqtt.readsubscription (1000)))) (

iF (Tellimus \u003d\u003d & Lock) (

Serial.Print (F ("sai:"));

Serial.println ((CHAR *) lukk.lastread);

// Salvesta käsk andmete tüübi andmetele

String Command \u003d String (CHAR *) lukk.lastread);

kui (käsk \u003d\u003d "0") (

digitalWrite (relaypin, madal);

kui (käsk \u003d\u003d "1") (

digitalWrite (relaypin, kõrge);

Leidma viimane versioon Sketch saate GitHubis.

On aeg meie projekti testida. Ärge unustage alla laadida kõik vajalikud raamatukogud oma arduino ja kontrollige, kas olete teinud muudatusi visandisse.

ESP8266 kiibi programmeerimiseks saate kasutada lihtsat USB-FTDI muundurit.

Laadige skatch Arduino ja avage seerianumber aken. Praeguses etapis me lihtsalt kontrollinud, kas ühendada Adafruti Io: Taskukohane funktsionaalsus Me vaatame kaugemale.

Katseprojekt

Nüüd jätkake testimist! Mine oma Adafruit Io kasutaja menüüsse, sööda menüüs. Kontrollige, loodud või puudub kanalid sõrmejälje ja lukustuse (prindi ekraanil allpool on read sõrmejälje ja lukk):


Kui puudub, peate käsitsi looma.

Nüüd peame pakkuma andmevahetust sõrmejälgede ja lukustuskanalite vahel. Lukustuskanal peab olema väärtus "1", kui sõrmejälgede kanal võtab väärtuse "1" ja vastupidi.

Selleks kasutage väga võimas tööriista adafruit IO: vallandajad. Triggers on sisuliselt tingimused, mida saate taotleda konfigureeritud kanalite suhtes. See tähendab, et neid saab kasutada kahe kanaali omavaheliseks.

Looge adafruit Io vallandajate sektsioonist uue reaktiivse vallandaja. See annab võimaluse vahetada andmeid sõrmejälgede anduri kanalite ja lossi vahel:


Nii peaks see otsima, kui mõlemad vallandajad on kohandatud:

Kõik! Nüüd saame tõesti testida meie projekti! Rakendage sõrme andurile ja vaata ARDUINO LED-i poolt, mis vastab andmeedastusele. Pärast seda vilgub LED ESP8266 moodulile. See tähendab, et ta hakkas saama andmeid MQTT kaudu. Juhtimisplaadi LED selles punktis peaks sisse lülitama.

Pärast viivitust, mida te installitud visandisse (vaikimisi, see väärtus on 10 sekundit), LED lülitub välja. Õnnitlused! Võite juhtida LED-i sõrmejäljega, olles mis tahes maailma punktis!

Elektroonilise lossi kohandamine

Me saime projekti viimasele osale: elektroonilise luku otsene ühendus ja juhtimine Arduino ja sõrmejälgede anduri abil. Projekt ei ole lihtne, saate kasutada kõiki allikaid kujul, kus nad on seatud kõrgemad, kuid relee ühendamiseks LED asemel.

Et otseselt ühendada lukk, siis on vaja täiendavaid komponente: toiteallikas 12 V, Jack toiteallikas, transistor (selles näites kasutatud IRLB8721PBF MOSFET, kuid saate kasutada ka teist, näiteks Bipolar Transistori TIP102. Kui te Kasutage bipolaarset transistori, peate lisama takisti.

Allpool on näidatud elektrijuht Kõigi komponentide ühendamine ESP8266 mooduliga:


Pange tähele, et kui kasutate MOSFET transistori, ei vaja te ESP8266 mooduli ja transistori PIN-5 vahel takisti.

Täielikult kokkupandud projekt kuvatakse alloleval fotol:


Laine ESP8266 mooduli FTDI mooduli abil ja ühendage toiteallikas 12 V pesaga. Kui kasutasite soovitatud tihvtid ühendamiseks, ei pea te nihet midagi muutma.

Nüüd saate oma sõrme andurile lahja: lukk peab töötama, vastates teie sõrmejäljele. Allpool olev video näitab automaatse "Smart" lossi projekti tegevust:

Projekti edasine arendamine "Smart Castle"

Meie projektis vabastas ukselukk kaugjuhtimispult sõrmejälje abil.

Saate ohutult katsetada, muuta visandit ja rippumist. Näiteks saate vahetada ukse elektroonilise lukk releele 3D-printeri, manipulaatori või neljakopteri haldamiseks ...

Te saate arendada oma " smart House"Näiteks aktiveerida kaugjuhtimissüsteem Arduino'le niisutussüsteemi või hõlvata ruumi valgust ... Ärge unustage, et saate samaaegselt aktiveerida peaaegu piiramatu arvu seadmeid ADafruit Io abil.

Jäta oma kommentaarid, küsimused ja osa isiklik kogemus allpool. Uued ideed ja projektid on sageli sündinud arutelus!

Teisel päeval vaatasin filmi "Uus Spiderman" ja ühes etapis Peetruse Parker kaugele avaneb ja sulgeb ukse oma sülearvutist. Niipea, kui ma seda nägin, mõistsin kohe, et mul on vaja sellist elektroonilist lukku esiuksele.

Natuke, ma kogunud kehtiv mudel arukad loss. Selles artiklis ma ütlen teile, kuidas ma teda kogusin.

1. samm: materjalide loetelu





ARDUINO elektroonilise luku koostamiseks vajate järgmisi materjale:

Elektroonika:

  • 5V seinaadapter

Komponendid:

  • 6 kruvid spinlet
  • kartong
  • juhtmed

Instrumendid:

  • jootekolb
  • kleepuv püstol
  • puur
  • puur
  • drill juhendi auk
  • kirjatarbed nuga
  • arvuti Arduino IDE-ga

2. samm: kuidas lossi toimib

Idee on see, et ma saan avada või sulgeda ukse ilma võtmeta ja isegi ilma selle saabumiseta. Kuid see on ainult peamine idee, sest saate siiski lisada detonatsioonianduri, et see reageerib spetsiaalsele koputusele või saate lisada häältuvastussüsteemi!

Scoreliga ühendatud servohoob sulgeb selle (0 °) ja avatud (60 °), kasutades Bluetooth-mooduli kaudu saadud käske.

3. samm: traadi paigaldusskeem


Kõigepealt ühendavad servo Arduino pardal (ma tahan märkida, et kuigi ma kasutasin ARDUINO NANO tasu, on UNO pardal, järelduste asukoht täpselt sama).

  • brown traat servo - maandus, ühendage see maapinnaga Arduino
  • punane traat - pluss, ühendage see ARDUINO 5B pistikuga
  • oranži traat - servo allika väljund, ühendage see ARDUINO 9. järeldusega

Soovitan teil enne assamblee jätkamist kontrollida servo toimimist. Selleks valige Arduino IDE programmis näidetes pühkida. Veenduge, et servo töötab, saame ühendada Bluetooth-mooduli. Bluetooth-mooduli RX väljundi ühendamine on mooduli TX väljundiga ARduino ja TX väljundiga RX väljund Arduinoga. Aga ärge tehke seda veel! Kui need ühendused jootetakse, ei saa te enam alla laadida ARDUINO koode, nii et te esimest korda alla laadida kõik oma koodid ja alles pärast seda jootmisühendusi.

Siin on mooduli ja mikrokontrolleri ühendite skeem:

  • RX moodul - TX Arduino plaadid
  • TX moodul - RX plaadid
  • VCC (positiivne väljund) moodul - 3.3V Arduino plaadid
  • Maapealne ühendus maapinnaga (maapinnal)

Kui selgitus tundub olevat arusaamatu, järgige traatühenduste skeemi.

Samm 4: testimine

Nüüd, kui meil on kõik tegutsevad osad, veenduge, et servo saab skoori liigutada. Enne ukse hindamise paigaldamist kogus ma katseproovi, et veenduda, et servo oleks üsna võimas. Alguses tundus mulle, et mu servo oli nõrk ja lisasin tilk õli scarlet, pärast seda ta kõik töötas hästi. On väga oluline, et mehhanism libiseb hästi, vastasel juhul riskid teie toas lukustatud.

5. samm: elektrofononentide puhul



Ma otsustasin kontrolleri ainult juhul ja Bluetooth-moodulisse panna ja servo jääb väljapoole. Selle tegemiseks pakume pappi, pakume Arduino Nano Circuit Circuit'i ja lisame 1 cm ruumi ümber perimeetri ümber ja lõigake välja. Pärast seda lõikasime ka viis keha külge. Esipaneelil on vaja lõigata reguleerimisseadme auk auk.

Juhtumi külgmised suurused:

  • Alt - 7,5x4 cm
  • Kate - 7,5x4 cm
  • Vasakule külgsein - 7,5x4 cm
  • Parem külgsein - 7,5x4 cm
  • Eessein - 4x4 cm (koos toitekaabli pesaga)
  • Tagasein - 4x4 cm

6. samm: lisa

Kontrolleri juhtimiseks vajate Androidi või Windowsi vidina sisseehitatud Bluetoothi \u200b\u200babil. Mul ei olnud võimalust kontrollida Apple'i seadmete rakenduse toimimist, võib-olla vajate draivereid.

Olen kindel, et mõned teist on võimalus seda kontrollida. Androidi allalaadimiseks Bluetooth-terminalirakendus, laadige akende jaoks teraterm. Seejärel peate mooduli ühendama nutitelefoniga, nimi peab olema LINVOR, parool - 0000 või 1234. Kui sidumine on seadistatud, avage installitud rakendus, sisestage valik ja valige "Installi ühendus (ohtlik)". Nüüd on teie nutitelefoni ARDUINO seerialiidese monitor, st saate vahetada andmeid kontrolleriga.

Kui sisestate 0, siis uks sulgeb ja nutitelefoni ekraanil on sõnum "Uks on suletud".
Kui sisestate 1, näete, kuidas uks avaneb ja ekraanil on sõnum "Uks on avatud."
Windowsis on protsess sama, välja arvatud see, et peate installima teratermi rakenduse.

7. samm: intim Scorelet


Kõigepealt peate ühendama spirl servo draivi. Selleks lõigake pistikud ajami korpuse kinnitusavadest. Kui me sisestame Servo-draivi, peavad paigaldusavad olema suletud purunemisega. Seejärel peate servo hoova spinlet pesasse panema, kus oli spinlet käepide. Kontrollige, kuidas lukk on juhtumi puhul. Kui kõik on hea, kinnitage servo hoob liimiga.

Nüüd peate kruvide ukse juhtide avadesse puurima. Selleks kinnitage ukse ja pliiatsiga hinded, märkige kruvide all ukseava ukse uksele. Puurige kruvide all oleva auku vaadeldavates kohtades umbes 2,5 cm sügavusel. Rakenda tulemuste ja kinnitage see kruvidega. Kontrollige uuesti servo operatsiooni.

8. samm: toitumine


Seadme lõpuleviimiseks vajate ARduino ühendamiseks toiteallikat, juhe ja mini-USB-pistikut.
Ühendage toiteallika võimsuse väljund toodanguga USB-mini-pordi Maa väljundiga, ühendage punane traat USB-mini-pordi punase traadiga, seejärel venitage traati lukustusest ukse silmusele ja venitada see sellest väljalaskeavale.

Samm 9: kood

#include servo myservo; int pos \u003d 0; int riiki; int lipu \u003d 0; Void Setup () (MyServo.attach (9); serial.Begin (9600); myServo.write (60); viivitus (1000);) VOID-ahela () (Serial.Available ()\u003e 0) Seriarial.Read (); Flag \u003d 0;) // Kui riik on "0", lülitub DC mootor välja, kui (olek \u003d\u003d "0") (MyServo.write (8); viivitus (1000); seerianumber. Printsln (ukse lukustatud ");) mujal, kui (riik \u003d\u003d" 1 ") (Myservo.write (55); Viivitus (1000); serial.println (" ukse lukustamata ");)))

10. samm: täielik loss Arduino põhjal

Nautige oma lossi kaugjuhtimispuldiga ja ärge unustage "juhuslikult" sõprade lukustamiseks toas.

See projekt on modulaarne, s.o. Te saate ühendada / keelata erinevaid objekte ja saada erinevaid funktsioone. Ülaltoodud pildid näitavad täieliku funktsionaalsuse võimalust, nimelt:

  • Lukustusmehhanism. Ukse avamiseks ja sulgemiseks. See projekt käsitleb kolme erineva mehhanismi kasutamist:
    • Servo. Seal on suur, seal on väike. Väga kompaktne ja koos raske korpusega - suurepärane valik
    • Castle Electric Drive auto uks. Suur ja võimas asi, aga sööb lihtsalt hulluvoolu
    • Solenoidne haug. Hea valikSest see slams ise

    Firmware seadetes saate valida ükskõik millise kolme tüübi (seadistus) lock_type)

  • Nupp sees. See aitab avada ja sulgeda ukse sees. Võib asetada ukse käepidemele (peopesast või sõrmede küljelt) uksele või moosile
  • Nupp väljaspool. See teenib ukse sulgemist, samuti energia säästmise ärkamist. Võib asetada ukse käepidemele (peopesast või sõrmede küljelt) uksele või moosile
  • Sisu ukse sulgemisel. Kasutatakse luku automaatseks sulgemiseks ukse sulgemisel. Nad võivad olla:
    • Kella nupp
    • Hall Sensor + magnet uksel ise
    • Gercon + magnet ukse ise
  • Salajane juurdepääsu lähtestamise nupp. Kasutatakse parooli lähtestamiseks / uue valiku / kombinatsiooni uue parooli / meeldetuletamiseks jne. Saab peita kusagil juhul
  • Valgusdiood Töö näitamiseks. RGB LED, kasutatud punased ja rohelised värvid (kui segatud on kollane):
    • Goriit Green - loss on avatud. Gorbs mitte unustada ukse sulgemiseks
    • Kollane põleb - süsteem ärkas ja ootab parooli sisendit
    • Vilkuv punane - istus aku

Iga neist elementidest saab süsteemist välja jätta:

  • Me eemaldame segadust. Seadete püsivara abil lülitage see välja ka välja (seadistus saba_button.). Nüüd sulgege lukk, peate vajutama nuppu.
  • Me eemaldada väljas nuppu. Seadete püsivara abil lülitage see välja ka välja (seadistus wake_button.). Nüüd ei pea süsteem ärkama, see ärkab ennast (energiatarbimine on veidi suurem). Ja ka meil pole nüüd nuppu esiukse sulgemiseks ja teil on vaja segadust. Kumbki loss - märkige see
  • Me eemaldame sisemise nupu. See valik sobib kappide ja seifide jaoks. Te ei pea seadetes midagi muutma
  • Me eemaldame LED-i. Te ei pea seadetes midagi muutma
  • Access Reset nuppu saab kaduda pärast esimest kasutamist või kirjutada kood ise
  • Uks on suletud, klõpsates väljaspool - ärgata üles, oodake parooli sisend / RFID-märgise / elektroonilise võtme / sõrmejälgede
  • Uks on suletud, süsteem ärkas, ootab parooli. Aega saab konfigureerida (seadistus uneaeg.)
  • Uks on suletud, parool sisestatakse / silt / võti jne. - avatud
  • Uks on suletud, vajutades sees - avatud
  • Uks on avatud, klõpsab väljastpoolt - lähedal
  • Uks on avatud, pressitud sees - lähedal
  • Uks on avatud, pressitud - Sulge

Lukk annab akutoite madala energiasäästurežiimis (lubada keelata: Setup sleep_anable), nimelt:

  • Ärkamine iga paari sekundi järel, järgige üritust (valikuline valik, kui nupp ei ole väljapoole. Seades saate lubada wake_button.)
  • Iga paari minuti järel, et jälgida akumpinge (sisse / välja lülitatud aku_monitor)
  • Kui Akum on tühjaks (pinge on seadistatud bat_low.):
    • avatud uks (valikuline, saab seadistada püsivara open_bat_low.)
    • keelata edasine avamine ja sulgemine
    • kui klõpsate nuppudele punase LED-i välklambi
    • peatage sündmuse vaatamine (s.o parool / etikett jne)

Kui süsteem ei magada, vajutage parool Shift nuppu (peidetud nupp). Leia B. parooli muutmise režiim:
Me sisestame numbritest parooli ( Maksimaalne 10 numbrit !!!)

  • Klõpsates * Parool salvestatakse mällu ja süsteem väljub parooli muutmisest
  • Kui klõpsate parooli lähtestamise (saate uuesti sisestada)
  • Kui te ei vajuta midagi 10 sekundit, jäta automaatselt parooli muutmise režiimi, parooli jääb vanaks

Kui süsteem ei magada (ma ärkasin nupud või une on keelatud), klõpsake parooli sisestamiseks sisestamiseks *
Kui süsteem magab ja töötab korrapäraselt, et kontrollida sündmuse kontrollimist, seejärel vajutage * ja hoidke all, kuni punane LED süttib
Parooli sisestamise režiim:

  • Paroolitöötlemine toimub nii, et õige parool loendatakse ainult siis, kui see on seatud numbrite õige järjestusse, st kui parool on 345, siis iga numbrid saab sisestada kuni järjestuse 345 ilmumiseni, s.o. 30984570345 avab lukk, kuna see jõuab 345.
  • Kui parool on õigesti sisestatud, avaneb uks
  • Kui te ei vajuta midagi, pärast 10 sekundi pärast naaseb süsteem tavalise (tollimaksu) režiimi
  • Kui klõpsate #, tule kohe välja parooli sisestamise režiimis
  • Kui vajutate parooli sisestusrežiimis salajase parooli muutmise nuppu, siis tulete sellest välja

Arduino on parim süsteem Seadmete kopeerimiseks. Enamik ideid ei oleks võimalik ilma temata tõeks olla. Pikka aega on selline mõte: luua spetsiaalne koodilukk Arduino. Selle avamiseks on vaja ühendada konkreetne võti. Sellisel juhul ei tohiks lukk avada, isegi kui te teate soovitud nuppu. Selle avamiseks on vaja taluda teatud intervallidega lihasmälu. Selline kurjategija ei suuda toime panna. Aga see on kõik teooria.

Selle kogumiseks peate ära kasutama ristkülikukujuliste impulsside spetsiaalset seadet, samuti mitmeid meetreid ja hunnikut. Aga valmis seade oleks suur mõõtmed Ja seda ei saa kasutada. Reeglina ei anna sellised mõtted puhata. Unistamise teostuse esimene etapp oli Arduino raames programmi loomine. See on ta, kes on koodilukk. Selle avamiseks peate vajutama ühtegi võtit, vaid mõnda aega ja tehke seda samal ajal. Lõpetatud skeem See näeb välja nagu:

Pildikvaliteet ei ole parim, kuid ühendus toimub maapinnale, D3, D5, D7, D9 ja D11.

Kood on esitatud allpool:

Const int ina \u003d 3; Const int inb \u003d 5; CONST INT INC \u003d 9; CONST INT LEDPIN \u003d 13; int i \u003d 1000; Bait a \u003d 0; Byte b \u003d 0; Bait c \u003d 0; Bait d \u003d 0; allkirjastamata pikka aega \u003d 0; // Ära unusta kõike, mis võtab väärtuse milli () allkirjastamata pikk temp \u003d 0; // salvestada allkirjastamata pika bait keya \u003d (0, 0, 0, 0, 0, 0, 0, 0); // koodid tegelikult byte keyb \u003d (1, 1, 1, 1, 0, 1, 0, 0); Byte Keyc \u003d (1, 0, 1, 0, 1, 1, 1, 0); Byte k \u003d 0; Void Setup () (PINMODE (INA, INPANT_PULLUP); // 3 sisendid ühendatud PINMOD-nupud (INB, INPUT_PULLUP); PINMODE (INC, INPUT_PULLUP); PINMODE (LEDPIN, väljund); // sisseehitatud sisseehitatud LED 13. päeval Pine PinMode (7, väljund); PinMode (11, väljund); Digitalwrite (7, madal); // Asendage maa-digitaalne kirja (11, madal); aeg \u003d millis (); // VAJADUSEL) VOID BLINKTWICE ( ) (// // kahekordse vilkuva digitaalne valgusõmbes (LEDPIN, kõrge); viivitus (100); Digitalwrite (LEDPIN, madal); Viivitus (100); Digitalwrite (LEDPIN, kõrge); Digitalwrite (LEDPIN); Viivitus (200);) Void ahela () (kui (k \u003d\u003d 0) (blinktwice (); // kutse sisestada kood), kui (k \u003d\u003d 8) (digitalwrite (LEDPIN, kõrge); hiline (3000); k \u003d 0;) a \u003d digitaalneRead (INA); // signaalitasemed loetakse nupud - pressitud / ei vajutata B \u003d digitallread (INB); C \u003d DigitalRead (INC); Viivitus (100); // Järgmine Kui kaitse Valepatsientide vastu ei saa te kasutada, kui ((Digitallread (INA) \u003d\u003d A) && (digitalRead (INB) \u003d\u003d B) && (digitalRead (inc) \u003d\u003d c))) (kui (a \u003d\u003d Keya [k] ) (Kui (B \u003d\u003d Keyb [k]) (kui (C \u003d\u003d Keyc [k]) (K ++; )))))) (k \u003d\u003d 1) (kui (d \u003d\u003d 0) (aeg \u003d milli (); d ++;))) temp \u003d millis (); Temp \u003d temp - aeg; Kui (temp\u003e 10000) (K \u003d 0; d \u003d 0; aeg \u003d millis ();))

Selleks, et mitte olla täiendavaid küsimusi koodi kohta, tuleks selgitada mõningaid hetki. Seadistusfunktsiooni kasutatakse sadamate määramiseks. Järgmine funktsioon on INPUT_PULLUP, mis on vajalik männi pinge suurendamiseks 5 V. See viiakse läbi takisti abil. Selle tõttu ei esine erinevaid lühisirikuid. Suurema mugavuse huvides on soovitatav kasutada BlinkTice'i funktsiooni. Üldiselt peate erinevate programmide loomisel proovima teisi funktsioone.

Pärast funktsioonide määramist loetakse signaal sadamatest. Kui nuppu vajutatakse, tähistatakse seda numbrit 1 ja kui mitte - 2. Järgmine on analüüs kõik väärtused. Näiteks ilmus selline kombinatsioon 0,1.1. See tähendab, et esimene võti vajutatakse ja ülejäänud kaks ei ole. Kui kõik väärtused täidetakse õigesti, siis tingimus 8 on ka tõsi. Seda tõendab esipaneeli valgustatud LED-i abil. Seejärel peate sisestama konkreetse koodi, mis avati ukse avamiseks.

Viimaseid koodielemente kasutatakse meetri väärtuste langetamiseks. See funktsioon viiakse läbi, kui pärast viimast keyststroke möödunud rohkem kui 10 sekundit. Ilma selle koodita oli võimalik läbida kõike võimalikud võimalusedKuigi neid on piisavalt palju. Pärast selle seadme loomist on vaja seda testida. Veel

mob_info.