Elektroniskā slēdzene ar Arduino karti. Arduino koda atslēga

Kādu dienu es skatījos Apbrīnojamo zirnekļcilvēku, un vienā ainā Pīters Pārkers attālināti atver un aizver durvis no sava klēpjdatora. Tiklīdz šo ieraudzīju, uzreiz sapratu, ka man vajag arī tādu elektronisko slēdzeni manām ārdurvīm.

Pēc nelielas pamošanās es saliku pašreizējais modelis viedā atslēga. Šajā rakstā es jums pastāstīšu, kā es to saliku.

1. darbība: materiālu saraksts





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

Elektronika:

  • 5V sienas adapteris

Sastāvdaļas:

  • 6 fiksatora skrūves
  • kartons
  • vadi

Rīki:

  • lodāmurs
  • līmes pistole
  • urbt
  • urbt
  • piloturbumu urbis
  • kancelejas nazis
  • dators ar Arduino IDE programmu

2. darbība. Kā darbojas slēdzene

Ideja ir tāda, ka es varu atvērt vai aizvērt durvis bez atslēgas un pat netuvojoties tām. Bet tā ir tikai pamatideja, jo var pievienot arī klauvējienu sensoru, lai tas reaģētu uz speciālu sitienu, vai arī var pievienot balss atpazīšanas sistēmu!

Servo svira, kas savienota ar skrūvi, to aizvērs (0°) un atvērs (60°), izmantojot komandas, kas saņemtas, izmantojot Bluetooth moduli.

3. darbība: elektroinstalācijas shēma


Vispirms savienosim servo ar Arduino plati (ņemiet vērā, ka, lai gan es izmantoju Arduino Nano plati, Uno platei ir tieši tāds pats kontakts).

  • Servo brūnais vads ir iezemēts, mēs to savienojam ar zemi Arduino
  • sarkanais vads ir plus, mēs to savienojam ar 5V savienotāju Arduino
  • oranžais vads ir servo piedziņas avota tapa, pievienojiet to Arduino kontaktam 9

Pirms montāžas iesaku pārbaudīt servo darbību. Lai to izdarītu, Arduino IDE programmā piemēros atlasiet Sweep. Pārliecinoties, ka servo darbojas, varam pieslēgt Bluetooth moduli. Jums ir jāpievieno Bluetooth moduļa rx tapa ar Arduino tx tapu un moduļa tx tapa ar Arduino rx tapu. Bet vēl nedariet to! Kad šie savienojumi ir pielodēti, jūs nevarēsit augšupielādēt nevienu kodu Arduino, tāpēc vispirms lejupielādējiet visus savus kodus un tikai pēc tam lodējiet savienojumus.

Šeit ir savienojuma shēma starp moduli un mikrokontrolleri:

  • Rx modulis - Tx plate Arduino
  • Tx modulis – Rx plate
  • Moduļa Vcc (pozitīvais terminālis) ir 3,3 v no Arduino plates
  • Zemējums ir savienots ar zemējumu (zemējums ar zemējumu)

Ja skaidrojums jums šķiet neskaidrs, lūdzu, ievērojiet pievienoto elektroinstalācijas shēmu.

4. darbība: pārbaudiet

Tagad, kad mums ir visas darba daļas, pārliecināsimies, ka servo var pārvietot fiksatoru. Pirms fiksatora uzstādīšanas uz durvīm es saliku testa paraugu, lai pārliecinātos, ka servo ir pietiekami jaudīgs. Sākumā man likās, ka mans servo ir vājš, un es pievienoju fiksatoram eļļas pilienu, pēc tam tas strādāja labi. Ir ļoti svarīgi, lai mehānisms labi slīdētu, pretējā gadījumā jūs riskējat tikt aizslēgts savā istabā.

5. solis: elektriskais korpuss



Nolēmu korpusā likt tikai kontrolieri un Bluetooth moduli un servo atstāt ārā. Lai to izdarītu, uz kartona gabala uzzīmējiet Arduino Nano dēļa kontūru un pievienojiet 1 cm atstarpi pa perimetru un izgrieziet to. Pēc tam mēs arī izgriezām vēl piecas korpusa puses. Priekšējā sienā jums būs jāizgriež caurums kontrollera strāvas vadam.

Korpusa sānu izmēri:

  • Apakšdaļa – 7,5x4 cm
  • Vāks – 7,5x4 cm
  • Pa kreisi sānu siena– 7,5x4 cm
  • Labā sānu siena – 7,5x4 cm
  • Priekšējā siena – 4x4 cm (ar spraugu strāvas vadam)
  • Aizmugurējā siena – 4x4 cm

6. darbība: pieteikšanās

