Broasca electronica cu card Arduino. Blocare cu cod Arduino

Zilele trecute mă uitam la The Amazing Spider-Man și într-o scenă Peter Parker deschide și închide de la distanță o ușă de pe laptop. De îndată ce am văzut asta, mi-am dat seama imediat că am nevoie și de o astfel de încuietoare electronică pentru ușa mea din față.

După ce m-am jucat, m-am adunat modelul actualîncuietoare inteligentă. În acest articol vă voi spune cum l-am asamblat.

Pasul 1: Lista materialelor





Pentru a asambla o încuietoare electronică pe Arduino veți avea nevoie de următoarele materiale:

Electronica:

  • Adaptor de perete 5V

Componente:

  • 6 șuruburi de blocare
  • carton
  • fire

Instrumente:

  • fier de lipit
  • pistol de lipici
  • burghiu
  • burghiu
  • burghiu pentru gaura pilot
  • cuțit de papetărie
  • computer cu programul Arduino IDE

Pasul 2: Cum funcționează blocarea

Ideea este că pot deschide sau închide ușa fără cheie și fără să mă apropii de ea. Dar aceasta este doar ideea de bază, pentru că puteți adăuga și un senzor de bătaie, astfel încât să reacționeze la o bătaie specială, sau puteți adăuga un sistem de recunoaștere a vocii!

O pârghie servo conectată la șurub îl va închide (0°) și îl va deschide (60°) folosind comenzile primite prin modulul Bluetooth.

Pasul 3: Diagrama de cablare


Să conectăm mai întâi servo-ul la placa Arduino (rețineți că, deși am folosit o placă Arduino Nano, placa Uno are exact același pinout).

  • Firul maro al servo este împământat, îl conectăm la pământ pe Arduino
  • firul roșu este un plus, îl conectăm la conectorul de 5V de pe Arduino
  • firul portocaliu este pinul sursei servo drive-ului, conectați-l la pinul 9 de pe Arduino

Vă sfătuiesc să verificați funcționarea servo înainte de a continua cu montajul. Pentru a face acest lucru, în programul Arduino IDE, selectați Sweep în exemple. După ce ne asigurăm că servo-ul funcționează, putem conecta modulul Bluetooth. Trebuie să conectați pinul rx al modulului Bluetooth la pinul tx al Arduino și pinul tx al modulului la pinul rx al Arduino. Dar nu o face încă! Odată ce aceste conexiuni sunt lipite, nu veți mai putea încărca niciun cod pe Arduino, așa că descărcați mai întâi toate codurile și abia apoi lipiți conexiunile.

Iată schema de conectare dintre modul și microcontroler:

  • Modul Rx – placa Tx Arduino
  • Modul Tx – placa Rx
  • Vcc (terminalul pozitiv) al modulului este de 3,3v al plăcii Arduino
  • Pământul este conectat la pământ (împământare la împământare)

Dacă explicația vi se pare neclară, vă rugăm să urmați schema de cablare furnizată.

Pasul 4: Testați

Acum că avem toate piesele de lucru, să ne asigurăm că servo poate mișca zăvorul. Înainte de a monta zăvorul pe ușă, am asamblat o probă de testare pentru a mă asigura că servo-ul este suficient de puternic. La început mi s-a părut că servo-ul meu este slab și am adăugat o picătură de ulei în zăvor, după care a funcționat bine. Este foarte important ca mecanismul să alunece bine, altfel riști să fii blocat în camera ta.

Pasul 5: Carcasă electrică



Am decis să pun în carcasă doar controlerul și modulul Bluetooth și să las servo afară. Pentru a face acest lucru, desenați conturul plăcii Arduino Nano pe o bucată de carton și adăugați 1 cm de spațiu în jurul perimetrului și decupați-l. După aceasta, decupăm și alte cinci părți ale corpului. Va trebui să tăiați o gaură în peretele frontal pentru cablul de alimentare al controlerului.

Dimensiuni laterale carcasei:

  • Partea de jos – 7,5x4 cm
  • Coperta – 7,5x4 cm
  • Stânga perete lateral– 7,5x4 cm
  • Peretele lateral drept – 7,5x4 cm
  • Peretele frontal – 4x4 cm (cu fantă pentru cablul de alimentare)
  • Peretele din spate – 4x4 cm

