DIY: Crearea unui SmartLock pentru casa dvs. care se deschide numai cu smartphone-ul dvs.

În zilele noastre, există atât de multe blocări disponibile pe piață, care au nevoie de un fel de parolă pentru ao deschide. Aceste încuietori sunt foarte eficiente, dar foarte costisitoare. Dacă trebuie să realizăm o blocare pentru un scop la scară mică, care este automatizată și este deblocată sau blocată fără nicio parolă, dar cu un smartphone, o putem realiza folosind unele componente care sunt ușor disponibile pe piață.



Această blocare va avea un cost foarte redus și va funcționa perfect la scară mică. Un aplicație Android va fi necesar pentru a acționa această încuietoare. Acum, să trecem la configurarea ESP32, instalarea pachetelor necesare pe acesta și efectuarea anumitor modificări hardware!

Încuietoare automată



Fără a pierde timp, să începem să studiem concepte importante și să lucrăm la acest proiect.



Cum să faci SmartLock cu Android?

Pasul 1: Adunarea componentelor

Înainte de a începe orice proiect, dacă există teama că veți rămâne blocat în mijlocul proiectului și veți pierde timpul, există o abordare excelentă pentru a-l evita. Faceți o listă completă a tuturor componentelor de care veți avea nevoie în proiect și cumpărați-le în primul rând. Urmează lista completă a tuturor componentelor pe care le vom folosi în acest proiect. Toate aceste componente sunt ușor disponibile pe piață.



  • ESP32
  • Sârme jumper
  • Servo motor
  • Șuruburi
  • Lacăt
  • Mașină de găurit

Pasul 2: Realizarea aplicației

Deoarece vom face o blocare inteligentă care va fi operată de un telefon mobil, trebuie să dezvoltăm o aplicație Android care va conține un buton. Prin apăsarea acelui buton vom putea deschide sau închide blocarea inteligentă. Anterior, am dezvoltat mai multe aplicații Android. Am dezvoltat deja o aplicație care constă dintr-un singur buton. Acest buton este utilizat pentru a trimite date în baza de date. dacă „1” este împins în baza de date firebase, blocarea comutatorului se va deschide și dacă „0” este împins în baza de date respectivă, blocarea va fi închisă.

Vă rugăm să consultați articolul nostru numit Crearea unui comutator de pornire / oprire fără fir pentru computerul dvs. pentru a vă ajuta să vă dezvoltați propria aplicație Android care va fi utilizată pentru a acționa blocarea inteligentă.

Pasul 3: Asamblarea componentelor

Deoarece avem o listă completă a tuturor componentelor de care avem nevoie pentru a finaliza acest proiect, permiteți-ne să facem un pas înainte și să asamblăm toate componentele împreună.



Luați servo-motorul și conectați-l la Vcc și la masă la Vcc și respectiv la masă a plăcii ESP. Conectați pinul PWM al servomotorului dvs. la pinul 34 al dispozitivului Placa ESP32 . Acum vedeți că există un buton de tip viteză pe un servomotor. Scoateți mânerul dispozitivului de blocare rotindu-l și fixați butonul motorului de transmisie în dispozitivul de blocare cu ajutorul unor adezivi.

Acum, cu ajutorul mașinii de găurit, găuriți câteva găuri pe ușă unde doriți să plasați această încuietoare inteligentă. Asigurați-vă că găuriți în așa fel încât găurile încuietorii se suprapun peste găurile din ușă, făcând loc șurubului să se fixeze.

Pasul 4: Lucrul

După cum știm acum ideea principală din spatele acestui proiect, permiteți-ne să înțelegem cum va funcționa acest proiect.

ESP32 este inima acestui proiect. Un servomotor este conectat la această placă și acest microcontroler are o conexiune la baza de date firebase. Când butonul din aplicație este apăsat pentru a deschide blocarea, „1” este apăsat în baza de date firebase și când butonul este apăsat pentru a închide blocarea, „0” este împins în baza de date firebase. Placa ESP citește continuu această valoare în baza de date firebase. Atâta timp cât este 0, ESP32 va direcționa servomotorul să rămână în poziția sa inițială. De îndată ce 1 intră în baza de foc, placa ESP o va citi și va spune servomotorului să facă o rotație care să deschidă blocarea.