Lai vadītu kontrolieri, nepieciešams Android vai Windows sīkrīks ar iebūvētu Bluetooth. Man nebija iespējas pārbaudīt aplikāciju Apple ierīcēs, iespējams, būs nepieciešami daži draiveri.

Esmu pārliecināts, ka dažiem no jums ir iespēja to pārbaudīt. Operētājsistēmā Android lejupielādējiet lietojumprogrammu Bluetooth Terminal, operētājsistēmai Windows lejupielādējiet TeraTerm. Pēc tam modulis ir jāpievieno viedtālrunim, nosaukumam jābūt linvor, parolei jābūt 0000 vai 1234. Kad savienošana pārī ir izveidota, atveriet instalēta lietojumprogramma, dodieties uz opcijām un atlasiet “Izveidot savienojumu (nedrošs). Tagad jūsu viedtālrunis ir Arduino sērijas interfeisa monitors, kas nozīmē, ka varat apmainīties ar datiem ar kontrolieri.

Ievadot 0, durvis tiks aizvērtas un viedtālruņa ekrānā parādīsies ziņojums “Durvis ir aizvērtas”.
Ja ievadīsiet 1, jūs redzēsiet, ka durvis ir atvērtas, un ekrānā būs redzams uzraksts "Durvis atvērtas".
Operētājsistēmā Windows process ir tāds pats, izņemot to, ka jums ir jāinstalē lietojumprogramma TeraTerm.

7. darbība: uzstādiet aizbīdni


Vispirms jums jāpievieno servo ar fiksatoru. Lai to izdarītu, no piedziņas korpusa montāžas atverēm ir jānogriež kontaktdakšas. Ja mēs noliekam servo, montāžas caurumiem jābūt vienā līmenī ar skrūvi. Pēc tam servo svira jānovieto fiksatora slotā, kur atradās fiksatora rokturis. Pārbaudiet, kā slēdzene kustas korpusā. Ja viss ir kārtībā, nostipriniet servo sviru ar līmi.

Tagad jums ir jāizurbj caurumi skrūvēm durvīs. Lai to izdarītu, piestipriniet aizbīdni pie durvīm un ar zīmuli atzīmējiet durvju vērtnes skrūvju caurumus. Atzīmētajās vietās izurbiet caurumus skrūvēm apmēram 2,5 cm dziļumā Piestipriniet aizbīdni un nostipriniet to ar skrūvēm. Vēlreiz pārbaudiet servo darbību.

8. darbība. Jauda


Lai pabeigtu ierīces izveidi, jums būs nepieciešams barošanas avots, vads un mini-usb spraudnis, lai izveidotu savienojumu ar Arduino.
Savienojiet barošanas avota zemējuma tapu ar usb miniporta zemējuma tapu, pievienojiet sarkano vadu usb miniporta sarkanajam vadam, pēc tam izstiepiet vadu no slēdzenes līdz durvju eņģes, un stiept no tā līdz izejai.

9. darbība: kods

#include Servo myservo; int poz = 0; iekšējais stāvoklis; int karodziņš=0; void setup() ( myservo.attach(9); Serial.begin(9600); myservo.write(60); delay(1000); ) void loop() ( if(Serial.available() > 0) ( status = Serial.read(); ) // ja stāvoklis ir "0", līdzstrāvas motors izslēgsies if (state == "0") ( myservo.write(8); delay(1000); Serial. println("Durvis ir aizslēgtas"); else if (state == "1") ( myservo.write(55); delay(1000); Serial.println("Durvis atbloķētas"); ) )

10. darbība: pabeigta uz Arduino balstīta bloķēšana

Izbaudiet savu tālvadības pults slēdzeni un neaizmirstiet "nejauši" ieslēgt savus draugus telpā.

Progress nestāv uz vietas, un uz dzīvokļu, garāžu un māju durvīm arvien biežāk parādās “gudrās slēdzenes”.

Līdzīga slēdzene tiek atvērta, nospiežot viedtālruņa pogu. Par laimi, viedtālruņi un planšetdatori jau ir ienākuši mūsu ikdienā. Dažos gadījumos "viedās slēdzenes" ir savienotas ar " mākoņpakalpojumi"piemēram, Google disks un atveriet to attālināti. Turklāt šī opcija ļauj citiem cilvēkiem piešķirt piekļuvi durvju atvēršanai.

Šis projekts ieviesīs Arduino viedās slēdzenes DIY versiju, kuru var attālināti vadīt no jebkuras vietas pasaulē.

Turklāt projektā ir pievienota iespēja atvērt slēdzeni pēc pirksta nospieduma identificēšanas. Šim nolūkam tiks integrēts pirkstu nospiedumu sensors. Abas durvju atvēršanas iespējas tiks darbinātas ar Adafruit IO platformu.

Šāda slēdzene 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 Arduino bibliotēka, kas ievērojami vienkāršo sensora iestatīšanas procesu. Šis projekts izmanto Arduino Uno. Lai izveidotu savienojumu ar internetu, tiek izmantota Adafruit CC3000 plate.

Sāksim ar strāvas pievienošanu:

  • Pievienojiet 5 V tapu no Arduino plates ar sarkano barošanas sliedi;
  • GND tapa no Arduino savienojas ar zilo sliedi bezlodēšanas shēmas platē.

Pāriesim pie pirkstu nospiedumu sensora pievienošanas:

  • Vispirms pievienojiet strāvu. Lai to izdarītu, sarkanais vads ir pievienots +5 V sliedei, bet melnais vads - GND sliedei;
  • Sensora baltais vads savienojas ar Arduino 4. tapu.
  • Zaļais vads iet uz mikrokontrollera 3. tapu.

Tagad pāriesim pie CC3000 moduļa:

  • Mēs savienojam IRQ tapu no CC3000 plates ar 2. tapu uz Arduino.
  • VBAT — uz 5. sprau.
  • CS — pie 10. spraudes.
  • Pēc tam jums ir jāpievieno SPI tapas ar Arduino: MOSI, MISO un CLK - attiecīgi ar tapām 11, 12 un 13.

Beigās jums ir jānodrošina strāva: Vin — Arduino 5V (sarkanā sliede uz shēmas plates) un GND uz GND (zilā sliede uz maizes plates).

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

Pirms skices izstrādes, kas ielādēs datus Adafruit IO, jums ir jāpārsūta dati par pirkstu nospiedumu uz sensoru. Pretējā gadījumā viņš tevi turpmāk neatpazīs;). Mēs iesakām kalibrēt pirkstu nospiedumu sensoru, izmantojot Arduino atsevišķi. Ja pirmo reizi strādājat ar šo sensoru, iesakām iepazīties ar kalibrēšanas procesu un detalizētām instrukcijām darbam ar pirkstu nospiedumu sensoru.

Ja vēl neesat to izdarījis, izveidojiet kontu Adafruit IO.

Pēc tam mēs varam pāriet uz nākamais posms“viedās slēdzenes” izstrāde uz Arduino: proti, skices izstrāde, kas pārsūtīs datus uz Adafruit IO. Tā kā programma ir diezgan apjomīga, šajā rakstā mēs izcelsim un apsvērsim tikai tās galvenās daļas, un pēc tam sniegsim saiti uz GitHub, kur varat lejupielādēt pilnu skici.

Skice sākas, ielādējot visas nepieciešamās bibliotēkas:

#iekļauts

#iekļauts

#iekļauts

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_CC3000.h"

#iekļauts

#iekļauts >

Pēc tam jums ir nedaudz jālabo skice, ievietojot sava WiFi tīkla parametrus, norādot SSID un paroli:

#define WLAN_SECURITY WLAN_SEC_WPA2>

Turklāt jums ir jāievada savs vārds un AIO atslēga, lai pieteiktos savā Adafruit IO kontā:

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_name"

#define AIO_KEY "adafruit_io_key">

Tālāk norādītās rindas ir atbildīgas par mijiedarbību un datu apstrādi no pirkstu nospiedumu sensora. Ja sensors tika aktivizēts (pirksta nospiedums atbilst), būs "1":

const char FINGERPRINT_FEED PROGMEM = AIO_LIETOTĀJVĀRDS "/feeds/fingerprint";

Adafruit_MQTT_Publicēt pirkstu nospiedumu = Adafruit_MQTT_Publish(&mqtt, FINGERPRINT_FEED);

Turklāt mums ir jāizveido programmatūras sērijas objekta gadījums mūsu sensoram:

SoftwareSerial mySerial(3, 4);

Pēc tam mēs varam izveidot objektu savam sensoram:

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

Skices iekšpusē mēs norādām, kuram pirksta ID turpmāk jāaktivizē bloķēšana. Šajā piemērā tiek izmantots 0, kas atbilst pirmā sensora izmantotā pirksta nospieduma ID:

int pirksta ID = 0;

Pēc tam mēs inicializējam skaitītāju un aizkavējam mūsu projektu. Būtībā mēs vēlamies, lai slēdzene automātiski nofiksētos pēc atvēršanas. Šajā piemērā tiek izmantota 10 sekunžu aizkave, taču jūs varat pielāgot šo vērtību atbilstoši savām vajadzībām.

int activationCounter = 0;

int pēdējāAktivizācija = 0;

int aktivizēšanas laiks = 10 * 1000;

Funkcijas setup() pamattekstā mēs inicializējam pirkstu nospiedumu sensoru un nodrošinām, ka CC3000 mikroshēma ir savienota ar jūsu WiFi tīklu.