Pasul 6: Aplicare

Pentru a controla controlerul, aveți nevoie de un gadget Android sau Windows cu Bluetooth încorporat. Nu am avut ocazia să testez aplicația pe dispozitive Apple, poate că vor fi necesare niște drivere.

Sunt sigur că unii dintre voi au ocazia să verifice asta. Pentru Android, descărcați aplicația Bluetooth Terminal, pentru Windows, descărcați TeraTerm. Apoi trebuie să conectați modulul la smartphone, numele ar trebui să fie linvor, parola ar trebui să fie 0000 sau 1234. Odată ce asocierea este stabilită, deschideți aplicație instalată, accesați opțiuni și selectați „Stabiliți o conexiune (nesigură).” Acum smartphone-ul tău este un monitor cu interfață serială Arduino, ceea ce înseamnă că poți face schimb de date cu controlerul.

Dacă introduceți 0, ușa se va închide și mesajul „Ușa este închisă” va apărea pe ecranul smartphone-ului.
Dacă introduceți 1, veți vedea ușa deschisă și pe ecran va apărea „Door Open”.
Pe Windows, procesul este același, cu excepția faptului că trebuie să instalați aplicația TeraTerm.

Pasul 7: Instalați zăvorul


Mai întâi trebuie să conectați servo-ul la zăvor. Pentru a face acest lucru, trebuie să tăiați dopurile din orificiile de montare ale carcasei unității. Dacă punem servo jos, orificiile de montare ar trebui să fie la nivel cu șurubul. Apoi trebuie să plasați pârghia servo în fanta de blocare, unde era mânerul de blocare. Verificați cum se mișcă încuietoarea în corp. Dacă totul este în regulă, fixați brațul servo cu lipici.

Acum trebuie să găuriți găuri pilot pentru șuruburile din ușă. Pentru a face acest lucru, atașați zăvorul la ușă și utilizați un creion pentru a marca găurile pentru șuruburile de pe foaia ușii. Găuriți găuri pentru șuruburi de aproximativ 2,5 cm adâncime în locurile marcate. Atașați zăvorul și fixați-l cu șuruburi. Verificați din nou funcționarea servo.

Pasul 8: Putere


Pentru a finaliza dispozitivul, veți avea nevoie de o sursă de alimentare, un cablu și o mufă mini-usb pentru a vă conecta la Arduino.
Conectați pinul de împământare al sursei de alimentare la pinul de împământare al miniportului USB, conectați firul roșu la firul roșu al miniportului USB, apoi întindeți firul de la blocare la balamaua ușii, și se întinde de la ea la priză.

Pasul 9: Cod

#include Servo myservo; int pos = 0; stare int; int flag=0; void setup() ( myservo.attach(9); Serial.begin(9600); myservo.write(60); delay(1000); ) void loop() ( if(Serial.available() > 0) ( stare = Serial.read(); flag=0; // dacă starea este „0”, motorul de curent continuu se va opri dacă (state == „0”) ( myservo.write(8); delay(1000); Serial. println("Ușă blocată"); else if (stare == "1") ( myservo.write(55); delay(1000); Serial.println("Ușă deblocată"); ) )

Pasul 10: Blocare bazată pe Arduino finalizată

Bucurați-vă de blocarea telecomenzii și nu uitați să vă blocați „în mod accidental” prietenii în cameră.

Progresul nu stă pe loc și „încuietori inteligente” apar din ce în ce mai mult pe ușile apartamentelor, garajelor și caselor.

O blocare similară se deschide atunci când apăsați un buton de pe smartphone. Din fericire, smartphone-urile și tabletele au intrat deja în viața noastră de zi cu zi. În unele cazuri, „încuietori inteligente” sunt conectate la „ servicii cloud„cum ar fi Google Drive și deschideți-l de la distanță. În plus, această opțiune face posibilă acordarea accesului la deschiderea ușii altor persoane.

Acest proiect va implementa o versiune DIY a unei încuietori inteligente pe Arduino, care poate fi controlată de la distanță de oriunde în lume.

În plus, proiectul a adăugat posibilitatea de a deschide încuietoarea după identificarea unei amprente. În acest scop, va fi integrat un senzor de amprentă. Ambele opțiuni de deschidere a ușilor vor fi alimentate de platforma Adafruit IO.

