Kā izveidot viedo mājas automatizācijas sistēmu, izmantojot ESP32 moduli?

Šajā mūsdienu laikmetā mājas automatizācijas jēdziens aug ļoti ātri. Viedās sistēmas tiek uzstādītas gandrīz visās vietās. Viedās mājas sistēmas ir jēdziens, kurā visas elektriskās ierīces vai ierīces tiek kontrolētas, izmantojot vienu tālvadības pulti. Šajās sistēmās lielākoties tālvadības pults ir mobilā lietojumprogramma. Tā kā android mobilais ir visizplatītākais cilvēku vidū, tāpēc Android programma ir labākā iespēja kontrolēt visas šīs ierīces.



Mājas automatizācija

Tāpēc šajā projektā mēs pievienosim dažas mājas elektroierīces Releja modulim un vadīsim to caur ESP32 mikrokontrolleru. Mēs izveidosim Firebase reāllaika datu bāzi un savienosim to no android lietotnes. Šī Android lietotne nosūtīs datus mākonim, un pēc tam tie tiks nosūtīti mikrokontrollerim, lai ieslēgtu vai izslēgtu elektrisko ierīci. Labākais ir tas, ka jūs varat pilnībā kontrolēt savu ierīču pārslēgšanu no jebkuras vietas pasaulē. Lai darbotos ar Android lietojumprogrammu, jums vienkārši nepieciešams interneta savienojums.



Kā kontrolēt sadzīves tehniku, izmantojot WiFi?

Mājas automatizācijas sistēmas, kas jau ir pieejamas tirgū, ir ļoti dārgas. Mēs varam izmantot ESP32 plāksni, lai savienotu dažādas sadzīves tehnikas un kontrolētu tās, izmantojot Android lietotni. Tas būs ļoti zemas izmaksas un efektīvs veids, kā automatizēt māju. Tagad sāksim soli uz priekšu un sāksim vākt informāciju, lai sāktu projektu.



1. darbība: komponentu savākšana

Vislabākā pieeja jebkura projekta uzsākšanai ir sastādīt sastāvdaļu sarakstu un veikt īsu šo komponentu izpēti, jo neviens nevēlas palikt projekta vidū tikai trūkstoša komponenta dēļ. Komponentu saraksts, ko mēs izmantosim šajā projektā, ir norādīts zemāk:



  • ESP32
  • Maizes dēlis
  • Vadu savienošana

2. solis: Komponentu izpēte

Tagad, kad mēs zinām šī projekta kopsavilkumu, virzīsimies soli uz priekšu un veiksim īsu pētījumu par galveno sastāvdaļu darbību, kuras mēs izmantosim.

ESP32 ir mazjaudas un zemu izmaksu mikrokontrolleru plate, kurai ir iebūvēts WiFi un divu režīmu Bluetooth modulis. Šo mikrokontrolleru plati ir izveidojis un izstrādājis Espressif Systems . Šajā dēlī ir iebūvēti jaudas pastiprinātāji, zemu jauku uztvērēju pastiprinātāji, filtri un antenu slēdži. To darbina android datu kabelis, un tas var nodrošināt līdz 3,3 V izeju. ESP32 izpilda TCP / IP, pilnu 802.11 b / g / n / e / I WLAN MAC konvenciju un īpaši Wi-Fi Direct. Tas nozīmē, ka ESP 32 var adresēt lielu daļu no WiFi maršrutētājiem, kas tiek izmantoti stacijas (klienta) režīmā. Tāpat tas var izveidot piekļuves punktu ar pilnu 802.11 b / g / n / e / I. ESP32 vienkārši neuztur jaunāko BLE Bluetooth 4.2, tas papildus atbalsta lielisku Bluetooth. Tas būtībā nozīmē, ka tas var uzrunāt vecos un jaunos Bluetooth tālruņus / galdus. Ja jums nav ESP32 moduļa, varat izmantot arī ESP8266 vai Node MCU. Šīs plāksnes var izmantot viena un tā paša uzdevuma veikšanai, ja tās ir savienotas ar WiFi.

ESP32



Releja modulis ir komutācijas ierīce. Tas darbojas divos režīmos, Parasti atvērts (NĒ) un Parasti Slēgts (NC) . NĒ režīmā ķēde vienmēr tiek pārtraukta, ja vien jūs nesūtāt AUGSTU signālu uz releju, izmantojot Arduino. NC režīms pasliktinās otrādi, ķēde vienmēr ir pabeigta, ja vien neieslēdzat releja moduli. Pārliecinieties, ka pievienojāt elektriskās ierīces pozitīvo vadu releja modulim tā, kā parādīts zemāk.

Releja moduļa ķēdes montāža

3. solis: Bloķēt diagrammu

Blokshēma

Iepriekš minētajā blokshēmā ir parādīta šī projekta plūsma. Releji ir savienoti ar mājas elektroierīcēm vai ierīcēm. Mobilā lietojumprogramma nosūtīs Ieslēgts vai IZSLĒGTS komandu datu bāzē. Šis mākonis ir savienots ar ESP32 mikrokontrolleru paneli, izmantojot WiFi. Lai ieslēgtu elektronisko ierīci, mēs datu bāzē nosūtīsim “1” un, lai to izslēgtu, datu bāzē nosūtīsim “0”. Pēc tam šo komandu ielādēs mikrokontrolleris, jo tā ir savienota arī ar datu bāzi. Pamatojoties uz šo 0 vai 1, mikrokontrolleris ieslēdz vai izslēdz releja moduli, kā rezultātā galu galā tiks pārslēgtas elektriskās ierīces.