Pasul 5: Noțiuni introductive despre ESP32

Dacă nu ați mai lucrat la Arduino IDE, nu vă faceți griji, deoarece un pas cu pas pentru a configura Arduino IDE este prezentat mai jos.

  1. Descărcați cea mai recentă versiune a Arduino IDE de la Arduino.
  2. Conectați placa Arduino la computer și deschideți Panoul de control. Click pe Hardware și sunet. Acum deschis Dispozitive și imprimantă și găsiți portul la care este conectată placa dvs. În cazul meu este COM14 dar este diferit în diferite computere.

    Găsirea portului

  3. Faceți clic pe Fișier și apoi faceți clic pe Preferințe. Copiați următorul link în Adresa URL a administratorului de bord suplimentar. „ https://dl.espressif.com/dl/package_esp32_index.json '

    Preferințe

  4. Acum, pentru a utiliza ESP32 cu Arduino IDE, trebuie să importăm biblioteci speciale care ne vor permite să ardem codul pe ESP32 și să-l folosim. aceste două biblioteci sunt atașate în linkul de mai jos. Pentru a include biblioteca, mergeți Schiță> Includeți bibliotecă> Adăugați o bibliotecă ZIP . Va apărea o casetă. Găsiți folderul ZIP de pe computer și faceți clic pe OK pentru a include folderele.

    Includeți biblioteca

  5. Acum, du-te Schiță> Includeți bibliotecă> Gestionați bibliotecile.

    Gestionați bibliotecile

  6. Se va deschide un meniu. În bara de căutare, tastați Arduino JSON. Va apărea o listă. Instalare Arduino JSON de Benoit Blanchon.

    Arduino JSON

  7. Acum faceți clic pe Instrumente. Va apărea un meniu derulant. Setați placa la Modulul ESP.

    Placă de setare

  8. Faceți din nou clic pe meniul Instrument și setați portul pe care l-ați observat anterior în panoul de control.

    Setarea portului

  9. Acum încărcați codul atașat în linkul de mai jos și faceți clic pe butonul de încărcare pentru a arde codul pe microcontrolerul ESP32.

    Încărcare

Deci, acum, când veți încărca codul, poate apărea o eroare. Aceasta este cea mai frecventă eroare care poate apărea dacă utilizați o nouă versiune a Arduino IDE și Arduino JSON. Următoarele sunt erorile pe care le puteți vedea pe ecran.

În fișier inclus din C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, din C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer este o clasă din ArduinoJson 5. Consultați arduinojson.org/upgrade pentru a afla cum să faceți upgrade programului dvs. la ArduinoJson versiunea 6 StaticJsonBuffer jsonBuffer; ^ În fișier inclus din C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, din C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer este o clasă din ArduinoJson 5. Vă rugăm să consultați arduinojson.org/upgrade pentru a afla cum să actualizați programul dvs. în ArduinoJson versiunea 6 returnează StaticJsonBuffer (). ParseObject (_data); ^ Au fost găsite mai multe biblioteci pentru „WiFi.h” Folosit: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Neutilizat: C:  Program Files ( x86)  Arduino  libraries  WiFi Utilizarea bibliotecii WiFi la versiunea 1.0 din folder: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Folosirea bibliotecii IOXhop_FirebaseESP32-master în folder: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (vechi) Utilizarea bibliotecii HTTPClient la versiunea 1.2 în folderul: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Utilizarea bibliotecii WiFiClientSecure la versiunea 1.0 din folder: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Utilizarea bibliotecii ArduinoJson la versiunea 6.12.0 în folder: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Eroare la compilarea pentru modulul ESP32 Dev Module.