O încuietoare ca aceasta poate fi un prim pas grozav în proiectul dvs. Smart Home.

Configurarea senzorului de amprentă

Pentru a lucra cu un senzor de amprentă, există o bibliotecă excelentă pentru Arduino, care simplifică foarte mult procesul de configurare a senzorului. Acest proiect folosește Arduino Uno. Pentru conectarea la Internet se folosește o placă Adafruit CC3000.

Să începem cu conectarea la putere:

  • Conectați pinul de 5V de la placa Arduino la șina roșie de alimentare;
  • Pinul GND de la Arduino se conectează la șina albastră de pe placa de circuite fără lipire.

Să trecem la conectarea senzorului de amprentă:

  • Mai întâi conectați alimentarea. Pentru a face acest lucru, firul roșu este conectat la șina +5 V, iar firul negru la șina GND;
  • Firul alb al senzorului se conectează la pinul 4 de pe Arduino.
  • Firul verde merge la pinul 3 al microcontrolerului.

Acum să trecem la modulul CC3000:

  • Conectam pinul IRQ de la placa CC3000 la pinul 2 de pe Arduino.
  • VBAT - la pinul 5.
  • CS - la pinul 10.
  • După aceasta, trebuie să conectați pinii SPI la Arduino: MOSI, MISO și CLK - la pinii 11, 12 și, respectiv, 13.

Ei bine, la sfârșit trebuie să furnizați energie: Vin - la Arduino 5V (șină roșie pe placa de circuit) și GND la GND (șină albastră pe placa).

O fotografie a proiectului complet asamblat este prezentată mai jos:

Înainte de a dezvolta o schiță care va încărca date pe Adafruit IO, trebuie să transferați datele despre amprenta dvs. la senzor. Altfel, nu te va recunoaște pe viitor;). Vă recomandăm să calibrați senzorul de amprentă folosind Arduino separat. Dacă este prima dată când lucrați cu acest senzor, vă recomandăm să vă familiarizați cu procesul de calibrare și cu instrucțiunile detaliate pentru lucrul cu senzorul de amprentă.

Dacă nu ați făcut deja acest lucru, vă rugăm să creați un cont la Adafruit IO.

După aceasta putem trece la următoarea etapă dezvoltarea unui „smart lock” pe Arduino: și anume, dezvoltarea unei schițe care va transmite date către Adafruit IO. Deoarece programul este destul de voluminos, în acest articol vom evidenția și luăm în considerare doar părțile sale principale, apoi vom oferi un link către GitHub, de unde puteți descărca schița completă.

Schița începe prin încărcarea tuturor bibliotecilor necesare:

#include

#include

#include

#include „Adafruit_MQTT.h”

#include „Adafruit_MQTT_CC3000.h”

#include

#include >

După aceasta, trebuie să corectați ușor schița inserând parametrii rețelei WiFi, specificând SSID-ul și parola:

#define WLAN_SECURITY WLAN_SEC_WPA2>

În plus, trebuie să vă introduceți numele și cheia AIO pentru a vă conecta la contul Adafruit IO:

#define AIO_SERVERPORT 1883

#define AIO_USERNAME „adafruit_io_name”

#define AIO_KEY "adafruit_io_key">

Următoarele linii sunt responsabile pentru interacțiunea și procesarea datelor de la senzorul de amprentă. Dacă senzorul a fost activat (amprenta se potrivește), va fi „1”:

const char FINGERPRINT_FEED PROGMEM = AIO_USERNAME "/feeds/fingerprint";

Adafruit_MQTT_Publish fingerprint = Adafruit_MQTT_Publish(&mqtt, FINGERPRINT_FEED);

În plus, trebuie să creăm o instanță a obiectului SoftwareSerial pentru senzorul nostru:

SoftwareSerial mySerial(3, 4);

După aceasta, putem crea un obiect pentru senzorul nostru:

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

În interiorul schiței indicăm ce fingerID ar trebui să activeze blocarea în viitor. Acest exemplu folosește 0, care corespunde ID-ului primei amprente utilizate de senzor:

int fingerID = 0;

După aceasta, inițializam contorul și întârziem proiectul nostru. În esență, dorim ca încuietoarea să se activeze automat odată deschisă. Acest exemplu utilizează o întârziere de 10 secunde, dar puteți ajusta această valoare pentru a se potrivi nevoilor dvs.:

