Kako narediti sistem pametne avtomatizacije doma z uporabo modula ESP32?

V tej moderni dobi koncept avtomatizacije stanovanj raste zelo hitro. Pametni sistemi so nameščeni skorajda povsod. Sistemi pametnega doma so koncept, pri katerem se vse električne naprave ali naprave krmilijo z enim samim daljinskim upravljalnikom. V teh sistemih je večina časa daljinski upravljalnik mobilna aplikacija. Ker je mobilni telefon android najpogostejši med ljudmi, je aplikacija Android najboljša možnost za nadzor vseh teh naprav.



Avtomatizacija doma

V tem projektu bomo nekatere domače električne naprave povezali z modulom Rele in ga upravljali prek mikrokrmilnika ESP32. Izdelali bomo sprotno zbirko podatkov Firebase in jo povezali iz aplikacije za Android. Ta aplikacija za Android pošlje podatke v oblak, nato pa jih pošlje mikrokrmilniku za vklop ali izklop električne naprave. Najboljše je, da imate popoln nadzor nad preklapljanjem vaših naprav od koder koli na svetu. Za upravljanje aplikacije Android potrebujete samo internetno povezavo.



Kako nadzirati gospodinjske aparate prek WiFi-ja?

Sistemi za avtomatizacijo doma, ki so že na voljo na trgu, so zelo dragi. Na plošči ESP32 lahko povežemo različne gospodinjske aparate in jih nadziramo z aplikacijo Android. To bo zelo poceni in učinkovit način avtomatizacije hiše. Zdaj pa stopimo korak naprej in začnimo zbirati informacije za začetek projekta.



1. korak: Zbiranje komponent

Najboljši pristop za začetek katerega koli projekta je, da sestavite seznam komponent in si ogledate kratko študijo teh komponent, ker nihče ne bo želel ostati sredi projekta samo zaradi manjkajoče komponente. Seznam komponent, ki jih bomo uporabili v tem projektu, je spodaj:



  • ESP32
  • Breadboard
  • Povezovanje žic

2. korak: Preučevanje komponent

Zdaj, ko poznamo povzetek tega projekta, pojdimo korak naprej in si oglejmo kratko študijo delovanja glavnih komponent, ki jih bomo uporabili.

ESP32 je nizkoenergijska in poceni mikrokrmilna plošča, ki ima vgrajen WiFi in dvojni modul Bluetooth. To ploščo mikrokrmilnika je ustvaril in razvil Espressif sistemi . Ta plošča ima vgrajene ojačevalnike moči, nizko sprejemne ojačevalnike, filtre in antenska stikala. Poganja ga androidov podatkovni kabel in lahko na izhodu zagotavlja do 3,3 V. ESP32 izvaja TCP / IP, popolno 802.11 b / g / n / e / I WLAN MAC konvencijo in Wi-Fi Direct. To pomeni, da lahko ESP 32 naslovi velik del WiFi usmerjevalnikov, kadar se uporablja v načinu postaje (odjemalec). Prav tako lahko ustvari dostopno točko s polnimi 802.11 b / g / n / e / I. ESP32 ne podpira zgolj najnovejšega BLE Bluetooth 4.2, ampak tudi krepi odličen Bluetooth. V bistvu pomeni, da lahko naslavlja stare in nove telefone / mize Bluetooth. Če nimate modula ESP32, lahko uporabite tudi ESP8266 ali Node MCU. Te plošče lahko uporabite za isto nalogo, če so povezane v WiFi.

ESP32



Relejni modul je stikalna naprava. Deluje v dveh načinih, Običajno odprto (NE) in Običajno Zaprto (NC) . V načinu NO je vezje vedno prekinjeno, razen če prek Arduina na rele pošljete VISOK signal. NC način skrbi, nasprotno, vezje je vedno popolno, razen če vklopite relejni modul. Prepričajte se, da ste pozitivno žico vašega električnega aparata povezali z relejskim modulom na spodnji način.

Sestavljanje vezja modula releja

3. korak: Blok diagram

Blok diagram

V zgornjem blokovnem diagramu je prikazan potek tega projekta. Releji so povezani z domačimi električnimi napravami ali napravami. Mobilna aplikacija bo poslala Vklopljeno ali IZKLOPLJENO ukaz v bazo podatkov. Ta oblak je prek Wi-Fi povezan z ploščo mikrokrmilnika ESP32. Če želite vklopiti elektronsko napravo, bomo v zbirko podatkov poslali »1«, za izklop pa v bazo podatkov »0«. Ta ukaz bo nato pridobil mikrokrmilnik, ker je tudi povezan z bazo podatkov. Na podlagi tega 0 ali 1 bo mikrokrmilnik vklopil ali izklopil relejni modul, kar bo na koncu povzročilo vklop električnih naprav.

