Ako si vyrobiť inteligentný domáci automatizačný systém pomocou modulu ESP32?

V tejto modernej dobe koncept domácej automatizácie rastie veľkou rýchlosťou. Inteligentné systémy sa inštalujú takmer na každom mieste. Smart Home Systems je koncept, pri ktorom sú všetky elektrické spotrebiče alebo zariadenia ovládané pomocou jedného diaľkového ovládača. V týchto systémoch je diaľkové ovládanie väčšinou mobilnou aplikáciou. Pretože mobilný telefón s Androidom je medzi ľuďmi najbežnejší, aplikácia pre Android je najlepšou voľbou na ovládanie všetkých týchto zariadení.



Domáca automatizácia

V tomto projekte teda chystáme pripojiť niektoré domáce spotrebiče k modulu relé a ovládať ich cez mikrokontrolér ESP32. Vytvoríme firebase databázu v reálnom čase a pripojíme ju z aplikácie pre Android. Táto aplikácia pre Android odošle údaje do cloudu a potom sa odošlú do mikrokontroléra na zapnutie alebo vypnutie elektrického spotrebiča. Najlepšie na tom je, že môžete mať úplnú kontrolu nad spínaním svojich spotrebičov odkiaľkoľvek na svete. Na fungovanie aplikácie pre Android potrebujete iba internetové pripojenie.



Ako ovládať domáce spotrebiče pomocou WiFi?

Systémy domácej automatizácie, ktoré sú už na trhu k dispozícii, sú veľmi nákladné. Na pripojenie rôznych domácich spotrebičov a ich ovládanie pomocou aplikácie pre Android môžeme použiť dosku ESP32. To bude veľmi lacné a bude to efektívny spôsob automatizácie domu. Poďme teraz o krok vpred a začnime zhromažďovať informácie potrebné na začatie projektu.



Krok 1: Zhromaždenie komponentov

Najlepším spôsobom, ako zahájiť akýkoľvek projekt, je zostaviť zoznam komponentov a prejsť krátkou štúdiou týchto komponentov, pretože nikto nebude chcieť zostať uprostred projektu len kvôli chýbajúcemu komponentu. Zoznam komponentov, ktoré v tomto projekte použijeme, je uvedený nižšie:



  • ESP32
  • Nepál
  • Pripojenie drôtov

Krok 2: Štúdium komponentov

Teraz, keď už poznáme abstrakt tohto projektu, posuňme sa o krok vpred a urobme si krátku štúdiu fungovania hlavných komponentov, ktoré budeme používať.

ESP32 je doska mikrokontroléra s nízkou spotrebou a nízkymi nákladmi, ktorá má zabudované WiFi a Bluetooth modul v dvojitom režime. Túto dosku mikrokontroléra vytvoril a vyvinul Systémy Espressif . Táto doska má zabudované výkonové zosilňovače, zosilňovače nízkeho príjmu, filtre a anténne spínače. Je napájaný dátovým káblom Android a na výstupe môže poskytnúť až 3,3 V. Program ESP32 vykonáva protokol TCP / IP, úplnú konvenciu WLAN MAC 802.11 b / g / n / e / I a najmä Wi-Fi Direct. To znamená, že ESP 32 dokáže pri použití v režime stanice (klienta) adresovať veľkú časť WiFi smerovačov. Rovnako môže vytvoriť prístupový bod s úplným štandardom 802.11 b / g / n / e / I. ESP32 nie je len základom najnovšej BLE Bluetooth 4.2, ale navyše podporuje vynikajúce Bluetooth. V zásade to znamená, že dokáže osloviť staré aj nové telefóny / stoly Bluetooth. Ak nemáte modul ESP32, môžete tiež použiť ESP8266 alebo Node MCU. Tieto dosky možno použiť na vykonávanie rovnakej úlohy, ak sú pripojené k sieti WiFi.

ESP32



Reléový modul je spínacie zariadenie. Funguje v dvoch režimoch, Normálne otvorený (NO) a Normálne Zatvorené (NC) . V režime NO je obvod vždy prerušený, pokiaľ nepošlete HIGH signál do relé cez Arduino. Režim NC sa zhoršuje naopak, Obvod je vždy dokončený, pokiaľ nezapnete reléový modul. Uistite sa, že ste pripojili kladný vodič elektrického spotrebiča k reléovému modulu spôsobom, ktorý je uvedený nižšie.

Zostavenie obvodu reléového modulu

Krok 3: Bloková schéma

Bloková schéma

Vo vyššie uvedenej blokovej schéme je znázornený priebeh tohto projektu. Relé sú pripojené k elektrickým spotrebičom alebo zariadeniam v domácnosti. Mobilná aplikácia odošle On alebo VYPNUTÉ príkaz do databázy. Tento cloud je pripojený k doske mikrokontroléra ESP32 cez WiFi. Pre zapnutie elektronického prístroja pošleme do databázy „1“ a na vypnutie „0“ do databázy. Tento príkaz potom získa mikrokontrolér, pretože je tiež pripojený k databáze. Na základe tejto 0 alebo 1 mikrokontrolér zapne alebo vypne reléový modul, čo nakoniec spôsobí zapnutie elektrických spotrebičov.

Takže tu, v tomto článku, použijem dva reléové moduly, aby som vám ukázal celý postup. Môžete však zvýšiť počet relé a pridať do programu rovnaký kus kódu, ak chcete ovládať väčší počet domácich elektrických spotrebičov.

Krok 4: Zostavenie komponentov

Keď už máme jasnú predstavu o tom, čo chceme v tomto projekte robiť, nestrácajme už viac času a začnime s montážou komponentov.

  1. Vezmite nepájivú dosku a zafixujte do nej mikrokontrolér ESP32. Teraz vezmite dva reléové moduly a paralelne pripojte Vcc a uzemnenie modulov k Vin a zemi na doske mikrokontroléra ESP32. Pripojte v pinoch reléových modulov na pin34 a pin35 dosky ESP32. Uvidíte, že relé sú teraz zapnuté.
  2. Pripojte domáce spotrebiče k reléovému modulu. Skontrolujte, či sa vaše pripojenia zhodujú s pripojeniami zobrazenými na obrázku v kroku 2.

Teraz, keď sme pripájali hardvérovú časť nášho systému. Vyvinieme aplikáciu pre Android, ktorá bude prepojená s databázou firebase. Databázu a aplikáciu pre Android urobíme v 2. časti tohto článku.

Krok 5: Začíname s ESP32

Ak ste na rozhraní Arduino IDE doteraz nepracovali, nemusíte sa obávať, pretože nižšie je uvedený postup nastavenia Arduino IDE.

  1. Stiahnite si najnovšiu verziu Arduino IDE z Arduino.
  2. Pripojte dosku Arduino k počítaču a otvorte ovládací panel. Kliknite na Hardvér a zvuk. Teraz otvorené Zariadenia a tlačiareň a nájdite port, ku ktorému je pripojená vaša doska. V mojom prípade to tak je COM14 ale v rôznych počítačoch je to iné.

    Hľadá sa prístav

  3. Kliknite na Súbor a potom na Predvoľby. Skopírujte nasledujúci odkaz do priečinka URL ďalšieho správcu rady. „ https://dl.espressif.com/dl/package_esp32_index.json '

    Predvoľby

  4. Teraz, aby sme mohli používať ESP32 s Arduino IDE, musíme importovať špeciálne knižnice, ktoré nám umožnia napáliť kód na ESP32 a použiť ho. tieto dve knižnice sú pripojené k odkazu uvedenému nižšie. Zahrnúť knižnicu, choďte Skica> Zahrnúť knižnicu> Pridať knižnicu ZIP . Zobrazí sa rámček. Vyhľadajte priečinok ZIP v počítači a kliknutím na tlačidlo OK ich zahrňte.

    Zahrnúť knižnicu

  5. Teraz choď Skica> Zahrnúť knižnicu> Správa knižníc.

    Spravovať knižnice

  6. Otvorí sa ponuka. Do vyhľadávacieho panela zadajte text Arduino JSON. Zobrazí sa zoznam. Inštalácia Arduino JSON od Benoita Blanchona.

    Arduino JSON

  7. Teraz kliknite na ikonu Náradie. Zobrazí sa rozbaľovacia ponuka. Nastavte dosku na Modul ESP Dev.

    Nastavovacia doska

  8. Znova kliknite na ponuku Nástroj a nastavte port, ktorý ste predtým pozorovali na ovládacom paneli.

    Nastavuje sa port

  9. Teraz nahrajte kód, ktorý je uvedený v nasledujúcom odkaze, a kliknutím na tlačidlo nahrávania vypálte kód na mikrokontrolér ESP32.

    Nahrať

Takže teraz, keď budete nahrávať kód, môže dôjsť k chybe. Toto je najbežnejšia chyba, ktorá sa môže vyskytnúť, ak používate novú verziu Arduino IDE a Arduino JSON. Nasledujú chyby, ktoré sa môžu zobraziť na obrazovke.

V súbore zahrnutom z C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, z C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14:11: chyba: StaticJsonBuffer je trieda od ArduinoJson 5. Informácie o tom, ako upgradovať program na ArduinoJson, nájdete na arduinojson.org/upgrade. verzia 6 StaticJsonBuffer jsonBuffer; ^ V súbore zahrnutom z C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, z C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: chyba: StaticJsonBuffer je trieda od ArduinoJson 5. Informácie o tom, ako upgradovať program na, nájdete na arduinojson.org/upgrade ArduinoJson verzia 6 vráti StaticJsonBuffer (). ParseObject (_data); ^ Pre „WiFi.h“ bolo nájdených viac knižníc Použité: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Nepoužíva sa: C:  Program Files ( x86)  Arduino  libraries  WiFi Používanie knižnice WiFi vo verzii 1.0 v priečinku: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Používanie knižnice IOXhop_FirebaseESP32-master v priečinku: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Používanie knižnice HTTPClient vo verzii 1.2 v priečinku: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Používanie knižnice WiFiClientSecure vo verzii 1.0 v priečinku: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Používanie knižnice ArduinoJson na adrese verzia 6.12.0 v priečinku: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson stav ukončenia 1 Chyba kompilácie pre modul ESP32 Dev Module.

Niet sa čoho obávať, pretože tieto chyby môžeme eliminovať vykonaním niekoľkých jednoduchých krokov. Tieto chyby vznikajú, pretože nová verzia Arduino JSON má namiesto nej inú triedu StaticJsonBuffer. Toto je trieda JSON 5. Takže túto chybu môžeme jednoducho eliminovať znížením verzie Arduino JSON nášho Arduino IDE. Jednoducho choďte na Skica> Zahrnúť knižnicu> Správa knižníc. Hľadať Arduino JSON od Benoita Blanchona ktoré ste predtým nainštalovali. Najskôr ho odinštalujte a potom nastavte jeho verziu na 5.13.5. Teraz, keď sme nastavili starú verziu Arduino JSON, znova ju nainštalujte a kód znova skompilujte. Váš kód sa tentokrát úspešne skompiluje.

Ak chcete stiahnuť kód, kliknite tu.

Krok 6: Porozumenie Kódexu

Kód tohto projektu je veľmi jednoduchý a dobre komentovaný. Avšak kód je stručne vysvetlený nižšie.

1. Na začiatku sú knižnice, aby bolo možné dosku ESP32 pripojiť k miestnemu WiFi pripojeniu v domácnosti alebo kancelárii. Potom sa definuje odkaz na váš projekt Firebase a autentifikácia vášho projektu Firebase. Potom sa definuje názov a heslo miestneho pripojenia wifi, aby sa mohol ESP32 pripojiť k sieti Wi-Fi. Niektoré piny ESP32 sú definované na pripojenie k reléovým modulom. a nakoniec sa deklaruje premenná, ktorá uloží dočasné údaje, ktoré pochádzajú z cloudu firebase.

#include // zahrnúť knižnicu na pripojenie k miestnemu pripojeniu Wifi #include // zahrnúť knižnicu na pripojenie k databáze Firebase #define FIREBASE_HOST 'coma-patient.firebaseio.com' // zahrnúť odkaz na váš projekt firebase #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73m81073 '// Zahrňte autentifikáciu vášho projektu firebase #define WIFI_SSID' abcd '// názov WiFi pripojenia vášho domova alebo kancelárie #define WIFI_PASSWORD' abcd '// heslo WiFi pripojenia vášho domova alebo kancelárie int r1 = 34; // pin na pripojenie relé 1 int r2 = 35; // pin na pripojenie relé 2 int teplota; // variabe na nosenie dat

2. nastavenie neplatnosti () je funkcia, pri ktorej inicializujeme piny INPUT alebo OUTPUT. Táto funkcia tiež nastavuje prenosovú rýchlosť pomocou Serial.begin () príkaz. Prenosová rýchlosť je komunikačná rýchlosť mikrokontroléra. Tu sa pridávajú niektoré riadky kódu na pripojenie ESP32 k miestnemu wifi pripojeniu. Doska sa pokúsi pripojiť k miestnemu wifi pripojeniu a vytlačí „pripojenie“. v sériovom monitore. Po nadviazaní spojenia sa vytlačí hlásenie „Pripojené“. Aby ste to mohli monitorovať, je lepšie otvoriť sériový monitor a skontrolovať jeho prítomnosť.

void setup () {Serial.begin (115200); // nastavenie prenosovej rýchlosti // pripojenie na wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println („pripája sa“); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); oneskorenie (500); } Serial.println (); Serial.print ('pripojený:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. neplatná slučka () je funkcia, ktorá beží opakovane v slučke. V tejto slučke napíšeme kód, ktorý informuje dosku mikrokontroléra, aké úlohy a ako majú vykonávať. Načítali sme údaje svetlo a AC z databázy a uložené v dvoch dočasných premenných. Potom sa na prepnutie dvoch prístrojov podľa načítanej 0 alebo 1 z databázy použijú štyri podmienky.

void loop () {// získať hodnotu temp1 = Serial.println (Firebase.getFloat ('light')); // získať hodnotu pre switcching light temp2 = Serial.println (Firebase.getFloat ('AC')); // získa hodnotu pre prepínanie oneskorenia ventilátora (1000); if (temp1 == 1 && temp2 == 1) {// Zapnutie svetla a ventilátora digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Zapnutie ventilátora a vypnutie svetla digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Vypnutie ventilátora a zapnutie svetla digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Vypnutie ventilátora a vypnutie svetla digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Toto bola prvá časť z „Ako vyrobiť inteligentný domáci systém pomocou ESP32?“. Ak chcete ovládať viac domácich spotrebičov, môžete pridať viac reléových modulov. Jediné, čo musíte urobiť, je načítať údaje z firebase a pridať ďalšie podmienky pre prepínanie. V nasledujúcom článku vysvetlím, ako vyvíjať aplikáciu pre Android a databázu Firebase. Vysvetlím postup krok za krokom, ako pripojiť aplikáciu pre Android k firebase a odoslať do nej dáta.

Prejdete na ďalší tutoriál Kliknite tu