int activationCounter = 0;

int lastActivation = 0;

int activationTime = 10 * 1000;

În corpul funcției setup(), inițializam senzorul de amprentă și ne asigurăm că cipul CC3000 este conectat la rețeaua WiFi.

În corpul funcției loop() ne conectăm la Adafruit IO. Următoarea linie este responsabilă pentru aceasta:

După conectarea la platforma Adafruit IO, verificăm ultima amprentă. Dacă se potrivește și blocarea nu este activată, trimitem „1” la Adafruit IO pentru procesare:

if (fingerprintID == fingerID && lockState == false) (

Serial.println(F("Acces acordat!"));

lockState = adevărat;

Serial.println(F("Eșuat"));

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

lastActivation = milis();

Dacă în cadrul funcției loop() blocarea este activată și am atins valoarea de întârziere indicată mai sus, trimitem „0”:

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

lockState = fals;

dacă (! amprentă.publicați(stat)) (

Serial.println(F("Eșuat"));

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

Puteți descărca cea mai recentă versiune a codului de pe GitHub.

Este timpul să ne testăm proiectul! Nu uitați să descărcați și să instalați toate bibliotecile necesare pentru Arduino!

Asigurați-vă că ați făcut toate modificările necesare schiței și încărcați-o pe Arduino. După aceea, deschideți fereastra Monitor serial.

Când Arduino se conectează la Rețele WiFi, senzorul de amprentă va clipi roșu. Puneți degetul pe senzor. Numărul ID ar trebui să fie afișat în fereastra monitorului serial. Dacă se potrivește, va apărea mesajul „OK!”. Aceasta înseamnă că datele au fost trimise către serverele Adafruit IO.

Diagrama și schița pentru configurarea ulterioară a încuietorii folosind exemplul unui LED

Acum să ne ocupăm de acea parte a proiectului care este direct responsabilă de management încuietoarea ușii. Pentru a vă conecta la rețea fără fir iar activând/dezactivând blocarea, veți avea nevoie de un modul suplimentar Adafruit ESP8266 (modulul ESP8266 nu trebuie să fie de la Adafruit). Folosind exemplul de mai jos, puteți evalua cât de ușor este să faceți schimb de date între două platforme (Arduino și ESP8266) folosind Adafruit IO.

În această secțiune nu vom lucra direct cu blocarea. În schimb, vom conecta pur și simplu LED-ul la pinul la care încuietoarea va fi conectată mai târziu. Acest lucru va face posibilă testarea codului nostru fără a explora specificul designului lacătului.

Schema este destul de simplă: instalați mai întâi ESP8266 pe placa. După aceasta, instalați LED-ul. Nu uitați că piciorul lung (pozitiv) al LED-ului este conectat printr-un rezistor. Al doilea picior al rezistenței este conectat la pinul 5 de pe modulul ESP8266. Conectam al doilea (catod) al LED-ului la pinul GND de pe ESP8266.

Complet circuit asamblat prezentat în fotografia de mai jos.


Acum să ne uităm la schița pe care o folosim pentru acest proiect. Din nou, codul este destul de mare și complex, așa că ne vom uita doar la părțile sale principale:

Începem prin a conecta bibliotecile necesare:

#include

#include „Adafruit_MQTT.h”

#include „Adafruit_MQTT_Client.h”

Configurarea setărilor WiFi:

#define WLAN_SSID „your_wifi_ssid”

#define WLAN_PASS „parola_wifi”

#define WLAN_SECURITY WLAN_SEC_WPA2

Configuram si parametrii Adafruit IO. La fel ca în secțiunea anterioară:

#define AIO_SERVER „io.adafruit.com”

#define AIO_SERVERPORT 1883

#define AIO_USERNAME „adafruit_io_username”

#define AIO_KEY „adafruit_io_key”

Indicăm la ce pin am conectat LED-ul (în viitor acesta va fi blocarea sau releul nostru):

int relayPin = 5;

Interacțiunea cu senzorul de amprentă, ca în secțiunea anterioară:

const char LOCK_FEED PROGMEM = AIO_USERNAME "/feeds/lock";

Adafruit_MQTT_Subscribe lock = Adafruit_MQTT_Subscribe(&mqtt, LOCK_FEED);

În corpul funcției setup() indicăm că pinul la care este conectat LED-ul ar trebui să funcționeze în modul OUTPUT:

pinMode(relayPin, OUTPUT);

În bucla loop(), verificăm mai întâi dacă suntem conectați la Adafruit IO:

După aceasta, verificăm ce semnal este primit. Dacă se transmite „1”, activăm pinul pe care l-am declarat mai devreme, la care este conectat LED-ul nostru. Dacă primim „0”, transferăm contactul în starea „scăzută”:

Adafruit_MQTT_Subscribe *abonament;

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

dacă (abonament == &lock) (

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

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

// Salvați comanda în șir de date

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

dacă (comanda == "0") (

digitalWrite(relayPin, LOW);

dacă (comandă == „1”) (

digitalWrite(relayPin, HIGH);

Găsi ultima versiune Puteți descărca schița pe GitHub.

Este timpul să ne testăm proiectul. Nu uitați să descărcați toate bibliotecile necesare pentru Arduino și să verificați dacă ați făcut modificările corecte schiței.

Pentru a programa cipul ESP8266, puteți utiliza un simplu convertor USB-FTDI.

Încărcați schița în Arduino și deschideți fereastra Monitor serial. Pe în această etapă tocmai am verificat dacă ne-am putut conecta la Adafruit IO: ne vom uita mai departe la funcționalitatea disponibilă.

Testarea proiectului

Acum să începem testarea! Accesați meniul de utilizator al Adafruit IO, sub meniul Feeds. Verificați dacă sunt create sau nu canalele de amprentă și de blocare (în ecranul de imprimare de mai jos, acestea sunt liniile de amprentă și de blocare):


Dacă nu există, va trebui să le creați manual.

Acum trebuie să asigurăm schimbul de date între canalele de amprentă și de blocare. Canalul de blocare trebuie să ia valoarea „1” când canalul de amprentă ia valoarea „1” și invers.

Pentru a face acest lucru, folosim un instrument Adafruit IO foarte puternic: declanșatoarele. Declanșatoarele sunt în esență condiții pe care le puteți aplica canalelor configurate. Adică, pot fi folosite pentru a interconecta două canale.

Creați un nou declanșator reactiv din secțiunea Declanșatoare din Adafruit IO. Acest lucru va oferi posibilitatea de a schimba date între senzorul de amprentă și canalele de blocare:


Iată cum ar trebui să arate când ambele declanșatoare sunt configurate:

Toate! Acum putem testa proiectul nostru! Punem degetul pe senzor și vedem cum Arduino a început să clipească cu un LED care corespunde transmisiei de date. După aceasta, LED-ul de pe modulul ESP8266 ar trebui să înceapă să clipească. Aceasta înseamnă că a început să primească date prin MQTT. LED-ul de pe placa de circuite ar trebui să se aprindă și el în acest moment.

După întârzierea pe care ați setat-o ​​în schiță (implicit este de 10 secunde), LED-ul se va stinge. Felicitări! Puteți controla LED-ul cu amprenta dvs. de oriunde în lume!

Configurarea unei încuietori electronice

Am ajuns la ultima parte a proiectului: conectarea directă și controlul încuietorii electronice folosind Arduino și un senzor de amprentă. Proiectul nu este ușor, puteți folosi toate sursele în forma în care sunt prezentate mai sus, dar conectați un releu în loc de un LED.

Pentru a conecta direct lacătul, veți avea nevoie de componente suplimentare: o sursă de alimentare de 12 V, o mufă pentru conectarea energiei, un tranzistor (V în acest exemplu Se folosește MOSFET IRLB8721PbF, dar poate fi folosit altul, de exemplu, un tranzistor bipolar TIP102. Dacă utilizați un tranzistor bipolar, va trebui să adăugați un rezistor.

Arată mai jos schema electrica conectarea tuturor componentelor la modulul ESP8266:


Rețineți că, dacă utilizați un tranzistor MOSFET, nu veți avea nevoie de un rezistor între pinul 5 al modulului ESP8266 și tranzistor.

Proiectul complet asamblat este prezentat în fotografia de mai jos:


Alimentați modulul ESP8266 folosind modulul FTDI și conectați sursa de alimentare de 12 V la mufă. Dacă ați folosit pinii recomandați mai sus pentru conectare, nu va trebui să schimbați nimic în schiță.

Acum puteți pune degetul pe senzor: blocarea ar trebui să funcționeze ca răspuns la amprenta dvs. Videoclipul de mai jos arată proiectul de blocare inteligentă automată în acțiune:

Dezvoltarea în continuare a proiectului Smart Lock

Proiectul nostru a lansat controlul de la distanță al unei încuietori a ușii folosind o amprentă digitală.

Simțiți-vă liber să experimentați, să modificați schița și legarea. De exemplu, puteți înlocui o încuietoare electronică a ușii cu un releu pentru a controla puterea imprimantei 3D, a brațului robotizat sau a quadcopterului...

Îți poți dezvolta casă inteligentă„. De exemplu, activați de la distanță un sistem de irigare pe Arduino sau aprindeți luminile într-o cameră... Nu uitați că puteți activa simultan un număr aproape nelimitat de dispozitive folosind Adafruit IO.

Lăsați comentariile, întrebările și distribuiți experiență personală de mai jos. Noi idei și proiecte se nasc adesea în discuții!

În acest articol vă voi spune cum să faceți o lacăt cu combinație din Arduino. Pentru asta avem nevoie de LED-uri roșii și verzi, un buzzer, un Arduino nano, un display LCD cu convertor I2C, un servo drive și o tastatură matrice 4x4. Când este pornit, afișajul va scrie „Introduceți codul”.

LED-ul roșu se va aprinde,

iar lumina verde se va stinge, servo-ul va fi setat la 0°. Pe măsură ce introduceți numere, * se va aprinde pe afișaj.

Dacă codul este introdus incorect, pe afișaj se va scrie „Introduceți codul”. Dacă codul este corect, se va auzi un bip, servo-ul se va roti 180°, iar pe afișaj va apărea „Open”.

LED-ul verde se va aprinde,

iar cel roșu se va stinge. După 3 secunde, servo va reveni la poziția inițială, LED-ul roșu se va aprinde și LED-ul verde se va stinge, pe afișaj va scrie „Închidere”.

apoi pe afișaj se va scrie „Introduceți codul.”. Acum despre schema. Mai întâi, conectăm Arduino cu fire la placa de breadboard (contacte de alimentare).

Apoi conectăm tastatura matriceală la contactele D9 - D2.

Apoi servo. Îl conectăm la pinul 10.

LED roșu la pinul 11.

Verde - la pinul 12.

Buzzer - la pinul 13.

Acum încărcați schița.

#include #include #include #include iarduino_KB KB(9, 8, 7, 6, 5, 4, 3, 2); LiquidCrystal_I2C lcd(0x27, 16, 2); Servo servo; int trece = (3, 6, 1, 8); int în; 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); lcd.setCursor(0, 0); void loop() (lcd.clear(); lcd.print("Introduceți codul."); while ( !KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.setCursor(0, 0); (!KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.print("*"); while (!KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum("*"); if (în == trece) ( dacă (în == trece) ( dacă (în == trece) ( lcd.clear(); lcd.setCursor (0, 0); lcd.print("Open."); digitalWrite(r, LOW(3000); "); ton (13, 300, 700); digitalWrite (g, LOW); întârziere (1000);

) ) ) ) )

Asta este. Bucurați-vă de lacătul cu combinație!

Lista radioelementelor Desemnare Tip Denumirea CantitateNotaMagazin
Blocnotesul meu E1

Placa Arduino

1 Arduino Nano 3.0 5V
La blocnotes E8, E9

Rezistor

2 220 ohmi 5V
SMD E6

LED

1 AL102G 5V
Roşu E6

E7

1 AL307G 5V
Verde E3Afișaj LCD1 Cu interfață I2C 5V
Iluminare de fundal verde E5Servo1 SG90 5V
180 de grade E2Arduino Nano 3.01 Buzzer 5V
Bu E4Tastatura1 4X4 5V
Matrice NuBreadboard1 640 de puncte
S-a întâmplat că la locul de muncă am decis să instalăm o încuietoare cu combinație pe ușa noastră, pentru că alergăm constant - ieșim din birou, ușa căruia ar trebui să fie închisă constant în absența ocupanților. Cheile ajung adesea să fie uitate în interior. În general, am decis că un lacăt cu combinație este o soluție excelentă.

După ce am scotocit prin piețele chinezești de vechituri și pe eBay, nu am găsit nimic ieftin și mai mult sau mai puțin serios și am decis să-l fac eu. Voi spune imediat că platforma Arduino a fost aleasă pentru simplitatea ei, deoarece nu aveam deloc experiență cu microcontrolere.

Idee

Pe usa cu exterior usa ar trebui sa existe o tastatura pe care se introduce parola, cu interior restul structurii este fix. Un comutator lamelă este utilizat pentru a controla închiderea completă a ușii. La ieșirea de la birou, o persoană apasă pe „*” pe tastatură și, fără să aștepte ca ușa să se închidă cu închizătorul, își duce treburile, când ușa este complet închisă, întrerupătorul cu lame se va închide și încuietoarea va fi închisă. . Ușa se deschide introducând o parolă din 4 cifre și apăsând „#”.

Accesorii

Arduino UNO = 18 USD
Arduino protoshield + breadboard = 6 USD
L293D = 1 USD
Pachet de sârmă 30 buc pentru Bradboard = 4 USD
2 prize RJ45 = 4 USD
2 mufe RJ45 = 0,5 USD
actuator inchidere centralizata = 250 rub.
Comutator de lamelă = smuls liber din vechea fereastră.
Zavor metalic gigant = liber
Carcasă dintr-un butuc vechi D-LINK din fier de un milimetru și jumătate = gratuit
Alimentare de la același hub D-LINK pentru 12 și 5V = de asemenea gratuit
O grămadă de șuruburi și piulițe pentru atașarea tuturor acestor lucruri pe corp = 100 de ruble.
Telecomanda de la alarma antiefractie= gratuit.

Total: 33,5 USD și 350 de ruble.

Nu atât de puțin, vei spune, și cu siguranță vei avea dreptate, dar trebuie să plătești pentru plăcere! Și este întotdeauna plăcut să asamblați ceva cu propriile mâini. În plus, designul poate fi redus foarte mult în cost dacă utilizați un MK fără Arduino.

Pregătirea pentru asamblare

Aș dori să spun câteva cuvinte despre achiziționarea unui element cheie al designului actuatorului. Un magazin auto local mi-a oferit două tipuri de actuatoare: „cu două fire și cu cinci”. Potrivit vânzătorului, acestea erau absolut identice, iar diferența de numărul de fire nu însemna absolut nimic. Cu toate acestea, după cum sa dovedit mai târziu, nu este așa! Am ales un aparat cu doua fire, era alimentat la 12V. Designul cu cinci fire are întrerupătoare de limită pentru a controla mișcarea pârghiei. Mi-am dat seama că am cumpărat-o pe cea greșită doar când am demontat-o ​​și era prea târziu să-l schimb. Cursa pârghiei s-a dovedit a fi prea scurtă pentru a retrage corect zăvorul, prin urmare, a fost necesar să-l modificați puțin, și anume, îndepărtați două șaibe de cauciuc care au scurtat cursa pârghiei actuatorului. Pentru a face acest lucru, corpul a trebuit să fie tăiat pe lungime cu un ferăstrău obișnuit, deoarece a doua șaibă era înăuntru. Banda electrică albastră, ca întotdeauna, ne-a ajutat în viitor când o asamblam înapoi.
Pentru a controla motorul actuatorului, am folosit un driver de motor L293D, care poate rezista la o sarcină de vârf de până la 1200 mA când am oprit motorul de acţionare, sarcina de vârf a crescut la doar 600 mA;
Contactele de la tastatură, difuzor și două LED-uri au fost scoase din panoul de control al alarmei de securitate. Telecomanda și dispozitivul principal trebuiau conectate folosind perechi răsucite și conectori RJ45

Programare.

Deci, nu am avut experiență în programarea Arduino până acum. Am folosit lucrările altora și articolele de pe site-ul arduino.cc. Oricine este interesat poate arunca o privire la acest cod urât :)