Nu este nimic de îngrijorat, deoarece putem elimina aceste erori urmând câțiva pași simpli. Aceste erori apar deoarece noua versiune a Arduino JSON are o altă clasă în loc de StaticJsonBuffer. Aceasta este clasa JSON 5. Deci, putem elimina pur și simplu această eroare prin retrogradarea versiunii Arduino JSON a ID-ului nostru Arduino. Pur și simplu mergeți la Schiță> Includeți bibliotecă> Gestionați bibliotecile. Caută Arduino JSON de Benoit Blanchon pe care le-ați instalat anterior. Dezinstalați-l mai întâi și apoi setați versiunea sa la 5.13.5. Acum, deoarece am setat o versiune veche a Arduino JSON, instalați-o din nou și recompilați codul. De data aceasta, codul dvs. se va compila cu succes.

Pentru a descărca codul, clic aici.

Pasul 6: Cod

codul acestui proiect este foarte simplu, dar totuși, unele bucăți din acesta sunt explicate mai jos.

1. La începutul codului, vom include trei biblioteci. Primul este să activeze Wifi pe placa ESP, al doilea este să permită ESP să utilizeze servomotor și al treilea este să conecteze placa ESP la baza de date firebase. După aceea, vom adăuga gazda firebase, autentificarea, numele conexiunii noastre locale de internet și parola acesteia în cod. După ce faceți acest lucru, creați un obiect pentru a utiliza servomotorul.

#include // include bibliotecă pentru a utiliza WiFi #include // include bibliotecă pentru servomotor #include // include bibliotecă pentru a vă conecta la Firebase #define FIREBASE_HOST 'xxxxxxxxxx' // înlocuiți xxxxxxxxxx cu gazda dvs. firebase aici #define FIREBASE_AUTH 'xxxxxxxxxx' / / înlocuiți xxxxxxxxxx prin autentificarea dvs. firebase aici #definiți codul WIFI_SSID 'xx, xxxxxxxx' // înlocuiți xxxxxxxxxx cu numele conexiunii noastre Wifi # definiți WIFI_PASSWORD 'xxxxxxxxxx' // înlocuiți xxxxxxxxxx cu parola wifi Servo myservo; // creați obiect pentru servomotor int pos = 0; // crearea stării int variabile; // crearea variabilei

2. configurare nulă () este o funcție care rulează o singură dată într-un program când placa microcontrolerului este pornită sau butonul de activare este apăsat. Rata de transmisie este setată în această funcție. Rata de transmisie este de fapt viteza de comunicație în biți pe secundă prin care microcontrolerul comunică cu dispozitivele externe. Servomotorul este conectat la pinul 34 al plăcii ESP. codul este scris în această funcție pentru a conecta microcontrolerul la conexiunea locală de internet.

void setup () {Serial.begin (115200); // setarea ratei de transmisie myservo.attach (34); // conectați pinul PWM al servomotorului la pin34 al ESP32 myservo.write (60); întârziere (1000); // conectare la wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println („conectare”); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); întârziere (500); } Serial.println (); Serial.print ('conectat:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. bucla nulă () este o funcție care rulează din nou și din nou în buclă. În această funcție, îi spunem microcontrolerului, ce operațiuni trebuie efectuate și cum. Aici, datele sunt citite din Firebase și stocate în variabila numită stat . Dacă starea are valoarea „0” în ea, poziția servomotorului este setată la 8 grade. Dacă valoarea în starea variabilă este egală cu ‘1’, poziția servomotorului va fi setată la 55 de grade.

void loop () {state = Serial.println (Firebase.getFloat ('motor')); // citiți datele din Firebase // dacă starea este '0' motorul de curent continuu se va opri dacă (stare == '0') {myservo.write (8); // setați poziția întârzierii servomotorului (1000); // așteptați pentru a doua oară Serial.println ('Door Locked'); } else if (state == '1') {myservo.write (55); // setați o nouă poziție a întârzierii servomotorului (1000); // așteptați o secundă Serial.println ('Door UnLocked'); } // gestionează eroarea dacă (Firebase.failed ()) {Serial.print ('setare / număr eșuat:'); Serial.println (Firebase.error ()); întoarcere; } întârziere (1000);