Kako napraviti pametni sustav automatizacije kuće pomoću modula ESP32?

U ovom modernom dobu koncept kućne automatizacije raste velikom brzinom. Pametni sustavi instaliraju se na gotovo svakom mjestu. Sustavi pametne kuće koncept je u kojem se svim električnim uređajima ili uređajima upravlja jednim daljinskim upravljačem. U tim sustavima, većinu vremena, daljinski upravljač je mobilna aplikacija. Kako je android mobitel najčešći među ljudima, tako je android aplikacija najbolja opcija za upravljanje svim tim uređajima.



Kućna automatizacija

Dakle, u ovom ćemo projektu spojiti neke kućanske električne uređaje na relejni modul i upravljati njima putem ESP32 mikrokontrolera. Napravit ćemo firebase bazu podataka u stvarnom vremenu i povezati je iz android aplikacije. Ova aplikacija za Android poslat će podatke u oblak, a zatim će se poslati mikrokontroleru za uključivanje ili isključivanje električnog uređaja. Najbolje je to što možete imati potpunu kontrolu nad prebacivanjem vaših uređaja s bilo kojeg mjesta na svijetu. Za rad s android aplikacijom trebate samo internetsku vezu.



Kako kontrolirati kućanske uređaje putem WiFi-a?

Sustavi kućne automatizacije koji su već dostupni na tržištu vrlo su skupi. Ploču ESP32 možemo koristiti za povezivanje različitih kućanskih aparata i upravljanje njima pomoću Android aplikacije. To će biti vrlo jeftino i učinkovit način automatizacije kuće. Krenimo sada korak naprijed i započnite sa prikupljanjem informacija za početak projekta.



Korak 1: Prikupljanje komponenata

Najbolji pristup za početak bilo kojeg projekta je sastavljanje popisa komponenata i prolazak kroz kratku studiju tih komponenata, jer nitko neće htjeti ostati usred projekta samo zbog nedostajuće komponente. Popis komponenata koje ćemo koristiti u ovom projektu dan je u nastavku:



  • ESP32
  • Breadboard
  • Spajanje žica

Korak 2: Proučavanje komponenata

Sad kad znamo sažetak ovog projekta, pomaknimo se korak naprijed i prođite kroz kratku studiju rada glavnih komponenata koje ćemo koristiti.

ESP32 je ploča mikrokontrolera male snage i jeftina koja ima ugrađeni WiFi i Bluetooth modul u dvojnom modu. Ovu ploču mikrokontrolera stvorio je i razvio Espressif sustavi . Ova ploča ima ugrađena pojačala snage, pojačala s niskim primanjem, filtre i prekidače za antenu. Napaja se android podatkovnim kabelom i može pružiti do 3,3 V na izlazu. ESP32 izvršava TCP / IP, pune 802.11 b / g / n / e / I WLAN MAC konvencije, a posebno Wi-Fi Direct. To podrazumijeva da ESP 32 može adresirati velik dio WiFi usmjerivača vani kada se koristi u staničnom (klijentskom) načinu. Isto tako, može stvoriti pristupnu točku s punih 802.11 b / g / n / e / I. ESP32 ne podupire jednostavno najnoviji BLE Bluetooth 4.2, već dodatno pojačava sjajan Bluetooth. To u osnovi podrazumijeva da se može obratiti starim i novim Bluetooth telefonima / stolovima. Ako nemate ESP32 modul, možete koristiti i ESP8266 ili Node MCU. Te se ploče mogu koristiti za izvršavanje istog zadatka ako su povezane na WiFi.

ESP32



Relejni modul je sklopni uređaj. Radi u dva načina, Uobičajeno otvoreno (NE) i Normalno, redovno Zatvoreno (NC) . U NO načinu rada, krug je uvijek prekinut osim ako preko Arduina ne pošaljete VISOKI signal na relej. NC način brine obrnuto, krug je uvijek potpun ako ne uključite relejni modul. Obavezno spojite pozitivnu žicu vašeg električnog uređaja na relejni modul na način prikazan u nastavku.

Sastavljanje kruga modula releja

Korak 3: Blok dijagram

Blok dijagram

U gornjem blok dijagramu prikazan je tijek ovog projekta. Releji su povezani s kućnim električnim aparatima ili uređajima. Mobilna aplikacija će poslati Na ili ISKLJUČENO naredba za bazu podataka. Ovaj je oblak povezan s pločicom mikrokontrolera ESP32 putem WiFi-a. Da bismo uključili elektronički uređaj, u bazu podataka poslati ćemo '1', a za isključivanje '0' u bazu podataka. Mikrokontroler će tada dohvatiti ovu naredbu jer je također povezana s bazom podataka. Na temelju ove 0 ili 1, mikrokontroler će uključiti ili isključiti relejni modul što će u konačnici rezultirati uključivanjem električnih uređaja.