Foto și video



Arduino și actuator


unitate de putere


Tastatura


Espagnolette (conectată la actuator cu o spiță de metal și acoperită cu termocontractabil pentru frumusețe)

Video cu procesul de funcționare a dispozitivului:

S-a întâmplat că la locul de muncă am decis să instalăm o încuietoare cu combinație pe ușa noastră, pentru că alergăm constant - ieșim din birou, ușa căruia ar trebui să fie închisă constant în absența ocupanților. Cheile ajung adesea să fie uitate în interior. În general, am decis că un lacăt cu combinație este o soluție excelentă.

După ce am scotocit prin piețele chinezești de vechituri și pe eBay, nu am găsit nimic ieftin și mai mult sau mai puțin serios și am decis să-l fac eu. Voi spune imediat că platforma Arduino a fost aleasă pentru simplitatea ei, deoarece nu aveam deloc experiență cu microcontrolere.

Idee

Ar trebui să existe o tastatură în exteriorul ușii pe care este introdusă parola, iar restul structurii ar trebui să fie fixat în interior. Un comutator lamelă este utilizat pentru a controla închiderea completă a ușii. La ieșirea de la birou, o persoană apasă pe „*” pe tastatură și, fără să aștepte ca ușa să se închidă cu închizătorul, își duce treburile, când ușa este complet închisă, întrerupătorul cu lame se va închide și încuietoarea va fi închisă. . Ușa se deschide introducând o parolă din 4 cifre și apăsând „#”.