Torej, v tem članku bom uporabil dva relejna modula, da vam pokažem celoten postopek. Lahko pa povečate število relejev in dodate isti del kode v svoj program, če želite nadzorovati večje število električnih gospodinjskih aparatov.

4. korak: Sestavljanje komponent

Zdaj, ko imamo jasno vizijo, kaj želimo narediti v tem projektu, ne izgubljajmo več časa in se lotimo sestavljanja komponent.

  1. Vzemite desko in vanj pritrdite mikrokrmilnik ESP32. Zdaj vzemite dva relejna modula in vzporedno priključite Vcc in ozemljitev modulov na Vin in ozemljitev plošče mikrokrmilnika ESP32. Povežite v-pin relejskih modulov na pin34 in pin35 plošče ESP32. Videli boste, da so releji zdaj vklopljeni.
  2. Gospodinjske aparate priključite na relejni modul. Prepričajte se, da se vaše povezave ujemajo s povezavami, prikazanimi na sliki v 2. koraku.

Zdaj, ko smo povezali strojni del našega sistema. Razvili bomo aplikacijo za android, ki bo povezana z zbirko podatkov firebase. Zbirko podatkov in aplikacijo za android bomo izdelali v 2. delu tega članka.

5. korak: Začetek uporabe ESP32

Če še niste delali na Arduino IDE, ne skrbite, ker je spodaj prikazan korak za korakom za nastavitev Arduino IDE.

  1. Prenesite najnovejšo različico Arduino IDE iz Arduino.
  2. Povežite svojo ploščo Arduino z računalnikom in odprite nadzorno ploščo. Kliknite na Strojna oprema in zvok. Zdaj odprta Naprave in tiskalnik in poiščite vrata, na katera je priključena vaša plošča. V mojem primeru je COM14 v različnih računalnikih pa je drugače.

    Iskanje pristanišča

  3. Kliknite Datoteka in nato Nastavitve. Kopirajte naslednjo povezavo v URL dodatnega upravitelja odbora. “ https://dl.espressif.com/dl/package_esp32_index.json '

    Preference

  4. Zdaj moramo za uporabo ESP32 z Arduino IDE uvoziti posebne knjižnice, ki nam bodo omogočile zapisovanje kode na ESP32 in njeno uporabo. ti knjižnici sta priloženi v spodnji povezavi. Če želite vključiti knjižnico, pojdite na Skica> Vključi knjižnico> Dodaj knjižnico ZIP . Pojavilo se bo okno. V računalniku poiščite mapo ZIP in kliknite V redu, da vključite mape.

    Vključi knjižnico

  5. Zdaj pa pojdi Skica> Vključi knjižnico> Upravljanje knjižnic.

    Upravljanje knjižnic

  6. Odpre se meni. V iskalno vrstico vnesite Arduino JSON. Pojavil se bo seznam. Namestite Arduino JSON, avtor Benoit Blanchon.

    Arduino JSON

  7. Zdaj kliknite na Orodja. Prikaže se spustni meni. Nastavite ploščo na ESP Dev modul.

    Nastavitvena plošča

  8. Ponovno kliknite meni Orodje in nastavite vrata, ki ste jih že opazili na nadzorni plošči.

    Nastavitev vrat

  9. Zdaj naložite kodo, ki je priložena spodnji povezavi, in kliknite gumb za prenos, da zapišete kodo na mikrokrmilnik ESP32.

    Naloži

Torej, ko boste naložili kodo, lahko pride do napake. To je najpogostejša napaka, ki se lahko pojavi, če uporabljate novo različico Arduino IDE in Arduino JSON. Sledijo napake, ki jih lahko vidite na zaslonu.

V datoteki, vključeni 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 razred iz ArduinoJson 5. Če želite izvedeti, kako nadgradite svoj program na ArduinoJson, glejte arduinojson.org/upgrade različica 6 StaticJsonBuffer jsonBuffer; ^ V datoteki 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 razred iz ArduinoJson 5. Glejte arduinojson.org/upgrade, če želite izvedeti, kako nadgradite svoj program na ArduinoJson različica 6 vrne StaticJsonBuffer (). ParseObject (_data); ^ Za 'WiFi.h' je bilo najdenih več knjižnic. Uporabljeno: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  knjižnice  WiFi Ni uporabljeno: C:  Programske datoteke ( x86)  Arduino  libraries  WiFi Uporaba knjižnice WiFi v različici 1.0 v mapi: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  libraries  WiFi Uporaba knjižnice IOXhop_FirebaseESP32-master v mapi: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Uporaba knjižnice HTTPClient različice 1.2 v mapi: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Uporaba knjižnice WiFiClientSecure v različici 1.0 v mapi: C:  Users  Pro  AppData  Local  Arduino15  Packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Uporaba knjižnice ArduinoJson različica 6.12.0 v mapi: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson status izstopa 1 Napaka pri prevajanju za modul ESP32 Dev.