Dakle, ovdje, u ovom članku, upotrijebit ću dva relejna modula kako bih vam prikazao cijeli postupak. Ali možete povećati broj releja i dodati isti dio koda u svoj program ako želite upravljati većim brojem električnih kućanskih aparata.

Korak 4: Sastavljanje komponenata

Sad kad imamo jasnu viziju što želimo raditi u ovom projektu, ne gubimo više vremena i započnite s montažom komponenata.

  1. Uzmite pločicu i popravite u njemu mikrokontroler ESP32. Sada uzmite dva relejna modula i paralelno povežite Vcc i masu modula s Vinom i masom ploče mikrokontrolera ESP32. Spojite u-pin modula releja na pin34 i pin35 ploče ESP32. Vidjet ćete da su releji sada uključeni.
  2. Spojite kućanske uređaje na relejni modul. Provjerite odgovaraju li vaše veze s vezama prikazanim na slici u koraku 2.

Sad kad smo povezali hardverski dio našeg sustava. Razvit ćemo android aplikaciju koja će biti povezana s Firebase bazom podataka. Izradit ćemo bazu podataka i android aplikaciju u 2. dijelu ovog članka.

Korak 5: Početak rada s ESP32

Ako prije niste radili na Arduino IDE-u, ne brinite jer je korak po korak za postavljanje Arduino IDE-a prikazan u nastavku.

  1. Preuzmite najnoviju verziju Arduino IDE sa Arduino.
  2. Spojite svoju Arduino ploču s računalom i otvorite upravljačku ploču. Kliknite na Hardver i zvuk. Sada otvoreno Uređaji i pisač i pronađite priključak na koji je spojena vaša ploča. U mom slučaju jest COM14 ali je različito u različitim računalima.

    Pronalaženje luke

  3. Kliknite Datoteka, a zatim Postavke. Kopirajte sljedeću vezu u Dodatni URL upravitelja odbora. “ https://dl.espressif.com/dl/package_esp32_index.json '

    Postavke

  4. Sada, da bismo koristili ESP32 s Arduino IDE-om, moramo uvesti posebne knjižnice koje će nam omogućiti da narežemo kod na ESP32 i koristimo ga. ove su dvije knjižnice u prilogu na donjoj poveznici. Da biste uključili knjižnicu, idite na Skica> Uključi biblioteku> Dodaj ZIP biblioteku . Pojavit će se okvir. Pronađite mapu ZIP na računalu i kliknite U redu da biste uključili mape.

    Uključi biblioteku

  5. Sad idi Skica> Uključi biblioteku> Upravljanje knjižnicama.

    Upravljanje knjižnicama

  6. Otvorit će se izbornik. U traku za pretraživanje upišite Arduino JSON. Pojavit će se popis. Instalirati Arduino JSON Benoita Blanchona.

    Arduino JSON

  7. Sada kliknite na Alati. Pojavit će se padajući izbornik. Postavite ploču na ESP razvojni modul.

    Odbor za postavljanje

  8. Ponovno kliknite izbornik Alat i postavite priključak koji ste prije vidjeli na upravljačkoj ploči.

    Postavka porta

  9. Sada prenesite kôd koji je priložen u donjoj poveznici i kliknite gumb za prijenos da biste spalili kôd na ESP32 mikrokontroleru.

    Učitaj

Dakle, sada kada učitate kôd, može se dogoditi pogreška. Ovo je najčešća pogreška koja se može dogoditi ako koristite novu verziju Arduino IDE-a i Arduino JSON-a. Slijede pogreške koje se mogu vidjeti na ekranu.

U datoteci uključenoj iz C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, iz 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 je klasa iz ArduinoJsona 5. Pogledajte arduinojson.org/upgrade da biste saznali kako nadograditi svoj program na ArduinoJson verzija 6 StaticJsonBuffer jsonBuffer; ^ U datoteci uključenoj iz C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, iz 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 je klasa iz ArduinoJsona 5. Molimo pogledajte arduinojson.org/upgrade da biste saznali kako nadograditi svoj program na ArduinoJson verzija 6 vraća StaticJsonBuffer (). ParseObject (_data); ^ Pronađeno je više knjižnica za 'WiFi.h' Korišteno: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  libraries  WiFi Ne koristi se: C:  Programske datoteke ( x86)  Arduino  libraries  WiFi Korištenje knjižnice WiFi u verziji 1.0 u mapi: C:  Users  Pro  AppData  Local  Arduino15  Packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Korištenje knjižnice IOXhop_FirebaseESP32-master u mapi: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Korištenje knjižnice HTTPClient verzije 1.2 u mapi: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Korištenje knjižnice WiFiClientSecure u verziji 1.0 u mapi: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Korištenje knjižnice ArduinoJson na verzija 6.12.0 u mapi: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson status izlaza 1 Pogreška pri kompiliranju za modul ESP32 Dev.