Accesorii

Arduino UNO = 18 USD
Arduino protoshield + breadboard = 6 USD
L293D = 1 USD
Pachet de sârmă 30 buc pentru Bradboard = 4 USD
2 prize RJ45 = 4 USD
2 mufe RJ45 = 0,5 USD
actuator inchidere centralizata = 250 rub.
Comutator de lamelă = smuls liber din vechea fereastră.
Zavor metalic gigant = liber
Carcasă dintr-un butuc vechi D-LINK din fier de un milimetru și jumătate = gratuit
Alimentare de la același hub D-LINK pentru 12 și 5V = de asemenea gratuit
O grămadă de șuruburi și piulițe pentru atașarea tuturor acestor lucruri pe corp = 100 de ruble.
Panou de control alarma de securitate = gratuit.

Total: 33,5 USD și 350 de ruble.

Nu atât de puțin, vei spune, și cu siguranță vei avea dreptate, dar trebuie să plătești pentru plăcere! Și este întotdeauna plăcut să asamblați ceva cu propriile mâini. În plus, designul poate fi redus foarte mult în cost dacă utilizați un MK fără Arduino.

Pregătirea pentru asamblare

Aș dori să spun câteva cuvinte despre achiziționarea unui element cheie al designului actuatorului. Un magazin auto local mi-a oferit două tipuri de actuatoare: „cu două fire și cu cinci”. Potrivit vânzătorului, acestea erau absolut identice, iar diferența de numărul de fire nu însemna absolut nimic. Cu toate acestea, după cum sa dovedit mai târziu, nu este așa! Am ales un aparat cu doua fire, era alimentat la 12V. Designul cu cinci fire are întrerupătoare de limită pentru a controla mișcarea pârghiei. Mi-am dat seama că am cumpărat-o pe cea greșită doar când am demontat-o ​​și era prea târziu să-l schimb. Cursa pârghiei s-a dovedit a fi prea scurtă pentru a retrage corect zăvorul, prin urmare, a fost necesar să-l modificați puțin, și anume, îndepărtați două șaibe de cauciuc care au scurtat cursa pârghiei actuatorului. Pentru a face acest lucru, corpul a trebuit să fie tăiat pe lungime cu un ferăstrău obișnuit, deoarece a doua șaibă era înăuntru. Banda electrică albastră, ca întotdeauna, ne-a ajutat în viitor când o asamblam înapoi.
Pentru a controla motorul actuatorului, am folosit un driver de motor L293D, care poate rezista la o sarcină de vârf de până la 1200 mA când am oprit motorul de acţionare, sarcina de vârf a crescut la doar 600 mA;
Contactele de la tastatură, difuzor și două LED-uri au fost scoase din panoul de control al alarmei de securitate. Telecomanda și dispozitivul principal trebuiau conectate folosind perechi răsucite și conectori RJ45

Programare.

Deci, nu am avut experiență în programarea Arduino până acum. Am folosit lucrările altora și articolele de pe site-ul arduino.cc. Oricine este interesat poate arunca o privire la acest cod urât :)

Foto și video



Arduino și actuator


unitate de putere


Tastatura


Espagnolette (conectată la actuator cu o spiță de metal și acoperită cu termocontractabil pentru frumusețe)

Video cu procesul de funcționare a dispozitivului: