Arduino koda bloķēšana ar SD karti. Automātiska "Smart" Lock un Arduino. Projekta "Smart Castle" turpmāka attīstība

Tas notika, ka mēs nolēmām instalēt kodu slēdzeni uz jūsu durvīm darbā, jo mēs esam pastāvīgi darbojas - mēs beidzām no biroja, durvīm, kurām būtu jāslēdz pastāvīgi, ja nav iedzīvotāju. Taustiņi bieži tiek aizmirsti iekšā. Kopumā viņi nolēma, ka koda atslēga bija lielisks izeja.

Es rummaged uz ķīniešu blusu tirgiem un eBay es neatradu neko lētāku un vairāk vai mazāk nopietnu un nolēma to darīt savas rokas. Es veikt rezervāciju tūlīt, ka Arduino platforma tika izvēlēta tās vienkāršībai, jo pieredze komunikācijas ar mikrokontrolleri vispār nebija.

Ideja

Uz durvīm ar ārpusi no durvīm, ir jābūt tastatūrai, kurā tiek ievadīta parole, pārējais dizains ir piestiprināts iekšpusē. Lai kontrolētu pilnu aizvēršanu durvīm izmanto Geron. Izejiet no skapja, persona nospiež uz "*" tastatūru un negaidot līdz durvīm aizvērt tuvāko iet uz viņa lietām, kad durvis ir pilnīgi aizvērtas, gerons aizveras un slēdzene tiks slēgta. Durvis atveras, ievadot 4x ciparu paroli un noklikšķinot uz "#".

Piederumi

Arduino uno \u003d $ 18
Arduino protoshield + maize \u003d $ 6
L293D \u003d $ 1
Vadu perforēšana 30gab par Braddatrad \u003d $ 4
2 Sockets RJ45 \u003d $ 4
2 kontaktdakšas RJ45 \u003d $ 0.5
Centrālā atslēga Actuator \u003d 250 rubļi.
Geron \u003d saldēšana bez vecā loga.
Šūšanas metāla milzu izmēri \u003d bezmaksas
Lieta no vecā rumba D-saites no pusotra miljoniem dzelzs \u003d bezmaksas
Barošanas avots no tā paša D-Link Hub 12 un 5V \u003d arī bez maksas
Ķekars skrūves un spaiņi, lai piestiprinātu visu šo labo korpusam \u003d 100 rubļu.
Vadības panelis OT drošības signalizācija \u003d Bezmaksas.

KOPĀ: $ 33,5 un 350 rubļi.

Ne tik maz, jūs teiksiet, un jūs noteikti taisnība, bet par prieku jums ir jāmaksā! Un jūs vienmēr esat jauki savākt kaut ko. Pirms dizainu var palēnināt, ja izmantojat tukšu MK bez Arduino.

Sagatavošanās montāžai

Es vēlos teikt dažus vārdus par pievadu dizaina galvenā elementa iegādi. Vietējā auto veikalā man tika piedāvāts divu veidu izpildmehānismi: "ar diviem vadiem un pieciem". Saskaņā ar pārdevēju, viņi bija absolūti vienādi, un atšķirība no vadu skaita nenozīmēja neko. Tomēr, kā tas izrādījās vēlāk, tas nav tik! Es izvēlējos ierīci ar diviem vadiem, tas tika barots no 12V. Dizainā ar pieciem vadiem ir uzstādīti limitu slēdži, kas ļauj kontrolēt sviras kustību. Es sapratu, ka es to nepārdevēju tikai tad, kad es viņu izjauktu un mainīju to vēlu. Sviras gaita izrādījās pārāk īss, lai normāli push lente, tāpēc tas bija nepieciešams, lai modificētu to mazliet, proti, noņemt divas gumijas paplāksnes saīsinot pievada sviru. Šim nolūkam ķermenim bija jāsamazina pa parasto zāģi, jo otrā paplāksne bija iekšā. Blue Tape ASV, kā vienmēr palīdzēja mums nākotnē, montējot to atpakaļ.
Lai kontrolētu motoru, tika izmantots L293D motori, kas izturēja maksimālo slodzi līdz 1200 mA, apstājoties pievada motoru, maksimālā slodze, kas audzēta līdz 600 mA.
Vadības ierīces no tastatūras, dinamikas un divu LED tika izņemti no vadības trauksmes vadības paneļa. Konsolei un galvenajai ierīcei bija jābūt savienotai, izmantojot vītā pāra un RJ45 savienotājus

Programmēšana.

Tātad, kā arduino programmēšanas pieredze man nav bijusi līdz šim. Es izmantoju citu cilvēku darbu un rakstus no vietnes arduino.cc. Kas ir ieinteresēts, var apskatīt šo neglīto kodu :)

Foto un video



Arduino un izpildmehānisms


Enerģijas padeve


Tastatūra


Sewingale (savienots ar pievadu ar metāla adatu un uz kura siltuma sarukums par skaistumu)

Ierīces video darbība:

Progress nav stāvēt, un "viedās pilis" arvien vairāk parādās uz dzīvokļu, garāžu un māju durvīm.

Līdzīga atslēga tiek atvērta, nospiežot pogu uz viedtālruņa. Par laimi, viedtālruņi un tabletes jau ir ievadījis mūsu lietojumu. Dažos gadījumos "viedās slēdzenes" ir savienotas ar "mākonis pakalpojumiem", piemēram, Google disku un atvērts attālināti. Turklāt šī iespēja ļauj piekļūt durvju atvēršanai citiem cilvēkiem.

Šo projektu īstenos DIY versija Smart Lock uz Arduino, ko var pārvaldīt attālināti no jebkura punkta no zemes.

Turklāt projekts pievienoja iespēju atvērt slēdzeni pēc pirkstu nospiedumu identifikācijas. Lai to izdarītu, pirkstu nospiedumu sensors tiks integrēts. Abas durvju atvēršanas iespējas darbosies, pamatojoties uz Adafruit IO platformu.

Līdzīga pils var būt lielisks pirmais solis jūsu viedās mājas projektā.

Pirkstu nospiedumu sensora iestatīšana

Lai strādātu ar pirkstu nospiedumu sensoru, ir lieliska bibliotēka Arduino, kas ievērojami atvieglo procesu, pielāgojot sensoru. Arduino UNO tiek izmantots šajā projektā. Adafruit CC3000 izmanto, lai izveidotu savienojumu ar internetu.

Sāksim savienošanas jaudu:

  • Pievienojiet kontaktu 5V no Arduino kuģa līdz sarkanajam dzelzceļam;
  • GND kontakts ar Arduino savieno ar zilu sliedi par neatbilstošu shēmu.

Dodieties uz pirkstu nospiedumu sensora savienojumu:

  • Vispirms pievienojiet jaudu. Lai to izdarītu, sarkanais vads ir savienots ar dzelzceļu +5 V, un melnā - ar dzelzceļa GND;
  • Baltā sensora vads savienojas ar 4 līdz Arduino.
  • Zaļais vads iet lai sazinātos 3 mikrokontrollerā.

Tagad mēs nodarbosimies ar CC3000 moduli:

  • Sazinieties ar IRQ no CC3000 kartēm Savienojuma izveide ar 2 arduino.
  • Vbat - lai sazinātos 5.
  • CS - sazināties 10.
  • Pēc tam jums ir nepieciešams savienot spi kontaktus ar Arduino: Mosi, Miso un CLK, lai sazinātos ar 11, 12 un 13, attiecīgi.

Nu, galu galā ir nepieciešams nodrošināt maltītes: vin - uz Arduino 5V (sarkano sliedi uz montāžas kuģa) un GND uz GND (zilā sliede uz Laype).

Pilnībā samontētā projekta fotoattēls ir parādīts zemāk:

Pirms skices izstrādes, kas ielādēs datus par Adafruit Io, jums ir nepieciešams pārsūtīt datus par pirkstu nospiedumu sensoru. Pretējā gadījumā nākotnē viņš neatpazīst jūs;). Mēs iesakām kalibrēt pirkstu nospiedumu sensoru, izmantojot Arduino atsevišķi. Ja jūs pirmo reizi strādājat ar šo sensoru, mēs iesakām lasīt kalibrēšanas procesu un detalizētus norādījumus par darbu ar pirkstu nospiedumu sensoru.

Ja jūs to vēl neesat darījuši, jūs sāksiet kontu ADAFRUIT IO.

Pēc tam, mēs varam doties uz nākamo posmu attīstības "Smart Lock" uz Arduino: proti, attīstību Skice, kas nosūtīs datus par ADAFRUIT IO. Tā kā programma ir diezgan apjomīga, rakstā mēs izcelt un apsvērt tikai tās galvenās detaļas, un tad pieņemsim saiti uz Github, kur jūs varat lejupielādēt pilnu skici.

Skūtne sākas ar visu nepieciešamo bibliotēku iekraušanu:

#Include.

#Include.

#Include.

#Include "adafruit_mqtt.h"

#Include "adafruit_mqtt_cc3000.h"

#Include.

#Include. >

Pēc tam, jums ir nepieciešams pareizi izlabot skici, ievietojot parametrus jūsu WiFi tīklu, norādot SSID un paroli (parole):

#Define wlan_security wlan_sec_wpa2\u003e

Turklāt, ievadiet savu ADAFRUTI IO kontu ievadiet vārdu un AIO taustiņu (taustiņu):

#Define aio_serverport 1883.

#Define aio_username "adafruitic"

#Define aio_key "adafruit_io_key"\u003e

Šādas rindas ir atbildīgas par mijiedarbību un datu apstrādi no pirkstu nospiedumu sensora. Ja sensors ir aktivizēts (kolonijas nospiedums), būs "1":

const char pirkstuprint_feed progMem \u003d aio_username "/ plūsmas / pirkstu nospiedumi";

Adafruit_mqtt_publish pirkstu nospiedums \u003d adafruit_mqtt_publish (& mqtt, pirkstu nospiedums_feed);

Turklāt mūsu sensoram ir jāizveido programmatūras priekšmeta gadījums:

SoftwareSeral MySerial (3, 4);

Pēc tam mēs varam izveidot objektu mūsu sensoram:

Adafruit_fingerprint pirksts \u003d adafruit_fingerprint (& myserial);

Skices iekšpusē mēs norādām, kurš pirkstu nedrīkst aktivizēt slēdzeni nākotnē. Šis piemērs izmanto 0, kas atbilst pirmajam pirkstu nospiedumu ID, ko izmanto sensors:

int pirkstiem \u003d 0;

Pēc tam inicializējiet mūsu projekta skaitītāju un aizkavēšanos (kavēšanos). Būtībā mēs vēlamies, lai bloķēšana automātiski darbojas pēc atvēršanas. Šis piemērs izmanto aizkavēšanos 10 sekundēm, bet jūs varat pielāgot šo vērtību savām vajadzībām:

