Krāsns vadība no viedtālruņa, izmantojot WiFi

Mūsdienu pasaulē, ja mēs paskatāmies apkārt, mēs varam redzēt, ka viss, kas ietver elektroniku, zināmā mērā tiek automatizēts. Mājas automatizācijas sistēmas vai viedās mājas mūsdienās ir ļoti izplatītas. Izmantojot šīs sistēmas, dažādas mobilās ierīces var automatizēt, izmantojot mobilo lietojumprogrammu. Bet lielākā daļa no šīm sistēmām neietver neko, kas automatizētu jūsu gāzes plīti. Šajā rakstā mēs izstrādāsim sistēmu, kas ļaus jums kontrolēt gāzes plīti, izmantojot mobilo lietojumprogrammu. Šo lietojumprogrammu izmantos, lai atvērtu vai aizvērtu gāzes vārstu no galvenā vārsta un aizdedzinātu sveci, lai izveidotu uguni.



Viedā krāsns

Kā automatizēt gāzes plīti, izmantojot mobilo tālruni?

Tagad, kad mēs zinām projekta kopsavilkumu, virzīsimies uz priekšu un apkoposim citu informāciju, lai sāktu strādāt. Vispirms mēs izveidosim komponentu sarakstu un pēc tam saliksim visus komponentus, lai izveidotu darba sistēmu.



1. darbība: komponentu apkopošana

Pirms jebkura projekta uzsākšanas, ja mēs vēlamies izvairīties no bailēm iestrēgt projekta vidū, mums vajadzētu būt pilnīgam visu komponentu sarakstam, kas mums būs nepieciešami, strādājot pie projekta. Šī ir lieliska pieeja, kas ietaupa daudz laika un pūļu. Pilns visu šajā projektā izmantoto komponentu saraksts ir sniegts zemāk. Visi šie komponenti ir viegli pieejami tirgū.



  • ESP32
  • Gāzes vārsts Arduino
  • Džemperu vadi
  • 5V releja modulis
  • 2N2222 NPN tranzistors
  • 1k omu rezistors
  • 10k omu rezistors
  • 5V aizdedzes svece

2. darbība: Android lietojumprogrammas izstrāde

Tā kā mēs kontrolēsim šo plīti, izmantojot android lietojumprogrammu, vispirms tā ir jāizstrādā. Iepriekš mēs esam izstrādājuši vairākus android lietojumprogrammas. Iepriekš mēs esam izveidojuši pieteikumu kas sastāv tikai no vienas pogas tajā. Šo pogu izmanto datu nosūtīšanai datu bāzē. Ja '1' ir ievietots datu bāzē, relejs tiks ieslēgts un ja '0' ir ievietots datu bāzē, relejs tiks izslēgts.



Šajā pieteikumā mēs veiksim nelielu grozījumu. Veicot to pašu procedūru, kas tika ievērota, lai izveidotu pirmo pogu un pievienotu to firebase, mēs izveidosim vēl vienu pogu, kas tiks savienota ar firebase.

Viena poga tiks izmantota gāzes vārsta atvēršanai un aizvēršanai, bet otrā poga tiks izmantota, lai radītu dzirksti, kas būs atbildīga par aizdedze .

3. solis: ķēdes izveidošana

Tā kā mēs tagad zinām šī projekta galveno būtību, saliksim visus komponentus kopā, lai izveidotu galīgo ķēdi.



Paņemiet maizes dēli un ievietojiet ESP32 dēlis tajā. Paņemiet gan tranzistorus, gan rezistorus un ievietojiet tos maizes dēlī tā, lai tranzistoru varētu izmantot kā komutatoru. Izpildiet zemāk esošo konfigurāciju, lai pārslēgšanās laikā netiktu pieļautas kļūdas.

Transistors kā slēdzis

Augšējā attēlā pievienojiet Vīns ostu pie ESP32 , pievienojiet Vcc pieslēgvietu ārējam 5V padevei un savienojiet Vo ar releja moduli. Galvenais iemesls, kāpēc mēs izmantojam tranzistoru kā slēdzi, ir tāds, ka relejam darbībai nepieciešams 5 V, bet ESP32 var nodrošināt tikai 3,3 V. Tāpēc mums jānodrošina 5 V ārpus releja.

Tagad mēs savienosim releja moduli ar tranzistoriem. Pārliecinieties, ka pirmais tranzistors ir savienots ar ESP moduļa pin34, bet otrais - ar ESP moduļa pin35. Abus releja moduļus izmantosim normāli atvērtā režīmā. Pievienojiet gāzes vārstu un aizdedzes sveci attiecīgi pirmā un otrā releja moduļa izejas spailei. Pārliecinieties, ka esat pievienojis releja moduļa ass, kas parādīts zemāk esošajā attēlā.

Releja modulis

4. solis: Darbs

