Cum se face un sistem de automatizare inteligent la domiciliu utilizând modulul ESP32?

În această eră modernă, conceptul de automatizare a locuinței crește cu mare viteză. Sisteme inteligente sunt instalate în aproape toate locurile. Smart Home Systems este un concept în care toate aparatele electrice sau dispozitivele sunt controlate folosind o singură telecomandă. În aceste sisteme, de cele mai multe ori, telecomanda este o aplicație mobilă. Deoarece un telefon mobil Android este cel mai frecvent în rândul oamenilor, deci o aplicație Android este cea mai bună opțiune pentru a controla toate aceste dispozitive.



Domotică

Deci, în acest proiect, vom conecta unele dintre aparatele electrice ale casei la modulul Relay și îl vom controla prin microcontrolerul ESP32. Vom crea o bază de date în timp real Firebase și o vom conecta din aplicația Android. Această aplicație Android va trimite datele în cloud și apoi va fi trimisă la microcontroler pentru a porni sau opri aparatul electric. Cea mai bună parte este că puteți avea control deplin asupra comutării aparatelor dvs. de oriunde din lume. Ai nevoie doar de o conexiune la internet pentru a opera aplicația Android.



Cum să controlați electrocasnice prin WiFi?

Sistemele de automatizare la domiciliu care sunt deja disponibile pe piață sunt foarte costisitoare. Putem folosi o placă ESP32 pentru a conecta diferite aparate de uz casnic și a le controla folosind o aplicație Android. Acest lucru va avea un cost foarte redus și un mod eficient de a automatiza casa. Acum permiteți-ne să facem un pas înainte și să începem să colectăm informații pentru a începe proiectul.



Pasul 1: Colectarea componentelor

Cea mai bună abordare pentru a începe orice proiect este de a face o listă de componente și de a parcurge un scurt studiu al acestor componente, deoarece nimeni nu va dori să rămână în mijlocul unui proiect doar din cauza unei componente lipsă. O listă a componentelor pe care le vom folosi în acest proiect este prezentată mai jos:



  • ESP32
  • Breadboard
  • Conectarea firelor

Pasul 2: Studierea componentelor

Acum, pe măsură ce cunoaștem rezumatul acestui proiect, să mergem cu un pas înainte și să parcurgem un scurt studiu al funcționării principalelor componente pe care le vom folosi.

ESP32 este o placă de microcontroler cu consum redus de energie și cost redus, care are un WiFi încorporat și un modul Bluetooth dual-mode. Această placă de microcontroler este creată și dezvoltată de Sisteme Espressif . Această placă are amplificatoare de putere încorporate, amplificatoare de primire reduse, filtre și comutatoare de antenă. Este alimentat de un cablu de date Android și poate furniza până la 3,3 V la ieșire. ESP32 execută TCP / IP, convenția completă 802.11 b / g / n / e / I WLAN MAC și în special Wi-Fi Direct. Acest lucru înseamnă că ESP 32 poate adresa o mare parte din routerele WiFi de acolo, atunci când este utilizat în modul stație (client). La fel, poate crea un punct de acces cu 802.11 b / g / n / e / I complet. ESP32 nu se bazează pur și simplu pe cel mai recent BLE Bluetooth 4.2, ci susține în plus Bluetooth excelent. Aceasta implică în mod fundamental că poate adresa telefoane / mese Bluetooth vechi și noi. Dacă nu aveți un modul ESP32, puteți utiliza și ESP8266 sau un MCU Node. Aceste placi pot fi folosite pentru a efectua aceeași sarcină dacă sunt conectate la WiFi.

ESP32



Un modul de releu este un dispozitiv de comutare. Funcționează în două moduri, Deschis în mod normal (NU) și În mod normal Închis (NC) . În modul NO, circuitul este întotdeauna rupt, cu excepția cazului în care trimiteți un semnal HIGH la releu prin Arduino. Modul NC se înrăutățește invers, circuitul este întotdeauna complet, cu excepția cazului în care porniți modulul releu. Asigurați-vă că conectați firul pozitiv al aparatului dvs. electric la modulul de releu în modul prezentat mai jos.

Asamblarea circuitului modulului de releu

Pasul 3: Diagrama bloc

Diagramă bloc

În diagrama bloc de mai sus, este prezentat fluxul acestui proiect. Releele sunt conectate la aparatele sau dispozitivele electrice ale casei. O aplicație mobilă va trimite un Pe sau OPRIT comanda către baza de date. Acest cloud este conectat la placa de microcontroler ESP32 prin WiFi. Pentru a porni dispozitivul electronic, vom trimite un „1” în baza de date și pentru a-l opri vom trimite un „0” în baza de date. Această comandă va fi apoi preluată de microcontroler deoarece este conectată și la baza de date. Pe baza acestui 0 sau 1, microcontrolerul va porni sau opri modulul releului, ceea ce va duce în cele din urmă la comutarea aparatelor electrice.