Tāpēc šeit, šajā rakstā, es izmantošu divus releju moduļus, lai parādītu jums visu procedūru. Bet jūs varat palielināt releju skaitu un pievienot to pašu koda daļu savā programmā, ja vēlaties kontrolēt lielāku skaitu elektrisko sadzīves tehniku.

4. solis: komponentu montāža

Tagad, kad mums ir skaidra vīzija par to, ko mēs vēlamies darīt šajā projektā, netērēsim vairāk laika un sāksim komplektēt komponentus.

  1. Paņemiet paneli un salabojiet tajā ESP32 mikrokontrolleru. Tagad paņemiet divus releju moduļus un paralēli savienojiet moduļu Vcc un zemi ar mikrokontrolleru plates ESP32 Vin un zemi. Pievienojiet tapā no releja moduļiem uz ESP32 dēļa pin34 un pin35. Jūs redzēsiet, ka releji tagad ir ieslēgti.
  2. Pievienojiet sadzīves tehniku ​​releja modulim. Pārliecinieties, vai savienojumi atbilst savienojumiem, kas parādīti 2. darbības attēlā.

Tagad, kad mēs pievienojām savas sistēmas aparatūras daļu. Mēs izstrādāsim android lietojumprogrammu, kas tiks savienota ar firebase datu bāzi. Datu bāzi un android lietojumprogrammu izveidosim šī raksta 2. daļā.

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 bet 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  library  WiFi  Bibliotēkas IOXhop_FirebaseESP32-master izmantošana 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 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 versiju Arduino JSON. 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: izpratne par kodeksu

Šī projekta kods ir ļoti vienkāršs un labi komentēts. Bet tomēr kods ir īsumā paskaidrots zemāk.

1. Sākumā tiek iekļautas bibliotēkas, lai ESP32 plāksni varētu savienot ar vietējo WiFi savienojumu mājās vai birojā. Pēc tam tiek definēta saite uz jūsu firebase projektu un firebase projekta autentifikācija. Pēc tam tiek definēts vietējā wifi savienojuma nosaukums un parole, lai ESP32 varētu savienot ar Wifi. Daži ESP32 tapas ir definētas savienošanai ar releja moduļiem. un beidzot tiek deklarēts mainīgais, kas glabās dažus pagaidu datus, kas nāks no firebase mākoņa.

#include // iekļaut bibliotēku, lai izveidotu savienojumu ar vietējo Wifi savienojumu #include // Iekļaut bibliotēku, lai izveidotu savienojumu ar Firebase datu bāzi #define FIREBASE_HOST 'coma-patient.firebaseio.com' // iekļaujiet sava Firebase projekta saiti #define FIREBASE_AUTH 'UrzlDZXMBNRhNDK5E9Wwdd55773 '// Iekļaujiet sava firebase projekta autentifikāciju #define WIFI_SSID' abcd '// mājas vai biroja WiFi savienojuma nosaukums #define WIFI_PASSWORD' abcd '// mājas vai biroja WiFi savienojuma parole int r1 = 34; // tapa 1. releja pieslēgšanai int r2 = 35; // pin, lai pievienotu 2. releju int temp; // variabe datu pārvadāšanai

2. anulēt iestatīšanu () ir funkcija, kurā mēs inicializējam INPUT vai OUTPUT tapas. Šī funkcija arī nosaka datu pārraides ātrumu, izmantojot Serial.begin () komandu. Bauda ātrums ir mikrokontrollera sakaru ātrums. Šeit ir pievienotas dažas koda rindas, lai ESP32 pievienotu vietējam wifi savienojumam. Dēlis mēģinās izveidot savienojumu ar vietējo wifi savienojumu un izdrukās “savienojums”. sērijveida monitorā. Kad savienojums būs izveidots, tas drukās “Connected”. Tāpēc, lai to uzraudzītu, labāk ir atvērt seriālo monitoru un pārbaudīt tā stāvokli.

void setup () {Serial.begin (115200); // datu pārraides ātruma iestatīšana // izveidot 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. void loop () ir funkcija, kas atkārtoti darbojas ciklā. Šajā lokā mēs uzrakstām kodu, kas mikrokontrolleru dēlim norāda, kādi uzdevumi un kā jāveic. Mēs esam izguvuši datus pret gaisma un AC no datu bāzes un saglabāti divos pagaidu mainīgajos. Tad tiek piemēroti četri nosacījumi, lai pārslēgtu abas ierīces atbilstoši datu bāzē ielādētajam 0 vai 1.

void loop () {// iegūt vērtību temp1 = Serial.println (Firebase.getFloat ('light')); // iegūt gaismas temp2 svārstīšanās vērtību = Serial.println (Firebase.getFloat ('AC')); // iegūt vērtību ventilatora aiztures pārslēgšanai (1000); if (temp1 == 1 && temp2 == 1) {// Lai ieslēgtu gaismu un ventilatoru digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Lai ieslēgtu ventilatoru un izslēgtu gaismas digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Lai izslēgtu ventilatoru un ieslēgtu gaismas digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Lai izslēgtu ventilatoru un izslēgtu gaismas digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Šī bija pirmā daļa no “Kā izveidot viedo mājas sistēmu, izmantojot ESP32?”. Ja vēlaties kontrolēt vēl dažas sadzīves tehnikas, varat pievienot vairāk releju moduļu, vienīgais, kas jums būs jādara, ir nolasīt datus no firebase un pievienot vēl dažus pārslēgšanas nosacījumus. Nākamajā rakstā es paskaidrošu, kā izstrādāt android lietojumprogrammu un Firebase datu bāzi. Es paskaidrošu soli pa solim procedūru, kā savienot android lietotni ar firebase un nosūtīt tai datus.

Lai pārietu uz nākamo apmācību Noklikšķiniet šeit