Ne treba se brinuti jer te pogreške možemo ukloniti slijedeći nekoliko jednostavnih koraka. Te pogreške nastaju jer nova verzija Arduino JSON-a ima drugu klasu umjesto StaticJsonBuffer. Ovo je klasa JSON 5. Tako da ovu pogrešku možemo jednostavno ukloniti snižavanjem verzije Arduino JSON našeg Arduino IDE-a. Jednostavno idite na Skica> Uključi biblioteku> Upravljanje knjižnicama. Traziti Arduino JSON Benoita Blanchona koje ste već instalirali. Prvo ga deinstalirajte, a zatim postavite njegovu verziju na 5.13.5. Sada kada smo postavili staru verziju Arduino JSON-a, instalirajte je ponovo i ponovno kompajlirajte kôd. Ovaj put, vaš će se kod uspješno sastaviti.

Da biste preuzeli kôd, klik ovdje.

Korak 6: Razumijevanje kodeksa

Kôd ovog projekta vrlo je jednostavan i dobro komentiran. Ali ipak, kôd je ukratko objašnjen u nastavku.

1. U početku su uključene knjižnice tako da se ploča ESP32 može povezati s lokalnom WiFi vezom u kući ili uredu. Nakon toga definiraju se veza do vašeg firebase projekta i provjera autentičnosti vašeg firebase projekta. Tada se definiraju ime i lozinka vaše lokalne wifi veze kako bi se ESP32 mogao spojiti na Wifi. Neki pinovi ESP32 definirani su za spajanje na relejne module. i napokon je proglašena varijabla koja će pohraniti neke privremene podatke koji će doći iz firebase oblaka.

#include // uključi knjižnicu za povezivanje s lokalnom Wifi vezom #include // Uključi biblioteku za povezivanje s Firebase databse #define FIREBASE_HOST 'coma-patient.firebaseio.com' // uključi vezu vašeg firebase projekta #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5F9ANDR8WWZZFFE9DR8W8ZWEE '// Uključite provjeru autentičnosti vašeg firebase projekta #define WIFI_SSID' abcd '// naziv WiFi veze vašeg doma ili ureda #define WIFI_PASSWORD' abcd '// lozinka WiFi veze vašeg doma ili ureda int r1 = 34; // pin za spajanje releja 1 int r2 = 35; // pin za povezivanje releja 2 int temp; // variabe za prijenos podataka

2. void postavljanje () je funkcija u kojoj inicijaliziramo INPUT ili OUTPUT pinove. Ova funkcija također postavlja brzinu prijenosa pomoću Serial.begin () naredba. Brzina prijenosa je brzina komunikacije mikrokontrolera. Ovdje su dodani neki retci koda za povezivanje ESP32 s lokalnom wifi vezom. Ploča će se pokušati povezati s lokalnom wifi vezom i ispisat će 'veza'. u serijskom monitoru. Ispisat će “Connected” kada se veza uspostavi. Dakle, da biste to nadzirali, bolje je otvoriti serijski monitor i tamo provjeriti njegovo stanje.

void setup () {Serial.begin (115200); // postavljanje brzine prijenosa // povezivanje na wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('povezivanje'); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); kašnjenje (500); } Serial.println (); Serial.print ('povezano:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. petlja void () je funkcija koja se ponavlja u petlji. U ovu petlju napišemo kod koji mikrokontroleru govori koje zadatke treba izvršiti i kako. Dohvatili smo podatke svjetlo i AC iz baze podataka i pohranjena u dvije privremene varijable. Tada se primjenjuju četiri uvjeta za prebacivanje dvaju uređaja prema dohvaćenom 0 ili 1 iz baze podataka.

void loop () {// dobiti vrijednost temp1 = Serial.println (Firebase.getFloat ('light')); // dobivamo vrijednost za prebacivanje svjetla temp2 = Serial.println (Firebase.getFloat ('AC')); // dobiti vrijednost za prebacivanje odgode ventilatora (1000); if (temp1 == 1 && temp2 == 1) {// Uključivanje svjetla i ventilator digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Za uključivanje ventilatora i isključivanje svjetla digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Za isključivanje ventilatora i uključivanje svjetla digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Za isključivanje ventilatora i isključivanje svjetla digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Ovo je bio prvi dio “Kako napraviti sustav pametne kuće pomoću ESP32?”. Možete dodati više relejnih modula ako želite upravljati još nekim kućanskim aparatima, jedino što ćete trebati je pročitati podatke iz firebase-a i dodati još neke uvjete za prebacivanje. U sljedećem ću članku objasniti kako razviti android aplikaciju i Firebase bazu podataka. Objasnit ću korak po korak postupak povezivanja android aplikacije s firebaseom i slanja podataka.

Da biste prešli na sljedeći vodič Kliknite ovdje