Funkcijas Loop() pamattekstā mēs savienojam ar Adafruit IO. Par to ir atbildīga šāda līnija:

Pēc savienojuma izveides ar Adafruit IO platformu mēs pārbaudām pēdējo pirkstu nospiedumu. Ja tas atbilst un bloķēšana nav aktivizēta, mēs nosūtām "1" uz Adafruit IO apstrādei:

if (pirksta nospieduma ID == pirksta ID && bloķēšanas stāvoklis == nepatiess) (

Serial.println(F("Piekļuve piešķirta!"));

lockState = patiess;

Serial.println(F("Neizdevās"));

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

lastActivation = millis();

Ja funkcijā loop() bloķēšana ir aktivizēta un esam sasnieguši iepriekš norādīto aizkaves vērtību, mēs nosūtām “0”:

if ((activationCounter - lastActivation > activationTime) && lockState == true) (

lockState = false;

ja (! pirkstu nospiedums.publicēt(state)) (

Serial.println(F("Neizdevās"));

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

Jaunāko koda versiju varat lejupielādēt vietnē GitHub.

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

Pārliecinieties, vai esat veicis visas nepieciešamās izmaiņas skicē, un augšupielādējiet to savā Arduino. Pēc tam atveriet logu Serial Monitor.

Kad Arduino izveido savienojumu ar WiFi tīkli, pirkstu nospiedumu sensors mirgos sarkanā krāsā. Novietojiet pirkstu uz sensora. ID numurs ir jāparāda sērijas monitora logā. Ja tas atbilst, parādīsies ziņojums "OK!" Tas nozīmē, ka dati ir nosūtīti uz Adafruit IO serveriem.

Diagramma un skice turpmākai slēdzenes konfigurācijai, izmantojot LED piemēru

Tagad nodarbosimies ar to projekta daļu, kas ir tieši atbildīga par pārvaldību durvju slēdzene. Lai izveidotu savienojumu ar bezvadu tīkls un aktivizējot/deaktivizējot slēdzeni, jums būs nepieciešams papildu Adafruit ESP8266 modulis (ESP8266 modulim nav jābūt no Adafruit). Izmantojot tālāk sniegto piemēru, varat novērtēt, cik viegli ir apmainīties ar datiem starp divām platformām (Arduino un ESP8266), izmantojot Adafruit IO.

Šajā sadaļā mēs nestrādāsim tieši ar slēdzeni. Tā vietā mēs vienkārši savienosim LED ar tapu, kur vēlāk tiks pievienota slēdzene. Tas dos iespēju pārbaudīt mūsu kodu, neiedziļinoties slēdzenes dizaina specifikā.

Shēma ir pavisam vienkārša: vispirms instalējiet ESP8266 uz maizes paneļa. Pēc tam uzstādiet LED. Neaizmirstiet, ka gaismas diodes garā (pozitīvā) kāja ir savienota caur rezistoru. Rezistora otrā kāja ir savienota ar ESP8266 moduļa 5. tapu. Mēs savienojam LED otro (katodu) ar ESP8266 GND tapu.

Pilnībā samontēta ķēde parādīts zemāk esošajā fotoattēlā.


Tagad apskatīsim skici, ko izmantojam šim projektam. Atkal kods ir diezgan liels un sarežģīts, tāpēc mēs apskatīsim tikai tā galvenās daļas:

Mēs sākam, savienojot nepieciešamās bibliotēkas:

#iekļauts

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_Client.h"

WiFi iestatījumu konfigurēšana:

#define WLAN_SSID "jūsu_wifi_ssid"

#define WLAN_PASS "jūsu_wifi_parole"

#define WLAN_SECURITY WLAN_SEC_WPA2

Mēs arī konfigurējam Adafruit IO parametrus. Tas pats, kas iepriekšējā sadaļā:

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_username"

#define AIO_KEY "adafruit_io_key"

Mēs norādām, pie kuras tapas mēs pievienojām LED (nākotnē tā būs mūsu slēdzene vai relejs):

int relayPin = 5;

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

const char LOCK_FEED PROGMEM = AIO_LIETOTĀJVĀRDS "/feeds/lock";

Adafruit_MQTT_Abonēšanas atslēga = Adafruit_MQTT_Abonēt(&mqtt, LOCK_FEED);

Funkcijas setup() pamattekstā mēs norādām, ka tapai, pie kuras ir pievienota gaismas diode, jādarbojas OUTPUT režīmā:

pinMode(relayPin, OUTPUT);

Ciklā loop () mēs vispirms pārbaudām, vai esam savienoti ar Adafruit IO:

Pēc tam mēs pārbaudām, kāds signāls tiek saņemts. Ja tiek pārraidīts "1", mēs aktivizējam iepriekš norādīto tapu, kurai ir pievienota mūsu gaismas diode. Ja mēs saņemam "0", mēs pārsūtām kontaktu uz "zemo" stāvokli:

Adafruit_MQTT_Abonēt *abonements;

while ((abonements = mqtt.readSubscription(1000))) (

if (abonements == &lock) (

Serial.print(F("Got: "));

Serial.println((char *)lock.lastread);

// Saglabājiet komandu virknes datos

String komanda = String((char *)lock.lastread);

if (komanda == "0") (

digitalWrite(relayPin, LOW);

if (komanda == "1") (

digitalWrite(relayPin, HIGH);

Atrast jaunākā versija Skici varat atrast vietnē GitHub.

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

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

Augšupielādējiet skici Arduino un atveriet logu Serial Monitor. Ieslēgts šajā posmā mēs tikko pārbaudījām, vai varējām izveidot savienojumu ar Adafruit IO: mēs apskatīsim pieejamo funkcionalitāti tālāk.

Projekta testēšana

Tagad sāksim testēšanu! Pārejiet uz sava Adafruit IO lietotāja izvēlni izvēlnē Plūsmas. Pārbaudiet, vai ir izveidoti pirkstu nospiedumu un bloķēšanas kanāli (zem drukas ekrāna ir pirkstu nospiedumu un bloķēšanas līnijas):


Ja tie neeksistē, jums tie būs jāizveido manuāli.

Tagad mums ir jānodrošina datu apmaiņa starp pirkstu nospiedumu un bloķēšanas kanāliem. Bloķēšanas kanālam ir jāpieņem vērtība “1”, kad pirkstu nospiedumu kanālam ir vērtība “1” un otrādi.

Lai to izdarītu, mēs izmantojam ļoti jaudīgu Adafruit IO rīku: trigerus. Aktivizētāji būtībā ir nosacījumi, kurus varat lietot konfigurētiem kanāliem. Tas ir, tos var izmantot, lai savienotu divus kanālus.

Izveidojiet jaunu reaktīvo aktivizētāju no Adafruit IO sadaļas Trigeri. Tas nodrošinās iespēju apmainīties ar datiem starp pirkstu nospiedumu sensoru un bloķēšanas kanāliem:


Šādi tam vajadzētu izskatīties, kad ir konfigurēti abi aktivizētāji:

Visi! Tagad mēs faktiski varam pārbaudīt mūsu projektu! Mēs uzliekam pirkstu uz sensora un redzam, kā Arduino sāka mirgot ar LED, kas atbilst datu pārraidei. Pēc tam ESP8266 moduļa LED jāsāk mirgot. Tas nozīmē, ka tas ir sācis saņemt datus, izmantojot MQTT. Šajā brīdī jāieslēdzas arī shēmas plates gaismas diodei.

Pēc skicē iestatītās aizkaves (noklusējuma vērtība ir 10 sekundes) gaismas diode nodzisīs. Apsveicam! Jūs varat vadīt LED ar pirkstu nospiedumu no jebkuras vietas pasaulē!

Elektroniskās slēdzenes uzstādīšana

Mēs esam sasnieguši pēdējo projekta daļu: elektroniskās slēdzenes tieša savienošana un kontrole, izmantojot Arduino un pirkstu nospiedumu sensoru. Projekts nav viegls, jūs varat izmantot visus avotus tādā formā, kādā tie ir parādīti iepriekš, bet pievienojiet releju, nevis LED.

Lai tieši savienotu slēdzeni, jums būs nepieciešami papildu komponenti: 12 V barošanas avots, ligzda strāvas pievienošanai, tranzistors (V šajā piemērā Tiek izmantots IRLB8721PbF MOSFET, bet var izmantot citu, piemēram, TIP102 bipolāru tranzistoru. Ja izmantojat bipolāru tranzistoru, jums būs jāpievieno rezistors.

Parādīts zemāk elektriskā shēma visu komponentu pievienošana ESP8266 modulim:


Ņemiet vērā, ka, ja izmantojat MOSFET tranzistoru, jums nav nepieciešams rezistors starp ESP8266 moduļa 5. tapu un tranzistoru.

Pilnībā samontēts projekts ir parādīts zemāk esošajā fotoattēlā:


Ieslēdziet ESP8266 moduli, izmantojot FTDI moduli, un pievienojiet 12 V barošanas avotu ligzdai. Ja savienošanai izmantojāt iepriekš ieteiktās tapas, skicē nekas nav jāmaina.

Tagad varat uzlikt pirkstu uz sensora: slēdzenei jādarbojas, reaģējot uz jūsu pirksta nospiedumu. Tālāk esošajā videoklipā parādīts automātiskās viedās bloķēšanas projekts darbībā:

Smart Lock projekta tālāka attīstība

Mūsu projekts ir izlaidis durvju slēdzenes tālvadības pulti, izmantojot pirkstu nospiedumu.

Jūtieties brīvi eksperimentēt, modificēt skici un iesējumu. Piemēram, jūs varat nomainīt elektronisko durvju slēdzeni ar releju, lai kontrolētu sava 3D printera, robota rokas vai kvadrokoptera jaudu...

Jūs varat attīstīt savu viedā māja". Piemēram, attālināti aktivizējiet apūdeņošanas sistēmu Arduino vai ieslēdziet apgaismojumu telpā... Neaizmirstiet, ka vienlaikus varat aktivizēt gandrīz neierobežotu skaitu ierīču, izmantojot Adafruit IO.

Atstājiet savus komentārus, jautājumus un dalieties personīgā pieredze zemāk. Diskusijās bieži dzimst jaunas idejas un projekti!

Šajā rakstā es jums pastāstīšu, kā no Arduino izveidot kombinēto slēdzeni. Šim nolūkam mums ir vajadzīgas sarkanas un zaļas gaismas diodes, skaņas signāls, Arduino nano, LCD displejs ar I2C pārveidotāju, servo piedziņa un 4x4 matricas tastatūra. Kad tas ir ieslēgts, displejs uzrakstīs "Ievadiet kodu".

iedegsies sarkanā gaismas diode,

un zaļā gaisma nodzisīs, servo tiks iestatīts uz 0°. Ievadot ciparus, displejā iedegsies *.

Ja kods ir ievadīts nepareizi, displejā tiks parādīts uzraksts “Ievadiet kodu”. Ja kods ir pareizs, atskanēs pīkstiens, servo pagriezīsies par 180° un displejā būs redzams uzraksts "Open".

iedegsies zaļā gaismas diode,

un sarkanais izslēgsies. Pēc 3 sekundēm servo atgriezīsies sākotnējā pozīcijā, ieslēgsies sarkanā gaismas diode un zaļā gaismas diode nodzisīs, displejā tiks rakstīts “Close”.

tad displejs uzrakstīs "Ievadiet kodu". Tagad par shēmu. Pirmkārt, mēs savienojam Arduino ar vadiem ar maizes dēli (barošanas kontaktiem).

Tad mēs savienojam matricas tastatūru ar kontaktiem D9 - D2.

Tad servo. Mēs savienojam to ar tapu 10.

Sarkanā gaismas diode uz kontaktu 11.

Zaļš — uz 12. sprau.

Signāls — uz 13. sprau.

Tagad augšupielādējiet skici.

#iekļauts #iekļauts #iekļauts #iekļauts iarduino_KB KB(9, 8, 7, 6, 5, 4, 3, 2); LiquidCrystal_I2C lcd(0x27, 16, 2); Servo servo; int pass = (3, 6, 1, 8); int in; int r = 11; int g = 12; void setup() ( KB.begin(KB1); pinMode(r, OUTPUT); pinMode(g, OUTPUT); lcd.init(); lcd.backlight(); digitalWrite(g, LOW); digitalWrite(r, HIGH ; servo.attach(10); ( aizkave(1); ) in = lcd.setCursor(0, 0) ( aizkave(1); ) in = KB.getNum (!KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.print("*" while (!KB.check(KEY_DOWN)) ( aizkave(1); ) in = KB.getNum("*"); if (in == pass) ( if (in == pass) ( if (in == pass) ( if (in == pass) ( lcd.clear(); lcd.setCursor (0, 0) lcd.print("Atvērt."); ."); tonis (13, 300, 700); digitalWrite (g, LOW); aizkave (1000);

) ) ) )

Tas arī viss. Izbaudi kombinēto slēdzeni!

Radioelementu saraksts Apzīmējums Tips Denominācija DaudzumsPiezīmeVeikals
Mans piezīmju bloks E1

Arduino dēlis

1 Arduino Nano 3.0 5V
Uz piezīmju grāmatiņu E8, E9

Rezistors

2 220 omi 5V
SMD E6

LED

1 AL102G 5V
Sarkans E6

E7

1 AL307G 5V
Zaļš E3LCD displejs1 Ar I2C interfeisu 5V
Zaļš fona apgaismojums E5Servo1 SG90 5V
180 grādi E2Arduino Nano 3.01 Zummers 5V
Bu E4Tastatūra1 4x4 5V
Matrica Maizes dēlis1 640 punkti
Tā nu sagadījās, ka darbā nolēmām savām durvīm uzstādīt kombinēto slēdzeni, jo nemitīgi ieskrienam iekšā - izskrienam no biroja, kura durvis iemītnieku prombūtnes laikā pastāvīgi jāslēdz. Atslēgas bieži tiek aizmirstas iekšā. Kopumā mēs nolēmām, ka kombinācijas atslēga ir lielisks risinājums.

Rakņājoties pa Ķīnas krāmu tirgiem un ebay, neko lētu un vairāk vai mazāk nopietnu neatradu un nolēmu uztaisīt pats. Uzreiz teikšu, ka Arduino platforma tika izvēlēta tās vienkāršības dēļ, jo man vispār nebija pieredzes ar mikrokontrolleriem.

Ideja

Uz durvīm ar ārpusē durvīm jābūt tastatūrai, uz kuras tiek ievadīta parole, ar iekšā pārējā struktūra ir fiksēta. Lai kontrolētu pilnīgu durvju aizvēršanu, tiek izmantots niedru slēdzis. Izejot no biroja, cilvēks nospiež “*” uz tastatūras un, negaidot, kamēr durvis aizvērsies, dodas savās darīšanās, kad durvis būs pilnībā aizvērtas, aizvērsies niedres slēdzis un aizveras slēdzene. . Durvis atveras, ievadot 4 ciparu paroli un nospiežot “#”.

Piederumi

Arduino UNO = 18 USD
Arduino protoshield + maizes dēlis = 6 USD
L293D = 1 ASV dolārs
Bradboard vadu komplekts 30 gab. = 4 ASV dolāri
2 RJ45 ligzdas = 4 ASV dolāri
2 RJ45 spraudņi = 0,5 USD
centrālās atslēgas izpildmehānisms = 250 rub.
Niedru slēdzis = brīvi norauts no vecā loga.
Milzīgs metāla aizbīdnis = brīvs
Korpuss no vecas D-LINK rumbas, kas izgatavots no pusotra milimetra dzelzs = bez maksas
Barošanas avots no tā paša D-LINK centrmezgla 12 un 5 V = arī bez maksas
Skrūvju un uzgriežņu ķekars visu šo lietu piestiprināšanai pie korpusa = 100 rubļi.
Tālvadības pults no apsardzes signalizācija= bezmaksas.

Kopā: 33,5 USD un 350 rubļi.

Ne tik maz, teiksiet, un jums noteikti būs taisnība, bet par prieku ir jāmaksā! Un vienmēr ir patīkami kaut ko salikt ar savām rokām. Turklāt dizaina izmaksas var ievērojami samazināties, ja izmantojat tukšu MK bez Arduino.

Sagatavošanās montāžai

Es gribētu teikt dažus vārdus par izpildmehānisma dizaina galvenā elementa iegādi. Vietējais auto veikals man piedāvāja divu veidu izpildmehānismus: “ar diviem vadiem un ar pieciem”. Pēc pārdevējas teiktā, tie bija absolūti identiski un vadu skaita atšķirība absolūti neko nenozīmēja. Tomēr, kā vēlāk izrādījās, tas tā nav! Izvēlējos ierīci ar diviem vadiem, to baroja 12V. Piecu vadu konstrukcijai ir robežslēdži, lai kontrolētu sviras kustību. To, ka nopirku nepareizo, sapratu tikai tad, kad izjaucu un bija par vēlu to mainīt. Sviras gājiens izrādījās pārāk īss, lai pareizi ievilktu fiksatoru, tāpēc bija nepieciešams to nedaudz pārveidot, proti, noņemt divas gumijas paplāksnes, kas saīsināja izpildmehānisma sviras gājienu. Lai to izdarītu, korpuss bija jāsazāģē gareniski ar parastu metāla zāģi, jo otrā paplāksne bija iekšā. Zilā elektriskā lente, kā vienmēr, mums palīdzēja nākotnē, saliekot to atpakaļ.
Lai vadītu izpildmehānisma motoru, mēs izmantojām L293D motora draiveri, kas var izturēt maksimālo slodzi līdz 1200 mA, kad mēs apturējām izpildmehānisma motoru, maksimālā slodze palielinājās tikai līdz 600 mA.
No apsardzes signalizācijas pults tika izņemti kontakti no klaviatūras, skaļruņa un divas gaismas diodes. Tālvadības pulti un galveno ierīci vajadzēja savienot, izmantojot vītā pāra un RJ45 savienotājus

Programmēšana.

Tātad, man līdz šim nebija pieredzes Arduino programmēšanā. Es izmantoju citu cilvēku darbus un rakstus no vietnes arduino.cc. Ikviens interesents var apskatīt šo neglīto kodu :)

Foto un video



Arduino un izpildmehānisms


spēka agregāts


Tastatūra


Espagnolette (savienots ar izpildmehānismu ar metāla spieķi un pārklāts ar siltuma saraušanos skaistumam)

Video par ierīces darbības procesu:

Tā nu sagadījās, ka darbā nolēmām savām durvīm uzstādīt kombinēto slēdzeni, jo nemitīgi ieskrienam iekšā - izskrienam no biroja, kura durvis iemītnieku prombūtnes laikā pastāvīgi jāslēdz. Atslēgas bieži tiek aizmirstas iekšā. Kopumā mēs nolēmām, ka kombinācijas atslēga ir lielisks risinājums.

Rakņājoties pa Ķīnas krāmu tirgiem un ebay, neko lētu un vairāk vai mazāk nopietnu neatradu un nolēmu uztaisīt pats. Uzreiz teikšu, ka Arduino platforma tika izvēlēta tās vienkāršības dēļ, jo man vispār nebija pieredzes ar mikrokontrolleriem.

Ideja

Durvju ārpusē ir jābūt tastatūrai, uz kuras tiek ievadīta parole, un pārējai konstrukcijai jābūt fiksētai iekšpusē. Lai kontrolētu pilnīgu durvju aizvēršanu, tiek izmantots niedru slēdzis. Izejot no biroja, cilvēks nospiež “*” uz tastatūras un, negaidot, kamēr durvis aizvērsies, dodas savās darīšanās, kad durvis būs pilnībā aizvērtas, aizvērsies niedres slēdzis un aizveras slēdzene. . Durvis atveras, ievadot 4 ciparu paroli un nospiežot “#”.

Piederumi

Arduino UNO = 18 USD
Arduino protoshield + maizes dēlis = 6 USD
L293D = 1 ASV dolārs
Bradboard vadu komplekts 30 gab. = 4 ASV dolāri
2 RJ45 ligzdas = 4 ASV dolāri
2 RJ45 spraudņi = 0,5 USD
centrālās atslēgas izpildmehānisms = 250 rub.
Niedru slēdzis = brīvi norauts no vecā loga.
Milzīgs metāla aizbīdnis = brīvs
Korpuss no vecas D-LINK rumbas, kas izgatavots no pusotra milimetra dzelzs = bez maksas
Barošanas avots no tā paša D-LINK centrmezgla 12 un 5 V = arī bez maksas
Skrūvju un uzgriežņu ķekars visu šo lietu piestiprināšanai pie korpusa = 100 rubļi.
Apsardzes signalizācijas pults = bezmaksas.

Kopā: 33,5 USD un 350 rubļi.

Ne tik maz, teiksiet, un jums noteikti būs taisnība, bet par prieku ir jāmaksā! Un vienmēr ir patīkami kaut ko salikt ar savām rokām. Turklāt dizaina izmaksas var ievērojami samazināties, ja izmantojat tukšu MK bez Arduino.

Sagatavošanās montāžai

Es gribētu teikt dažus vārdus par izpildmehānisma dizaina galvenā elementa iegādi. Vietējais auto veikals man piedāvāja divu veidu izpildmehānismus: “ar diviem vadiem un ar pieciem”. Pēc pārdevējas teiktā, tie bija absolūti identiski un vadu skaita atšķirība absolūti neko nenozīmēja. Tomēr, kā vēlāk izrādījās, tas tā nav! Izvēlējos ierīci ar diviem vadiem, to baroja 12V. Piecu vadu konstrukcijai ir robežslēdži, lai kontrolētu sviras kustību. To, ka nopirku nepareizo, sapratu tikai tad, kad izjaucu un bija par vēlu to mainīt. Sviras gājiens izrādījās pārāk īss, lai pareizi ievilktu fiksatoru, tāpēc bija nepieciešams to nedaudz pārveidot, proti, noņemt divas gumijas paplāksnes, kas saīsināja izpildmehānisma sviras gājienu. Lai to izdarītu, korpuss bija jāsazāģē gareniski ar parastu metāla zāģi, jo otrā paplāksne bija iekšā. Zilā elektriskā lente, kā vienmēr, mums palīdzēja nākotnē, saliekot to atpakaļ.
Lai vadītu izpildmehānisma motoru, mēs izmantojām L293D motora draiveri, kas var izturēt maksimālo slodzi līdz 1200 mA, kad mēs apturējām izpildmehānisma motoru, maksimālā slodze palielinājās tikai līdz 600 mA.
No apsardzes signalizācijas pults tika izņemti kontakti no klaviatūras, skaļruņa un divas gaismas diodes. Tālvadības pulti un galveno ierīci vajadzēja savienot, izmantojot vītā pāra un RJ45 savienotājus

Programmēšana.

Tātad, man līdz šim nebija pieredzes Arduino programmēšanā. Es izmantoju citu cilvēku darbus un rakstus no vietnes arduino.cc. Ikviens interesents var apskatīt šo neglīto kodu :)

Foto un video



Arduino un izpildmehānisms


spēka agregāts


Tastatūra


Espagnolette (savienots ar izpildmehānismu ar metāla spieķi un pārklāts ar siltuma saraušanos skaistumam)

Video par ierīces darbības procesu: