Nadzor peči s pametnega telefona s pomočjo Wi-Fi

V sodobnem svetu lahko, če se ozremo naokoli, vidimo, da je vse, kar vključuje elektroniko, do neke mere avtomatizirano. Danes so zelo pogosti sistemi za avtomatizacijo stanovanj ali pametni domovi. Z uporabo teh sistemov je mogoče različne gospodinjske aparate avtomatizirati z uporabo mobilne aplikacije. Toda večina teh sistemov ne vključuje ničesar, kar bi avtomatiziralo vaš plinski štedilnik. V tem članku bomo razvili sistem, ki vam bo omogočil nadzor plinskega štedilnika z uporabo mobilne aplikacije. Ta aplikacija se bo uporabljala za odpiranje ali zapiranje plinskega ventila z glavnega ventila in za vžig vžigalne svečke za požar.



Pametna peč

Kako avtomatizirati plinsko peč prek mobilnega telefona?

Zdaj, ko poznamo povzetek projekta, pojdimo naprej in zberite različne informacije, da začnemo delovati. Najprej bomo sestavili seznam komponent, nato pa bomo vse komponente sestavili, da bomo naredili delujoč sistem.



1. korak: Zbiranje komponent

Če se želimo izogniti strahu, da bi se zataknili sredi projekta, moramo pred začetkom katerega koli projekta imeti popoln seznam vseh komponent, ki jih bomo potrebovali med delom na projektu. To je odličen pristop, ki prihrani veliko časa in truda. Spodaj je podan popoln seznam vseh komponent, ki se uporabljajo v tem projektu. Vse te komponente so lahko dostopne na trgu.



  • ESP32
  • Plinski ventil za Arduino
  • Jumper žice
  • 5V relejni modul
  • 2N2222 NPN tranzistor
  • 1k-ohmski upor
  • 10k-ohmski upor
  • 5V vžigalna svečka

2. korak: Razvoj aplikacije za Android

Ker bomo to peč nadzirali z aplikacijo za android, jo moramo najprej razviti. Prej smo jih razvili več androidne aplikacije. Prej smo že naredili aplikacijo ki je sestavljen iz samo enega gumba v njem. Ta gumb se uporablja za pošiljanje podatkov v bazo podatkov. Če '1' se vstavi v bazo podatkov, se rele vklopi in če '0' se vstavi v bazo podatkov, se rele izklopi.



V to vlogo bomo vnesli nekaj sprememb. Po istem postopku, kot je sledil postopek izdelave prvega gumba in njegovega povezovanja z ognjiščem, bomo naredili še en gumb, ki bo povezan z ognjenim bazo.

Z enim gumbom se odpre in zapre plinski ventil, z drugim gumbom pa se ustvari iskra, ki bo odgovorna za vžig .

3. korak: Izdelava vezja

Ker zdaj poznamo glavno bistvo tega projekta, sestavimo vse komponente skupaj, da naredimo končno vezje.



Vzemite ploščo in vstavite Plošča ESP32 v. Vzemite tako tranzistorje kot upore in jih vstavite v ploščo tako, da se tranzistor lahko uporablja kot preklopljen. Sledite spodnji konfiguraciji, da med preklopom ne naredite napak.

Tranzistor kot stikalo

Na zgornji sliki priključite Vino vrata na zatiče ESP32 , priključite vrata Vcc na zunanje napajanje 5V in priključite Vo na relejni modul. Glavni razlog, da tranzistor uporabljamo kot stikalo, je ta, da za delovanje releja potrebuje 5 V, vendar ESP32 lahko zagotavlja le 3,3 V. Torej moramo zagotoviti 5V zunaj releja.

Zdaj bomo modul releja povezali s tranzistorji. Prepričajte se, da je prvi tranzistor priključen na pin34 modula ESP, drugi tranzistor pa na pin35 modula ESP. Oba relejska modula bomo uporabljali v normalno odprtem načinu. Plinski ventil in vžigalno svečko priključite na izhodni priključek prvega in drugega relejskega modula. Prepričajte se, da ste povezali rit relejskega modula, prikazano na spodnji sliki.

Relejni modul

4. korak: Delo

Srce tega projekta je ESP32, ki je plošča mikrokrmilnika. Preko relejnih modulov sta na ESP priključena plinski ventil in vžigalna svečka. Ventil za plin je sprva zaprt. Ko se vklopi iz mobilne aplikacije, se vklopi plinski ventil. Enako v primeru svečke. Lahko ga izklopite ali izklopite prek mobilne aplikacije. Ta vžigalna svečka bo priključena na peč, kjer se sprosti plin. Ta svečka bo prižgala ogenj.

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: koda

Priložena koda je precej dobro komentirana, vendar so nekateri njeni deli pojasnjeni spodaj.

1. Na začetku sta vključeni dve knjižnici, tako da je omogočen WiFi in je mogoče ploščo ESP povezati z zbirko podatkov firebase. Nato so vključeni gostitelj Firebase, preverjanje pristnosti, ime vaše lokalne wifi povezave in geslo iste wifi povezave. Določite tudi nožice na plošči ESP, ki bodo uporabljene za povezavo zunanjih naprav.

#include // vključi knjižnico za uporabo WiFi #include // vključi knjižnico za povezavo z Firebaseom #define FIREBASE_HOST 'xxxxxxxxxx' // zamenjaj xxxxxxxxxxx s svojim gostiteljem Firebase tukaj #define FIREBASE_AUTH 'xxxxxxxxxx' // zamenjaj xxxxxxx sxxxxxxx definirajte WIFI_SSID 'xxxxxxxxxx' // zamenjajte xxxxxxxxxx z imenom naše Wifi povezave #define WIFI_PASSWORD 'xxxxxxxxxx' // zamenjajte xxxxxxxxxx z vašim wifi geslom #define valve 34 // priključite plinsko iskro na to pin #define priključite na ta zatič

2. void setup () je funkcija, ki se zažene samo enkrat, ko je mikrokrmilnik vklopljen ali je pritisnjen gumb za omogočanje. Pri tej funkciji je nastavljena hitrost prenosa, ki je v bistvu hitrost komunikacije v bitih na sekundo. Po tem je plošča ESP priključena na Wifi.

void setup () {Serial.begin (115200); // nastavimo hitrost prenosa pinMode (ventil, IZHOD); // nastavimo pin 34, ki naj se uporablja kot IZHOD pinMode (iskra, IZHOD); // nastavimo pin 35, ki se bo uporabljal kot IZHOD // povežemo 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. Neveljavna zanka () je funkcija, ki se večkrat izvaja v zanki. V tej zanki se vrednosti berejo iz ognjišča in se preuči, če so enake nič ali ena. Če so vrednosti ena, se na zatič pošlje VISOK signal, ki bo povzročil vklop relejnega modula. Če je vrednost enaka, se na zatič ESP pošlje signal LOW, ki povzroči izklop releja.

void loop () {// dobimo vrednost temp1 = Serial.println (Firebase.getFloat ('light')); // dobimo vrednost za vklop plinskega ventila temp2 = Serial.println (Firebase.getFloat ('AC')); // dobimo vrednost za vklop vžigalne svečke, če (temp1 == 1) {digitalWrite (ventil, HIGH) // vklopi rele ena} else if (temp1 == 0) {digitalWrite (ventil, LOW) // obrnemo izklopi rele eno} else if (temp2 == 1) {digitalWrite (iskra, VISOKO) // vklopi rele dva} else if (temp2 == 0) {digitalWrite (iskra, LOW) // izklopi rele dva} // obravnava napake, če (Firebase.failed ()) {Serial.print ('nastavitev / številka ni uspela:'); Serial.println (Firebase.error ()); vrnitev; } zamuda (1000); }

To je vse za danes. Zdaj si lahko sami naredite svojo pametno peč. Na naši spletni strani nadaljujte z iskanjem bolj zanimivih člankov v prihodnosti.