Deci, aici, în acest articol, voi folosi două module de releu pentru a vă arăta întreaga procedură. Dar puteți crește numărul de relee și puteți adăuga aceeași bucată de cod în programul dvs. dacă doriți să controlați un număr mai mare de electrocasnice.

Pasul 4: Asamblarea componentelor

Acum, având o viziune clară asupra a ceea ce vrem să facem în acest proiect, să nu mai pierdem timpul și să începem să asamblăm componentele.

  1. Luați o placă de calcul și fixați microcontrolerul ESP32 în el. Acum, luați cele două module de releu și conectați Vcc și masă modulelor la Vin și la masă a plăcii de microcontroler ESP32 în paralel. Conectați in-pin a modulelor de releu la pin34 și pin35 ale plăcii ESP32. Veți vedea că releele sunt pornite.
  2. Conectați aparatele electrocasnice la modulul de releu. Asigurați-vă că conexiunile dvs. se potrivesc cu conexiunile prezentate în figura din Pasul 2.

Acum, când am conectat partea hardware a sistemului nostru. Vom dezvolta o aplicație Android care va fi conectată la baza de date firebase. Vom realiza baza de date și aplicația Android în partea 2 a acestui articol.

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: Înțelegerea codului

Codul acestui proiect este foarte simplu și bine comentat. Dar, totuși, codul este explicat pe scurt mai jos.

1. La început, bibliotecile sunt incluse astfel încât placa ESP32 să poată fi conectată la conexiunea WiFi locală de acasă sau de la birou. După aceasta, sunt definite o legătură către proiectul dvs. Firebase și autentificarea proiectului dvs. Firebase. Apoi numele și parola conexiunii WiFi locale sunt definite astfel încât ESP32 să poată fi conectat la Wifi. Unii pini ai ESP32 sunt definiți pentru a fi conectați la modulele de releu. și în cele din urmă este declarată o variabilă care va stoca unele date temporare care vor proveni din cloudul firebase.

. '// Includeți autentificarea proiectului dvs. Firebase #define WIFI_SSID' abcd '// numele conexiunii WiFi a casei sau biroului dvs. #define WIFI_PASSWORD' abcd '// parola conexiunii WiFi a casei sau a biroului int r1 = 34; // pin pentru conectarea releului 1 int r2 = 35; // pin pentru conectarea releului 2 int temp; // variabe to carry data

2. configurare nulă () este o funcție în care inițializăm pinii INPUT sau OUTPUT. Această funcție stabilește, de asemenea, rata baud utilizând Serial.begin () comanda. Baud Rate este viteza de comunicare a microcontrolerului. Unele linii de cod sunt adăugate aici pentru a conecta ESP32 la conexiunea wifi locală. Placa va încerca să se conecteze la conexiunea WiFi locală și va imprima „conexiunea”. în monitorul serial. Se va imprima „Conectat” când conexiunea este stabilită. Deci, pentru a monitoriza acest lucru, este mai bine să deschideți monitorul serial și să verificați stația acestuia acolo.

void setup () {Serial.begin (115200); // setarea ratei de transmisie // 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ă în mod repetat într-o buclă. În această buclă, scriem un cod care spune plăcii de microcontroler ce sarcini să efectueze și cum. Am preluat datele împotriva ușoară și AC din baza de date și stocate în cele două variabile temporare. Apoi sunt aplicate patru condiții pentru a comuta cele două aparate în funcție de 0 sau 1 preluat din baza de date.

void loop () {// get value temp1 = Serial.println (Firebase.getFloat ('light')); // obțineți valoarea pentru comutarea luminii temp2 = Serial.println (Firebase.getFloat ('AC')); // obțineți valoarea pentru comutarea întârzierii ventilatorului (1000); if (temp1 == 1 && temp2 == 1) {// Pentru a aprinde lumina și a ventila digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Pentru a porni ventilatorul și a opri lumina digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Pentru a opri ventilatorul și a porni lumina digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Pentru a opri ventilatorul și a opri lumina digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Aceasta a fost prima parte a „Cum să faci un sistem Smart Home folosind ESP32?”. Puteți adăuga mai multe module de releu dacă doriți să controlați mai multe electrocasnice, singurul lucru pe care va trebui să-l faceți este să citiți datele de pe baza de foc și să adăugați câteva condiții pentru comutare. În articolul următor, voi explica cum să dezvoltați o aplicație Android și o bază de date Firebase. Voi explica procedura pas cu pas pentru conectarea aplicației Android la Firebase și trimiterea de date către aceasta.

Pentru a accesa următorul tutorial Click aici