Šī projekta sirds ir ESP32, kas ir mikrokontrolleru plate. Gāzes vārsts un aizdedzes svece ir savienoti ar ESP, izmantojot releja moduļus. Gāzes vārsts sākotnēji ir aizvērts. Kad tas tiek ieslēgts no mobilās lietojumprogrammas, tiek ieslēgts gāzes vārsts. Tas pats sveces gadījumā. To var izslēgt vai izslēgt, izmantojot mobilo lietotni. Šī aizdedzes svece tiks savienota ar plīti, kur izdalās gāze. Šī aizdedzes svece iedegs uguni.

5. darbība: darba sākšana ar ESP32

Ja iepriekš neesat strādājis ar Arduino IDE, neuztraucieties, jo soli pa solim ir parādīts Arduino IDE iestatīšana.

  1. Lejupielādējiet jaunāko Arduino IDE versiju no Arduino.
  2. Pievienojiet savu Arduino dēli datoram un atveriet vadības paneli. Klikšķiniet uz Aparatūra un skaņa. Tagad atvērts Ierīces un printeris un atrodiet portu, ar kuru savienots jūsu dēlis. Manā gadījumā tā ir COM14 taču dažādos datoros tas ir atšķirīgs.

    Ostas atrašana

  3. Noklikšķiniet uz Fails un pēc tam uz Preferences. Nokopējiet šo saiti mapē Papildu valdes vadītāja URL. “ https://dl.espressif.com/dl/package_esp32_index.json '

    Preferences

  4. Tagad, lai lietotu ESP32 ar Arduino IDE, mums jāimportē īpašas bibliotēkas, kas ļaus mums ierakstīt kodu ESP32 un to izmantot. šīs divas bibliotēkas ir pievienotas zemāk dotajā saitē. Lai iekļautu bibliotēku, dodieties Skice> Iekļaut bibliotēku> Pievienot ZIP bibliotēku . Parādīsies lodziņš. Datorā atrodiet ZIP mapi un noklikšķiniet uz Labi, lai iekļautu mapes.

    Iekļaut bibliotēku

  5. Tagad ej Skice> Iekļaut bibliotēku> Pārvaldīt bibliotēkas.

    Pārvaldīt bibliotēkas

  6. Tiks atvērta izvēlne. Meklēšanas joslā ierakstiet Arduino JSON. Parādīsies saraksts. Uzstādīt Benoits Blanšons Arduino JSON.

    Arduino JSON

  7. Tagad noklikšķiniet uz Rīki. Parādīsies nolaižamā izvēlne. Iestatiet dēli uz ESP Dev modulis.

    Dēļu iestatīšana

  8. Vēlreiz noklikšķiniet uz izvēlnes Rīks un iestatiet portu, kuru iepriekš novērojāt vadības panelī.

    Portas iestatīšana

  9. Tagad augšupielādējiet kodu, kas pievienots zemāk esošajā saitē, un noklikšķiniet uz augšupielādes pogas, lai sadedzinātu kodu ESP32 mikrokontrollerī.

    Augšupielādēt

Tāpēc tagad, augšupielādējot kodu, var rasties kļūda. Šī ir visizplatītākā kļūda, kas var rasties, ja izmantojat jaunu Arduino IDE un Arduino JSON versiju. Tālāk ir norādītas kļūdas, kuras varat redzēt ekrānā.

Failā, kas iekļauts C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, no 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 ir ArduinoJson klase. Lūdzu, skatiet vietni arduinojson.org/upgrade, lai uzzinātu, kā jaunināt programmu uz ArduinoJson 6. versija StaticJsonBuffer jsonBuffer; ^ Failā, kas iekļauts C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, no C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: kļūda: StaticJsonBuffer ir klase no ArduinoJson 5. Lūdzu, skatiet vietni arduinojson.org/upgrade, lai uzzinātu, kā jaunināt programmu uz ArduinoJson 6. versija atgriež StaticJsonBuffer (). ParseObject (_data); ^ Vietnei 'WiFi.h' tika atrastas vairākas bibliotēkas. Izmantotie: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFi Nav izmantoti: C:  Program Files ( x86)  Arduino  libraries  WiFi Izmantojot bibliotēkas WiFi versiju 1.0 mapē: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  libraries  WiFi Izmantojot bibliotēku IOXhop_FirebaseESP32-master mapē: C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master (mantojums) Bibliotēkas HTTPClient izmantošana versijā 1.2 mapē: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Bibliotēkas WiFiClientSecure izmantošana versijā 1.0 mapē: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFiClientSecure Bibliotēkas ArduinoJson izmantošana plkst. Versija 6.12.0 mapē: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson izejas statuss 1 Kļūda sastādot plates ESP32 Dev moduli.

Nav jāuztraucas, jo šīs kļūdas mēs varam novērst, veicot dažas vienkāršas darbības. Šīs kļūdas rodas tāpēc, ka jaunajā Arduino JSON versijā ir cita klase, nevis StaticJsonBuffer. Šī ir JSON 5 klase. Tāpēc mēs varam vienkārši novērst šo kļūdu, pazeminot mūsu Arduino IDE Arduino JSON versiju. Vienkārši dodieties uz Skice> Iekļaut bibliotēku> Pārvaldīt bibliotēkas. Meklēt Benoits Blanšons Arduino JSON kuru esat instalējis iepriekš. Vispirms atinstalējiet to un pēc tam iestatiet tā versiju 5.13.5. Tagad, kad esam iestatījuši veco Arduino JSON versiju, instalējiet to vēlreiz un atkārtoti apkopojiet kodu. Šoreiz jūsu kods tiks veiksmīgi apkopots.

Lai lejupielādētu kodu, klikšķis šeit.

6. solis: kods

Pievienotais kods ir diezgan labi komentēts, taču dažas tā daļas ir paskaidrotas tālāk.

1. Sākumā ir iekļautas divas bibliotēkas, lai WiFi būtu iespējots un ESP paneli varētu savienot ar firebase datu bāzi. Tad tiek iekļauta firebase resursdators, autentifikācija, vietējā wifi savienojuma nosaukums un tā paša wifi savienojuma parole. ESP dēlī definējiet arī tapas, kas tiks izmantotas ārējo ierīču savienošanai.

#include // iekļauj bibliotēku, lai izmantotu WiFi #include // iekļauj bibliotēku, lai izveidotu savienojumu ar Firebase #define FIREBASE_HOST 'xxxxxxxxxx' // aizstājiet xxxxxxxxxx ar savu firebase resursdatoru šeit #define FIREBASE_AUTH 'xxxxxxxxxx' // aizstājiet xxxxxxxxxx ar savu firebase autentifikāciju šeit # definēt WIFI_SSID 'xxxxxxxxxx' // aizstāt xxxxxxxxxx ar mūsu Wifi savienojuma nosaukumu #define WIFI_PASSWORD 'xxxxxxxxxx' // aizstāt xxxxxxxxxx ar savu wifi paroli #define valve 34 // savienot gāzes vārstu ar šo tapu #define spark 35 // savienot dzirksti pievienojiet šo tapu

2. anulēt iestatīšanu () ir funkcija, kas darbojas tikai vienu reizi, kad tiek ieslēgts mikrokontrolleris vai tiek nospiesta iespējošanas poga. Šajā funkcijā tiek iestatīts datu pārraides ātrums, kas būtībā ir sakaru ātrums bitiem sekundē. Pēc tam ESP plate ir savienota ar Wifi.

void setup () {Seriālā.sākt (115200); // iestatīt datu pārraides ātrumu pinMode (vārsts, OUTPUT); // iestatiet tapu 34, kas jāizmanto kā OUTPUT pinMode (spark, OUTPUT); // iestatiet tapu 35, kas jāizmanto kā OUTPUT // izveidojiet savienojumu ar wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('savienojums'); while (WiFi.status ()! = WL_CONNECTED) {Seriālā.druka ('.'); kavēšanās (500); } Seriālais.println (); Serial.print ('savienots:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. Tukšā cilpa () ir funkcija, kas atkārtoti darbojas ciklā. Šajā lokā vērtības tiek nolasītas no uguns bāzes un tiek pārbaudītas, ja tās ir nulle vai viena. Ja vērtības ir vienas, tad tapai tiek nosūtīts HIGH signāls, kā rezultātā ieslēgsies releja modulis. Ja vērtība ir nulle, uz ESP tapu tiks nosūtīts LOw signāls, kā rezultātā relejs tiks izslēgts.

void loop () {// iegūt vērtību temp1 = Serial.println (Firebase.getFloat ('light')); // iegūt vērtību gāzes vārsta temp2 pārslēgšanai = Serial.println (Firebase.getFloat ('AC')); // iegūstiet aizdedzes sveces pārslēgšanas vērtību, ja (temp1 == 1) {digitalWrite (valve, HIGH) // ieslēdziet vienu releju} cits if (temp1 == 0) {digitalWrite (valve, LOW) // pagrieziet izslēgt vienu releju} cits, ja (temp2 == 1) {digitalWrite (spark, HIGH) // ieslēdziet otro releju} else if (temp2 == 0) {digitalWrite (spark, LOW) // izslēdziet otro releju} // rīkoties ar kļūdu, ja (Firebase.failed ()) {Serial.print ('iestatījums / numurs neizdevās:'); Serial.println (Firebase.error ()); atgriešanās; } kavēšanās (1000); }

Tas šodien ir viss. Tagad jūs varat izveidot mūsu pašu viedo plīti mājās. Turpiniet pārbaudīt mūsu vietni, lai redzētu interesantākus rakstus, piemēram, šos.