int ActivationCounter \u003d 0;

int lastactivation \u003d 0;

int ActivationTime \u003d 10 * 1000;

Iestatīšanas () funkcijas korpusā mēs inicializēt pirkstu nospiedumu sensoru un nodrošina CC3000 mikroshēmu savienojumu ar WiFi tīklu.

Cilpas korpusā () funkcija savienojas ar Adafruit Io. Par to ir atbildīga šāda rinda:

Pēc savienojuma ar Adafruit IO platformu pārbaudiet pēdējo pirkstu nospiedumu. Ja tas sakrīt, un slēdzene nav aktivizēta, mēs nosūtām "1" apstrādei Adafruit IO:

ja (pirkstu nospiedums \u003d\u003d FingerId && Lockstate \u003d\u003d FALSE) (

Serial.println (F ("Piešķirtā piekļuve!"));

locstate \u003d taisnība;

Serial.println (f ("neizdevās"));

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

lastactivation \u003d Millis ();

Ja cilpa () funkcija ir aktivizēta, un mēs sasniedzām aizkavēšanās vērtību, kas tika norādīta iepriekš, nosūtot "0":

ja ((ActivationCounter - Lastactivation\u003e ActivationTime) && Lockstate \u003d\u003d TRUE) (

lockstate \u003d FALSE;

ja (! pirkstu nospiedums.Publish (valsts)) (

Serial.println (f ("neizdevās"));

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

Jūs varat lejupielādēt jaunāko versiju kodu Github.

Ir pienācis laiks pārbaudīt mūsu projektu! Neaizmirstiet lejupielādēt un instalēt visas nepieciešamās Bibliotēkas Arduino!

Pārliecinieties, ka esat veicis visas nepieciešamās izmaiņas skicē un lejupielādējiet to savā Arduino. Pēc tam atveriet sērijas monitora logu.

Kad Arduino savieno ar WiFi tīklu, pirkstu nospiedumu sensors mirgos sarkans. Leģenda pirkstu uz sensoru. Sērijas monitora logam jāparādās ID numurs. Ja tas sakrīt, parādīsies ziņojums, "OK!". Tas nozīmē, ka dati tika nosūtīti uz Adafruit IO serveriem.

Shēma un skice papildu bloķēšanas iestatījumu uz LED piemēru

Tagad mēs risināsim projekta daļu, kas ir tieši atbildīga par durvju slēdzenes pārvaldību. Lai izveidotu savienojumu ar bezvadu tīklu un aktivizētu / deaktivizētu slēdzeni, jums būs nepieciešama izvēles ADAFRUTI ESP8266 modulis (ESP8266 modulis nav jābūt no adafruit). Par piemēru, ko mēs turpmāk izskatīsim, jūs varēsiet novērtēt, cik viegli ir nodrošināt datu apmaiņu starp divām platformām (Arduino un ESP8266), izmantojot Adafruit Io.

Šajā sadaļā mēs nedarbosimies tieši ar slēdzeni. Tā vietā, mēs vienkārši savienot noveda pie kontakta, kur slēdzene tiks savienota turpmāk. Tas dos iespēju pārbaudīt mūsu kodu, nepazaudējot pils dizaina iezīmēs.

Shēma ir diezgan vienkārša: vispirms iestatiet ESP8266 uz maizes plāksnes. Pēc tam iestatiet LED. Neaizmirstiet, ka LED Long (pozitīvā) kāja ir savienota ar rezistoru. Otrā rezistora kāja ir savienota ar kontaktu 5 uz ESP8266 moduli. LED otrais (katodods) ir savienots ar GND PIN uz ESP8266.

Pilnīgi savāktā shēma Redzams zemāk redzamajā fotoattēlā.


Tagad pieņemsim to noskaidrot ar skici, kas izmanto šo projektu. Atkal, kods ir diezgan apjomīgs un sarežģīts, tāpēc mēs izskatīsim tikai tās galvenās daļas:

Mēs sākam saistībā ar nepieciešamo bibliotēku:

#Include.

#Include "adafruit_mqtt.h"

#Include "adafruit_mqtt_client.h"

Konfigurējiet WiFi:

#Define wlan_ssid "your_wifi_ssid"

#Define wlan_pass "your_wifi_pall"

#Define wlan_security wlan_sec_wpa2.

Arī konfigurējiet ADAFRUIT IO parametrus. Tāpat kā iepriekšējā sadaļā:

#Define aio_server "io.adafruit.com"

#Define aio_serverport 1883.

#Define aio_username "adafruit_io_" lietotājs "

#Define aio_key "adafruit_io_key"

Mēs norādām, kura priede mēs esam savienojuši LED (nākotnē tas būs mūsu slēdzene vai relejs):

int relaypin \u003d 5;

Mijiedarbība ar pirkstu nospiedumu sensoru, kā iepriekšējā sadaļā:

const char lock_feed progMem \u003d aio_username "/ plūsmas / bloķēšana";

Adafruit_mqtt_subscribe Lock \u003d adafruit_mqtt_subscribe (& mqtt, bloķēšana);

Iestatīšanas struktūrā () funkcija, mēs norādām, ka PIN kurai LED ir savienots, jādarbojas izejas režīmā:

pinmode (relaypin, izvade);

Loop () cikla laikā vispirms pārbaudiet, vai mēs savienojām ar Adafruit IO:

Pēc tam pārbaudiet, kuru signālu nāk. Ja tiek nosūtīts "1", aktivizējiet kontaktu, ko mēs esam paziņojuši agrāk, uz kuriem ir pievienots mūsu LED. Ja mēs saņēmām "0", mēs tulkojam kontaktu ar "zemo" valsti:

Adafruit_mqtt_subscribe * abonements;

kamēr ((abonements \u003d mqtt.readsubsubscription (1000))) (

ja (abonements \u003d\u003d & slēdzene) (

Serial.print (f ("saņēma:"));

Serial.println ((char *) Lock.Laskarts);

// saglabāt komandu datu tipa datiem

Virknes komanda \u003d virkne (char *) lock.ltraskarts);

ja (komanda \u003d\u003d "0") (

digitalwrite (relaypin, zems);

ja (komanda \u003d\u003d "1") (

digitalwrite (relaypin, augsts);

Atrast pēdējā versija Skici jūs varat github.

Ir pienācis laiks pārbaudīt mūsu projektu. Neaizmirstiet lejupielādēt visas nepieciešamās bibliotēkas jūsu Arduino un pārbaudiet, vai esat veicis izmaiņas skicē.

Lai ieprogrammētu ESP8266 mikroshēmu, varat izmantot vienkāršu USB-FTDI pārveidotāju.

Ievietojiet skatch uz Arduino un atveriet sērijas monitora logu. Šajā posmā mēs vienkārši pārbaudījām, vai izveidot savienojumu ar ADAFRUTI IO: pieejamu funkcionalitāti, mēs izskatīsim tālāk.

Testa projekts

Tagad dodieties uz testēšanu! Iet uz savu ADAFRUIT IO lietotāja izvēlni, izvēlnē Plūsmas. Pārbaudiet, izveidoja vai nav kanālus pirkstu nospiedumu un bloķēšanai (uz drukas ekrāna zem tā ir rindu pirkstu nospiedumu un bloķēšanas):


Ja nav, jums ir jāizveido manuāli.

Tagad mums ir jāsniedz datu apmaiņa starp pirkstu nospiedumu un bloķēšanas kanāliem. Lock kanāls ir padarīt vērtību "1", kad pirkstu nospiedumu kanāls ņem vērtību "1" un otrādi.

Lai to izdarītu, izmantojiet ļoti spēcīgu rīku Adafruit IO: trigeri. Trigeri būtībā ir apstākļi, kurus var pieteikties konfigurētiem kanāliem. Tas ir, tos var izmantot divu kanālu savstarpējai saistībai.

Izveidojiet jaunu reaktīvo sprūdu no ADAFRUIT IO trigeru sadaļā. Tas nodrošinās iespēju apmainīties ar datiem starp pirkstu nospiedumu sensoru kanāliem un pili:


Tas ir, kā tas būtu jāmeklē, kad abi trigeri ir pielāgoti:

Viss! Tagad mēs varam patiešām pārbaudīt mūsu projektu! Piesakies pirkstu uz sensoru un redzēt, kā Arduino sāka wink ar LED, kas atbilst datu pārraidei. Pēc tam LED mirgo ESP8266 modulī. Tas nozīmē, ka viņš sāka saņemt datus, izmantojot MQTT. LED uz ķēdes kuģa šajā brīdī arī jāievēro.

Pēc aizkavēšanās, ko instalējāt skicē (pēc noklusējuma, šī vērtība ir 10 sekundes), LED izslēgsies. Apsveicam! Jūs varat kontrolēt LED ar pirkstu nospiedumu, atrodoties jebkurā vietā pasaulē!

Pielāgot elektronisko pili

Mēs saņēmām projekta pēdējo daļu: elektroniskās slēdzenes tiešu savienojumu un kontroli, izmantojot Arduino un pirkstu nospiedumu sensoru. Projekts nav viegli, jūs varat izmantot visus avotus tādā formā, kādā tie ir izvietoti augstāk, bet rezultātā, lai savienotu releju.

Lai tieši savienotu slēdzeni, jums būs nepieciešamas papildu sastāvdaļas: barošanas avots līdz 12 V, Jack for barošanas avots, tranzistors (šajā piemērā, izmanto IRLB8721PBF MOSFET, bet jūs varat arī izmantot citu, piemēram, bipolārā tranzistors tip102. Ja jūs Izmantojiet bipolāro tranzistoru, jums būs nepieciešams pievienot rezistoru.

Tālāk redzams elektriskā ķēde Visu sastāvdaļu pievienošana ESP8266 modulim:


Lūdzu, ņemiet vērā, ka, ja izmantojat MOSFET tranzistoru, jums nav nepieciešams rezistors starp Spand 5 no ESP8266 moduli un tranzistors.

Pilnībā samontēts projekts ir redzams zemāk redzamajā fotoattēlā:


Viļņa ESP8266 modulis, izmantojot FTDI moduli un savienojiet 12 V uz Jack barošanas avotu. Ja izmantojāt ieteicamās tapas, lai izveidotu savienojumu, jums nav jāmaina kaut kas skicē.

Tagad jūs varat izliekt pirkstu uz sensoru: slēdzene ir jāstrādā, atbildot uz pirkstu nospiedumu. Tālāk redzamajā videoklipā ir redzams automātiskās "Smart" pils projekts darbībā:

Projekta "Smart Castle" turpmāka attīstība

Mūsu projektā atbrīvoja durvju bloķēšanas tālvadības pulti, izmantojot pirkstu nospiedumu.

Jūs varat droši eksperimentēt, modificēt skices un siksnas. Piemēram, jūs varat nomainīt durvju elektronisko atslēgu uz releja, lai pārvaldītu savu 3D printeri, manipulatoru vai quadcopter ...

Jūs varat attīstīt savu " smart māja"Piemēram, attālināti aktivizējiet apūdeņošanas sistēmu Arduino vai iekļaujiet gaismu telpā ... Neaizmirstiet, ka jūs varat vienlaicīgi aktivizēt gandrīz neierobežotu skaitu ierīču, izmantojot Adafruit IO.

Atstājiet savus komentārus, jautājumus un daļu personīgā pieredze zemāk. Diskusijā bieži dzimuši jaunas idejas un projekti!

Otro dienu es pārskatīju filmu "New Spiderman" un vienā posmā Peter Parker attālināti atveras un aizver durvis no viņa klēpjdatora. Tiklīdz es to redzēju, es uzreiz sapratu, ka man ir nepieciešama tik elektroniska atslēga uz durvīm.

Paturot mazliet, es pulcēju derīgu viedās pils modeli. Šajā rakstā es jums saku, kā es viņu savācu.

1. solis: materiālu saraksts





Lai apkopotu elektronisko slēdzeni Arduino, jums būs nepieciešami šādi materiāli:

Elektronika:

  • 5V sienas adapteris

Sastāvdaļas:

  • 6 skrūves uz spinletes
  • kartons
  • vadi

Instrumenti:

  • lodāmurs
  • līmes pistole
  • urbt
  • urbt
  • urbt vadošajam caurumam
  • kancelejas nazis
  • dators ar Arduino IDE

2. solis: kā pils darbojas

Ideja ir tā, ka es varu atvērt vai aizvērt durvis bez atslēgas, un pat neiesaistot to. Bet tā ir tikai galvenā ideja, jo jūs joprojām varat pievienot detonācijas sensoru, lai tas reaģētu uz īpašu klauvētu, vai arī varat pievienot balss atpazīšanas sistēmu!

Servo svira savienots ar Scorelet aizvērt to (0 °) un atvērts (60 °), izmantojot komandas, kas iegūtas, izmantojot Bluetooth moduli.

3. solis: stiepļu uzstādīšanas shēma


Let's vispirms savienot servo uz Arduino valdes (es vēlos atzīmēt, ka, lai gan es izmantoju Arduino Nano maksu, Uno valdē, secinājumu atrašanās vieta ir tieši tāda pati).

  • brūna stieples servo - iezemēšana, savienojiet to ar ARDUINO
  • red Wire - Plus, pievienojiet to ar 5B savienotāju Arduino
  • orange stieple - izeja no avota SERVO, savienot to ar 9. secinājumu par Arduino

Es ieteiktu jums pārbaudīt operāciju SERVO, pirms turpināt montāžu. Lai to izdarītu, Arduino IDE programmā piemēros izvēlieties slaucīšanu. Pārliecinieties, ka SERVO darbojas, mēs varam savienot Bluetooth moduli. Jums ir nepieciešams savienot Bluetooth moduļa Rx izeju ar TX izejas Arduino un moduļa TX izeju ar RX izejas Arduino. Bet to nedariet vēl! Kad šie savienojumi tiek lodēti, jūs vairs nevarēsiet lejupielādēt visus kodus Arduino, lai jūs vispirms lejupielādētu visus savus kodus un tikai pēc šī lodēšanas savienojumu.

Šeit ir moduļa un mikrokontrolleru savienojumu shēma:

  • Rx modulis - TX Arduino dēļi
  • TX modulis - Rx dēļi
  • VCC (pozitīvs izejas) modulis - 3.3V Arduino dēļi
  • Zeme savienojas ar zemi (zemes zeme)

Ja paskaidrojums jums šķiet nesaprotams, sekojiet shēmai stieples savienojumiem.

4. solis: testēšana

Tagad, kad mums ir visas darbības daļas, pārliecinieties, ka Servo var pārvietot Scorelet. Pirms uzstādīšanas vērtēšanas uz durvīm es pulcēju izmēģinājuma paraugu, lai pārliecinātos, ka servo ir diezgan spēcīgs. Sākumā man šķiet, ka mans servo bija vājš, un es pievienoju eļļas pilienu skarlatē, pēc tam viņš strādāja labi. Ir ļoti svarīgi, lai mehānisms slīd labi, pretējā gadījumā jūs riskējat bloķēt jūsu istabā.

5. solis: korpuss elektrokompānijām



Es nolēmu ievietot kontrolieri tikai gadījumā, un Bluetooth modulis, un servo paliek ārpusē. Lai to izdarītu, uz kartona gabala, mēs piegādājam Arduino nano ķēdes ķēdi un pievieno 1 cm telpu ap perimetru un izgriezt. Pēc tam mēs arī izgriezām piecas ķermeņa puses. Priekšējā sienā būs nepieciešams samazināt caurumu caurumu kontroliera strāvas vadam.

Lietas lielumi:

  • Apakšā - 7,5х4 cm
  • Cover - 7,5x4 cm
  • Pa kreisi sānu siena - 7.5x4 cm
  • Labā siena siena - 7,5x4 cm
  • Priekšējā siena - 4x4 cm (ar strāvas vadu slotu)
  • Aizmugures siena - 4x4 cm

6. solis: Pielikums

Lai kontrolētu kontrolieri, jums ir nepieciešams sīkrīks Android vai Windows ar iebūvētu Bluetooth. Man nebija iespēju pārbaudīt lietojumprogrammas darbību Apple ierīcēs, varbūt jums ir nepieciešami daži vadītāji.

Esmu pārliecināts, ka daži no jums ir iespēja to pārbaudīt. Android lejupielādei Bluetooth termināla programma, lejupielādējiet Teraterm Windows. Tad modulis ir nepieciešams, lai savienotu moduli viedtālrunim, nosaukumam jābūt Linvor, parole - 0000 vai 1234. Kad pārī savienojums ir iestatīts, atveriet instalēto programmu, ievadiet opciju un izvēlieties "Instalējiet savienojumu (nedrošu)". Tagad jūsu viedtālrunis ir Arduino sērijas interfeisa monitors, tas ir, jūs varat apmainīties ar datiem ar kontrolieri.

Ja ievadāt 0, durvis tiks aizvērtas, un viedtālruņa ekrānā būs ziņojums "Durvis ir aizvērtas".
Ja ievadāt 1, jūs redzēsiet, kā durvis atveras, un uz ekrāna būs ziņojums "durvis ir atvērtas."
Uz logiem process ir tāds pats, izņemot to, ka jums ir jāinstalē Teraterm lietojumprogramma.

7. solis: Scorelet intim


Vispirms jums ir nepieciešams savienot spiting servo disku. Lai to izdarītu, sagrieziet kontaktdakšas no piedziņas korpusa montāžas caurumiem. Ja mēs ievietojam servo disku, montāžas caurumi ir jāaizver ar satricinājumu. Tad jums ir nepieciešams ievietot servo sviru spinletes slotā, kur bija spinletes rokturis. Pārbaudiet, kā slēdzene iet šajā gadījumā. Ja viss ir labi, nostipriniet servo sviru ar līmi.

Tagad jums ir nepieciešams urbt durvju vadotnes skrūvēm. Lai to izdarītu, pievienojiet durvīm un zīmuli, atzīmējiet durvju cauruma durvis zem skrūvēm. Urbt novērotās cauruma vietās zem skrūvēm apmēram 2,5 cm dziļumā. Uzklājiet rādītājus un nostipriniet to ar skrūvēm. Pārbaudiet servo darbību vēlreiz.

8. solis: Uzturs


Lai pabeigtu ierīci, jums būs nepieciešams strāvas avots, vads un mini-USB spraudnis, lai izveidotu savienojumu ar Arduino.
Pievienojiet barošanas avota jaudu ar USB mini ostas Zemes izeju, pievienojiet sarkano vadu ar USB mini ostas sarkano vadu, pēc tam stiepiet vadu no bloķēšanas līdz durvju cilpai un stiept to no tā uz vietu.

9. solis: kods

#include servo myservo; int poz \u003d 0; intelements; int karogs \u003d 0; tukša uzstādīšana () (MyServo.attach (9); Serial.Begin (9600); myservo.write (60); kavēšanās (1000);) tukša cilpa (ja (serial.available ()\u003e 0) (valsts \u003d valsts \u003d Serial.Read (); karogs \u003d 0;) // Ja valsts ir "0", DC motors izslēgsies, ja (valsts \u003d\u003d "0") (myservo.write (8); kavēšanās (1000); sērijas. Println ("durvju bloķēšana"), citur, ja (valsts \u003d\u003d "1") (myservo.write (55); kavēšanās (1000); Serial.println ("durvju atbloķēšana");));))

10. solis: Pilnīga pils Pamatojoties uz Arduino

Izbaudiet savu pili ar tālvadības pulti un neaizmirstiet "nejauši", lai bloķētu draugus telpā.

Šis projekts ir modulārs, i.e. Varat savienot / atspējot dažādus priekšmetus un iegūt citu funkcionalitāti. Iepriekš attēli parāda iespēju ar pilnu funkcionalitāti, proti:

  • Bloķēšanas mehānisms. Izmanto, lai atvērtu un aizvērtu durvis. Šis projekts apspriež trīs dažādu mehānismu izmantošanu:
    • Servo. Ir liels, ir mazs. Ļoti kompakts un kopā ar smagu apvalku - lielisku iespēju
    • Pils elektriskā piedziņa auto durvīm. Liela un spēcīga lieta, bet ēd tikai crazy straumes
    • Solenoīda līdaka. Laba iespējajo tas slams pats

    Programmaparatūras iestatījumos varat izvēlēties kādu no trim veidiem (iestatījums) lock_Type)

  • Poga iekšā. Tas kalpo, lai atvērtu un aizvērtu durvis no iekšpuses. Var novietot uz durvju roktura (no plaukstas vai no pirkstu sāniem), uz pašas durvīm vai uz ievārījuma
  • Poga ārpusē. Tas kalpo, lai aizvērtu durvis, kā arī pamodinātu enerģijas taupīšanu. Var novietot uz durvju roktura (no plaukstas vai no pirkstu sāniem), uz pašas durvīm vai uz ievārījuma
  • Konteksts uz durvju slēgšanas. Izmanto, lai automātiski aizvērtu slēdzeni, aizverot durvis. Tie var būt:
    • Pulksteņa poga
    • Hall sensors + magnēts uz pašas durvīm
    • Gercon + Magnet uz pašas durvīm
  • Noslēpums piekļuves atiestatīšanas poga. Izmanto, lai atiestatītu paroli / ievadīt jaunu paroli / jauna atslēgas / kombinācijas iegaumēšanu utt. Var paslēpt kaut kur šajā gadījumā
  • Gaismas diode Lai norādītu darbu. RGB LED, lietotas sarkanas un zaļas krāsas (ja jauktā ir dzeltena):
    • Gorīta zaļš - pils ir atvērta. Gorbs neaizmirst aizvērt durvis
    • Dzeltens ir dedzināšana - sistēma pamodās un sagaida paroles ievadi
    • Mirgo sarkans - apsēdās akumulatoru

Jebkuru no šiem elementiem var izslēgt no sistēmas:

  • Mēs noņemam neskaidrības. Uzstādījumu programmaparatūrā arī izslēdziet to (iestatījums) aste_button.). Tagad, lai aizvērtu slēdzeni, jums ir nepieciešams nospiest pogu.
  • Mēs noņemam āra pogu. Uzstādījumu programmaparatūrā arī izslēdziet to (iestatījums) wake_button.). Tagad sistēmai nav nepieciešams pamosties, tas pamostas pati (enerģijas patēriņš ir nedaudz lielāks). Un arī mums tagad nav pogas, lai aizvērtu priekšējām durvīm, un jums ir nepieciešama neskaidrība. Vai nu pils - atzīmēta
  • Mēs noņemam iekšējo pogu. Šī opcija ir piemērota skapjiem un seifiem. Jums nav nepieciešams kaut ko mainīt iestatījumos
  • Mēs noņemam LED. Jums nav nepieciešams kaut ko mainīt iestatījumos
  • Piekļuves atiestatīšanas pogu var izzust pēc pirmās lietošanas vai pārrakstīt kodu pats
  • Durvis ir aizvērtas, noklikšķinot uz ārpuses - pamosties, pagaidiet paroli ievadi / RFID etiķeti / elektronisko atslēgu / pirkstu nospiedumu
  • Durvis ir aizvērtas, sistēma pamodās, gaidot paroli. Laiku var konfigurēt (iestatījums miega laiks.)
  • Durvis ir aizvērtas, tiek ievadīta parole / etiķete / atslēga utt. - Atvērts
  • Durvis ir aizvērtas, nospiestā iekšā - atvērta
  • Durvis ir atvērtas, noklikšķina no ārpuses - Aizvērt
  • Durvis ir atvērtas, nospiestas iekšpusē - tuvu
  • Durvis ir atvērtas, nospiestas - Aizvērt

Lock nodrošina akumulatora darbību zema enerģijas taupīšanas režīmā (iespējot atspējot: iestatīšana gulēt), proti:

  • Pamodoties ik pēc dažām sekundēm, sekojiet notikumam (pēc izvēles opcija, ja nav pogas ārpusē. Jūs varat iespējot iestatījumā wake_button.)
  • Ik pēc pāris minūtēm, lai uzraudzītu Akum spriegumu (ieslēgšanas / izslēgšanas iestatījumu akumulators_monitor)
  • Ja Akum ir izlādējies (spriegums ir iestatīts iestatījumā bat_low.):
    • atvērtās durvis (pēc izvēles, var konfigurēt programmaparatūrā open_bat_low.)
    • aizliegt turpmāku atvēršanu un aizvēršanu
    • noklikšķinot uz pogām, lai zibspluatētu sarkanu LED
    • pārtraukt skatīties notikumu (I.E. parole / etiķete utt.)

Kad sistēma nav gulēt, nospiediet Password Shift pogu (slēptās pogas). Atrast B. paroles maiņas režīms:
Mēs ievadām paroli no cipariem ( Maksimāli 10 cipari !!!)

  • Noklikšķinot uz * Parole tiek ierakstīta atmiņā, un sistēma nāk no paroles maiņas
  • Noklikšķinot uz paroles, tiek atiestatīts (jūs varat ievadīt vēlreiz)
  • Ja jūs neizslēdzat visu 10 sekundes, automātiski atstājiet paroles maiņas režīmu, parole paliks veca

Kad sistēma nav gulēt (es pamodos pogas vai miega režīms), noklikšķiniet uz *, lai ievadītu paroli ieraksta režīmu
Ja sistēma guļ un periodiski pamostas, lai pārbaudītu notikumu, tad nospiediet * un turiet, līdz sarkanais LED iedegas
Paroles ievadīšanas režīms:

  • Paroles apstrāde tiek veikta tādā veidā, ka pareizā parole tiek skaitīta tikai tad, ja iestatīts uz pareizu skaitļu secību, tas ir, ja parole ir 345, tad jebkurus numurus var ievadīt, līdz parādās secība 345, i.e. 30984570345 atvērs slēdzeni, jo tas beidzas līdz 345.
  • Ja parole tiek ievadīta pareizi, durvis tiks atvērtas
  • Ja pēc 10 sekundēm neizslēdzat kaut ko, sistēma atgriezīsies parastajā (nodokļa) režīmā
  • Ja noklikšķināsiet uz # #, nekavējoties iznāciet no paroles ieraksta režīma
  • Ja nospiežat slepenās paroles maiņas pogu paroles ievades režīmā, tad jūs nākat no tā

Arduino ir labākā sistēma Kopēt jebkuru aprīkojumu. Lielākā daļa ideju nevarētu piepildīties bez viņas. Uz ilgu laiku ir tik doma: izveidojiet īpašu kodu atslēgu uz Arduino. Lai to atvērtu, ir nepieciešams pievienot konkrētu atslēgu. Šādā gadījumā atslēga nedrīkst atvērt, pat ja jūs zināt vēlamo pogu. Lai to atvērtu, ir nepieciešams izturēt noteiktus intervālus, izmantojot muskuļu atmiņu. Šāds noziedznieks nevarēs izdarīt. Bet tas ir viss teorija.

Lai to savāktu, jums ir jāizmanto taisnstūra impulsu īpašā ierīce, kā arī vairāki metri un kaudze. Bet gatavajai ierīcei būtu liels izmēri Un to nevarēja izmantot. Kā likums, šādas domas nedod atpūtu. Pirmais sapņa iemiesojums bija programmas izveide arduino. Tā ir viņa, kas kalpos kā koda atslēga. Lai to atvērtu, jums būs nepieciešams nospiest ne vienu taustiņu, bet maz, un darīt to vienlaicīgi. Pabeigta shēma Tas izskatās:

Attēla kvalitāte nav labākā, bet savienojums tiek veikts uz zemes, D3, D5, D7, D9 un D11.

Kods ir norādīts zemāk:

Const int ina \u003d 3; Const int in inb \u003d 5; Const int inc \u003d 9; Const int edpin \u003d 13; int i \u003d 1000; Baits a \u003d 0; Baits b \u003d 0; Baits c \u003d 0; Baits d \u003d 0; neparakstīts ilgs laiks \u003d 0; // Neaizmirstiet visu, kas ņem vērtību milis () neparakstītu garu temp \u003d 0; // Uzglabāt neparakstītā garā baitu Keya \u003d (0, 0, 0, 0, 0, 0, 0, 0); // kodi faktiski baitu keyb \u003d (1, 1, 1, 1, 0, 1, 0, 0); Baitu keyc \u003d (1, 0, 1, 0, 1, 1, 1, 0); Baits k \u003d 0; Void Setup () (Pinmode (INA, INPONET_PULLUP); // 3 ieejas, kas savienotas ar pinmodes pogām (INB, INPUT_PULLUP); pinmode (Inc, Input_pullup); Pinmode (Ledpin, izvade); // iebūvēts LED 13.vietā Priedes pinmode (7, izeja); pinmode (11, izvade); digitalwrite (7, zems); // Nomainiet Zemes digitālo atslēgu (11, zemu); Laiks \u003d Millis (); // Nepieciešams atskaites laiks) void blintwice ( ) (// dubultā mirgo digitālā atslēgta (LEDPIN, augsts); aizkavēšanās (100); digitalwrite (Ledpin, zems); aizkavēšanās (100); Digitalwrite (Ledpin, augsts); aizkavēšanās (100); Digitalwrite (Ledpin, zems); Kavēšanās (200);) tukša cilpa () (ja (k \u003d\u003d 0) (blinktwice (); // ielūgums Ievadiet kodu), ja (k \u003d\u003d 8) (digitālaiswrite (Ledpin, augsts); kavēšanās (3000); k \u003d 0;) a \u003d digitalead (INA); // signāla līmeņi tiek nolasīti no pogām - nospiests / nav nospiests b \u003d digitallread (INB); C \u003d digitalread (Inc); kavēšanās (100); // nākamā, ja - aizsardzība pret viltus pozitīviem, jūs nevarat izmantot, ja (((digitallread (INA) \u003d\u003d a) && (digitalream (INB) \u003d\u003d B) && (digitalread (Inc) \u003d\u003d c)) (ja (a \u003d\u003d Keya [k] ) (Ja (b \u003d\u003d keyb [k]) (ja (c \u003d\u003d keyc [k]) (K ++; )))) ja (k \u003d\u003d 1) (ja (d \u003d\u003d 0) (laiks \u003d milis (); d ++;) temperatūra \u003d milis (); Temp \u003d temp - laiks; ja (temp\u003e 10000) (k \u003d 0; d \u003d 0; laiks \u003d milis ();))

Lai nebūtu nekādu papildu jautājumu par kodu, daži mirkļi ir jāizskaidro. Iestatīšanas funkcija tiek izmantota, lai piešķirtu ostas. Šāda funkcija ir ieeja_pullup, kas ir nepieciešams, lai palielinātu spriegumu priedes ar 5 V. Tas tiek veikts, izmantojot rezistoru. Tas, ņemot vērā to, dažādas īssavienojumu nenotiks. Lai iegūtu lielāku ērtības, ieteicams izmantot BlinkTwice funkciju. Kopumā, veidojot dažādas programmas, jums ir jāizmēģina citas funkcijas.

Pēc funkciju piešķiršanas signāls tiek nolasīts no ostām. Ja poga ir nospiesta, tas tiks apzīmēts ar numuru 1, un, ja ne - 2. Tālāk, ir analīze par visām vērtībām. Piemēram, šāda kombinācija parādījās kā 0,1.1. Tas nozīmē, ka pirmais taustiņš ir nospiests, un atlikušie divi nav. Ja visas vērtības tiek izpildītas pareizi, 8. nosacījums ir arī taisnība. To apliecina Aplised LED uz priekšējā paneļa. Tālāk jums ir jāievada konkrēts kods, kas kalpos, lai atvērtu durvis.

Jaunākie kodu elementi tiek izmantoti, lai nomestu skaitītāju vērtības. Šī funkcija tiek veikta, ja pēc pēdējās taustiņus pagājis vairāk nekā 10 sekundes. Bez šī koda, tas bija iespējams iet caur visu iespējamās iespējasLai gan ir pietiekami daudz no tiem. Pēc šīs ierīces izveides ir nepieciešams to pārbaudīt. Vēl

mob_info.