Skrbeti ni treba, ker lahko te napake odpravimo z nekaj preprostimi koraki. Te napake nastanejo, ker ima nova različica Arduino JSON namesto drugega razred StaticJsonBuffer. To je razred JSON 5. Torej lahko to napako preprosto odpravimo tako, da znižamo različico Arduino JSON našega Arduino IDE. Preprosto pojdite na Skica> Vključi knjižnico> Upravljanje knjižnic. Išči Arduino JSON, avtor Benoit Blanchon ki ste ga že namestili. Najprej ga odstranite in nato nastavite njegovo različico na 5.13.5. Zdaj, ko smo nastavili staro različico Arduino JSON, jo znova namestite in ponovno prevedite kodo. Tokrat bo vaša koda uspešno prevedena.

Če želite prenesti kodo, kliknite tukaj.

6. korak: Razumevanje kodeksa

Koda tega projekta je zelo preprosta in dobro komentirana. Toda kljub temu je koda na kratko razložena spodaj.

1. Na začetku so vključene knjižnice, tako da je ploščo ESP32 mogoče povezati z lokalno povezavo WiFi v domu ali pisarni. Po tem se določita povezava do vašega projekta firebase in preverjanje pristnosti vašega projekta firebase. Nato sta definirana ime in geslo vaše lokalne povezave wifi, tako da bi lahko bil ESP32 povezan z omrežjem Wifi. Nekateri zatiči ESP32 so določeni za povezavo z relejskimi moduli. in nazadnje je razglašena spremenljivka, ki bo shranila nekaj začasnih podatkov, ki bodo prišli iz Firebase oblaka.

#include // vključi knjižnico za povezavo z lokalno povezavo Wifi #include // Vključi knjižnico za povezavo z Firebase databse #define FIREBASE_HOST 'coma-patient.firebaseio.com' // vključi povezavo do svojega projekta firebase #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5F9ANDDR5FAN9DR8FWE '// Vključi preverjanje pristnosti vašega projekta firebase #define WIFI_SSID' abcd '// ime povezave WiFi vašega doma ali pisarne #define WIFI_PASSWORD' abcd '// geslo povezave WiFi vašega doma ali pisarne int r1 = 34; // zatič za priključitev releja 1 int r2 = 35; // pin za povezavo releja 2 int temp; // variabe za prenos podatkov

2. void setup () je funkcija, pri kateri inicializiramo nožice VHOD ali IZHOD. Ta funkcija z uporabo nastavi tudi hitrost prenosa Serial.begin () ukaz. Hitrost prenosa je hitrost komunikacije mikrokrmilnika. Tukaj je dodanih nekaj vrstic kode za povezavo ESP32 z lokalno wifi povezavo. Plošča se bo poskušala povezati z lokalno wifi povezavo in bo natisnila “connection”. v serijskem monitorju. Ko bo povezava vzpostavljena, se bo natisnilo “Connected”. Če želite to spremljati, je bolje odpreti serijski monitor in tam preveriti njegovo stanje.

void setup () {Serial.begin (115200); // nastavitev hitrosti prenosa // povezava z wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('povezovanje'); medtem ko (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); zamuda (500); } Serial.println (); Serial.print ('povezan:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. void loop () je funkcija, ki se večkrat izvaja v zanki. V to zanko napišemo kodo, ki mikrokrmilniški plošči pove, katere naloge naj izvaja in kako. Podatke smo pridobili svetloba in AC iz baze podatkov in shranjena v dveh začasnih spremenljivkah. Nato se uporabijo štirje pogoji za preklop obeh naprav v skladu z 0 ali 1 iz baze podatkov.

void loop () {// dobimo vrednost temp1 = Serial.println (Firebase.getFloat ('light')); // dobimo vrednost za preklop svetlobe temp2 = Serial.println (Firebase.getFloat ('AC')); // dobimo vrednost za preklop zakasnitve ventilatorja (1000); if (temp1 == 1 && temp2 == 1) {// Vklop luči in ventilatorja digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Vklop ventilatorja in izklop luči digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Za izklop ventilatorja in vklop svetlobe digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Za izklop ventilatorja in izklop svetlobe digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

To je bil prvi del “Kako narediti sistem pametnega doma z uporabo ESP32?”. Če želite nadzirati še nekaj gospodinjskih aparatov, lahko dodate več relejnih modulov. Edino, kar boste morali storiti, je prebrati podatke iz ognjišča in dodati še nekaj pogojev za preklop. V naslednjem članku bom razložil, kako razviti aplikacijo za Android in bazo podatkov Firebase. Pojasnil bom postopek po korakih, kako povezati aplikacijo android z firebaseom in ji poslati podatke.

Če želite iti na naslednjo vadnico Klikni tukaj