Kuidas teha nutikat koduautomaatikasüsteemi ESP32 mooduli abil?

Sellel kaasaegsel ajal kasvab koduautomaatika kontseptsioon suure kiirusega. Nutisüsteeme paigaldatakse peaaegu igasse kohta. Nutikodu süsteemid on mõiste, kus kõiki elektriseadmeid või seadmeid juhitakse ühe kaugjuhtimispuldi abil. Nendes süsteemides on kaugjuhtimispult enamasti mobiilirakendus. Kuna android-mobiil on inimeste seas kõige levinum, on kõigi nende seadmete juhtimiseks parim võimalus android-rakendus.



Koduautomaatika

Nii et selles projektis ühendame mõned kodu elektriseadmed mooduliga Relee ja juhime seda mikrokontrolleri ESP32 kaudu. Teeme firebase'i reaalajas andmebaasi ja ühendame selle Android-rakendusest. See android-rakendus saadab andmed pilve ja seejärel saadetakse see mikrokontrollerile elektriseadme sisse- või väljalülitamiseks. Parim osa on see, et teil on täielik kontroll oma seadmete vahetamise üle kõikjal maailmas. Android-rakenduse kasutamiseks on vaja lihtsalt Interneti-ühendust.



Kuidas juhtida kodumasinaid WiFi kaudu?

Kodutehnika süsteemid, mis on turul juba saadaval, on väga kulukad. Saame kasutada ESP32-plaati erinevate kodumasinate ühendamiseks ja nende juhtimiseks Androidi rakenduse abil. See on väga madal hind ja tõhus viis maja automatiseerimiseks. Liigume nüüd samm edasi ja alustame projekti alustamiseks teabe kogumist.



1. samm: komponentide kogumine

Parim lähenemine mis tahes projekti alustamiseks on koostada komponentide loetelu ja läbi viia nende komponentide lühitutvustus, sest keegi ei taha jääda projekti keskele lihtsalt puuduva komponendi tõttu. Allpool on loetelu komponentidest, mida me selles projektis kasutame:



  • ESP32
  • Leivaplaat
  • Juhtmete ühendamine

2. samm: komponentide uurimine

Nüüd, kui teame selle projekti kokkuvõtet, liikugem ühe sammu võrra edasi ja uurime lühidalt peamiste komponentide toimimist, mida kavatseme kasutada.

ESP32 on väikese energiatarbega ja odav mikrokontrolleriplaat, millel on sisseehitatud WiFi ja kaherežiimiline Bluetooth-moodul. Selle mikrokontrolleri plaadi on loonud ja arendanud Espressif Systems . Sellel plaadil on sisseehitatud võimsusvõimendid, madala kena vastuvõtuvõimendid, filtrid ja antennilülitid. Selle toiteallikaks on androidi andmesidekaabel ja see võib väljundis pakkuda kuni 3,3 V pinget. ESP32 käivitab TCP / IP, täieliku 802.11 b / g / n / e / I WLAN MAC-i ja eriti Wi-Fi Directi. See tähendab, et ESP 32 suudab jaama (kliendi) režiimis kasutamisel adresseerida suure osa seal asuvatest WiFi-ruuteritest. Samamoodi saab see luua pääsupunkti täisversiooniga 802.11 b / g / n / e / I. ESP32 ei toeta lihtsalt uusimat BLE Bluetooth 4.2, vaid toetab lisaks suurepärast Bluetoothi. See tähendab põhimõtteliselt, et ta suudab käsitleda vanu ja uusi Bluetooth-telefone / -talve. Kui teil pole ESP32 moodulit, võite kasutada ka ESP8266 või Node MCU-d. Neid tahvleid saab kasutada sama ülesande täitmiseks, kui need on ühendatud WiFi-ga.

ESP32



Relee moodul on lülitusseade. See töötab kahes režiimis, Tavaliselt avatud (EI) ja Tavaliselt Suletud (NC) . NO-režiimis on vooluring alati katki, kui te ei edasta Arduino kaudu releele KÕRGET signaali. NC-režiim halveneb vastupidi, vooluahel on alati täielik, kui te ei lülita relee moodulit sisse. Ühendage oma elektriseadme positiivne juhe relee mooduliga allpool näidatud viisil.

Relee mooduli vooluahela kokkupanek

3. samm: blokeerige skeem

Blokeeri skeem

Ülaltoodud plokkskeemil on näidatud selle projekti voog. Releed on ühendatud kodu elektriseadmete või -seadmetega. Mobiilirakendus saadab Peal või VÄLJAS käsk andmebaasi. See pilv on ühendatud WiFi kaudu ESP32 mikrokontrolleriplaadiga. Elektroonilise seadme sisselülitamiseks saadame andmebaasi tähe '1' ja selle väljalülitamiseks andmebaasis '0'. Seejärel tõmbab selle käsu mikrokontroller, kuna see on ühendatud ka andmebaasiga. Selle 0 või 1 põhjal lülitab mikrokontroller relee mooduli sisse või välja, mille tulemuseks on lõpuks elektriseadmete lülitamine.

Nii et siin, selles artiklis, kasutan kogu protseduuri näitamiseks kahte relee moodulit. Kuid kui soovite juhtida suuremat arvu elektrilisi kodumasinaid, saate releede arvu suurendada ja oma programmis sama koodiosa lisada.

4. samm: komponentide kokkupanek

Nüüd, kui meil on selge visioon sellest, mida me selles projektis teha tahame, ärgem raiskagem rohkem aega ja alustage komponentide kokkupanekut.

  1. Võtke leibplaat ja fikseerige selles ESP32 mikrokontroller. Nüüd võtke kaks relee moodulit ja ühendage moodulite Vcc ja maandus paralleelselt ESP32 mikrokontrolleri plaadi Vin ja maandusega. Ühendage nööpnõel releemoodulitest ESP32 plaadi pin34 ja pin35 külge. Näete, et releed on nüüd sisse lülitatud.
  2. Ühendage kodutehnika releemooduliga. Veenduge, et teie ühendused vastavad 2. sammus toodud joonisel näidatud ühendustele.

Nüüd, kui ühendasime oma süsteemi riistvaraosa. Töötame välja androidrakenduse, mis ühendatakse firebase andmebaasiga. Andmebaasi ja androidrakenduse teeme selle artikli 2. osas.

5. samm: ESP32-ga alustamine

Kui te pole Arduino IDE-ga varem töötanud, ärge muretsege, sest allpool on toodud samm-sammult Arduino IDE seadistamine.

  1. Laadige Arduino IDE uusim versioon alla Arduino.
  2. Ühendage oma Arduino tahvel arvutiga ja avage juhtpaneel. Kliki Riistvara ja heli. Nüüd avatud Seadmed ja printer ja leidke port, millega teie laud on ühendatud. Minu puhul on see nii KOM14 kuid see on erinevates arvutites erinev.

    Sadama leidmine

  3. Klõpsake File ja seejärel Preferences. Kopeerige järgmine link saidile Täiendav juhihalduri URL. ' https://dl.espressif.com/dl/package_esp32_index.json '

    Eelistused

  4. Nüüd, et kasutada ESP32 koos Arduino IDE-ga, peame importima spetsiaalsed teegid, mis võimaldavad meil koodi ESP32-l kirjutada ja seda kasutada. need kaks teeki on lisatud allpool toodud lingile. Raamatukogu kaasamiseks minge Visand> Kaasa teek> Lisa ZIP-kogu . Ilmub kast. Leidke oma arvutis ZIP-kaust ja klõpsake kaustade kaasamiseks nuppu OK.

    Kaasa teek

  5. Nüüd mine Visand> Kaasa teek> Halda raamatukogusid.

    Raamatukogude haldamine

  6. Avaneb menüü. Tippige otsinguribale Arduino JSON. Ilmub loend. Installige Aroitino JSON, autor Benoit Blanchon.

    Arduino JSON

  7. Nüüd klõpsake nuppu Tööriistad. Ilmub rippmenüü. Pange tahvel asendisse ESP Dev moodul.

    Laua määramine

  8. Klõpsake uuesti menüül Tööriist ja määrake port, mida jälgisite juhtpaneelil varem.

    Pordi seadistamine

  9. Nüüd laadige üles kood, mis on lisatud allolevale lingile, ja klõpsake ESP32 mikrokontrolleris koodi põletamiseks nuppu üleslaadimine.

    Laadi üles

Nii et nüüd koodi üleslaadimisel võib ilmneda tõrge. See on kõige tavalisem viga, mis võib ilmneda, kui kasutate Arduino IDE ja Arduino JSON uut versiooni. Järgnevad vead, mida võite ekraanil näha.

Failis, mis sisaldub kataloogis C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, failist 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 on klass ArduinoJsonist. Programmi ArduinoJsonile värskendamise õppimiseks lugege lehte arduinojson.org/upgrade. versioon 6 StaticJsonBuffer jsonBuffer; ^ Failis, mis sisaldub kataloogis C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, failist C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: tõrge: StaticJsonBuffer on klass ArduinoJsonist. Programmi uuele versioonile värskendamiseks lugege palun arduinojson.org/upgrade. ArduinoJsoni versioon 6 tagastab StaticJsonBuffer (). ParseObject (_data); ^ 'WiFi.h' jaoks leiti mitu teeki. Kasutatud: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFi Ei kasutata: C:  Program Files ( x86)  Arduino  librarys  WiFi Kasutades teegi WiFi versiooni 1.0 kaustas: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  librarys  WiFi  Kasutades teeki IOXhop_FirebaseESP32-master kaustas: C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master (pärand) Teegi HTTPClienti kasutamine versioonis 1.2 kaustas: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  teekid  HTTPClient teegi WiFiClientSecure kasutamine versiooni 1.0 kaustas: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  librarys  WiFiClientSecure Teegi ArduinoJson kasutamine aadressil Versioon 6.12.0 kaustas: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Viga plaadi ESP32 Dev mooduli koostamisel.

Muretsemiseks pole midagi, sest me saame need vead kõrvaldada, järgides mõningaid lihtsaid samme. Need vead ilmnevad seetõttu, et Arduino JSONi uues versioonis on selle asemel teine ​​klass StaticJsonBuffer. See on JSON 5 klass. Nii et saame selle vea lihtsalt kõrvaldada, alandades meie Arduino IDE Arduino JSON-i versiooni. Lihtsalt minge Visand> Kaasa teek> Halda raamatukogusid. Otsima Aroitino JSON, autor Benoit Blanchon mille olete varem installinud. Kõigepealt desinstallige see ja seejärel määrake selle versiooniks 5.13.5. Nüüd, kui oleme seadnud Arduino JSONi vana versiooni, installige see uuesti ja kompileerige kood uuesti. Seekord kompileeritakse teie kood edukalt.

Koodi allalaadimiseks klõpsake siin.

6. samm: koodeksist aru saamine

Selle projekti kood on väga lihtne ja hästi kommenteeritud. Kuid ikkagi selgitatakse koodi lühidalt allpool.

1. Kõigepealt kaasatakse raamatukogud, nii et ESP32-plaati saab ühendada kodus või kontoris asuva kohaliku WiFi-ühendusega. Pärast seda määratletakse link teie firebase'i projekti ja teie firebase'i projekti autentimine. Seejärel määratakse teie kohaliku wifi-ühenduse nimi ja parool, nii et ESP32 saaks ühendada Wifi-ga. Mõni ESP32 tihvt on määratletud releemoodulitega ühendamiseks. ja lõpuks deklareeritakse muutuja, mis salvestab mõned ajutised andmed, mis pärinevad tulepõhja pilvest.

#include // kaasake teek kohaliku Wifi-ühendusega ühenduse loomiseks #include // Kaasake teek, et luua ühendus Firebase'i andmebaasiga #define FIREBASE_HOST 'coma-patient.firebaseio.com' // kaasake oma firebase'i projekti link #define FIREBASE_AUTH 'UrzlDZXMBNRhNZFWEdW5dw5dw5d7 '// Lisage oma firebase'i projekti autentimine #define WIFI_SSID' abcd '// kodu või kontori WiFi-ühenduse nimi #define WIFI_PASSWORD' abcd '// kodu või kontori WiFi-ühenduse parool int 34; // tihvt relee 1 ühendamiseks int r2 = 35; // tihvt relee 2 ühendamiseks int temp; // variabe andmete kandmiseks

2. kehtetu seadistamine () on funktsioon, milles lähtestame INPUT või OUTPUT tihvtid. See funktsioon määrab ka andmeedastuskiiruse Serial.begin () käsk. Baudi kiirus on mikrokontrolleri sidekiirus. Siin on lisatud mõned koodiread, et ühendada ESP32 kohaliku wifi-ühendusega. Tahvel proovib ühenduse luua kohaliku wifi-ühendusega ja prindib ühenduse. seeriamonitoris. Kui ühendus on loodud, prinditakse kiri „Ühendatud”. Nii et selle jälgimiseks on parem avada seeriamonitor ja kontrollida selle seisu seal.

void setup () {Serial.begin (115200); // kiiruse määramine // wifi-ga ühenduse loomine. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('ühendamine'); while (WiFi.staatus ()! = WL_CONNECTED) {Seerianumber. ('.'); viivitus (500); } Serial.println (); Serial.print ('ühendatud:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. void loop () on funktsioon, mis töötab korduvalt silmusena. Selles tsüklis kirjutame koodi, mis ütleb mikrokontrolleri plaadile, milliseid ülesandeid ja kuidas täita. Oleme hankinud andmed vastu valgus ja AC andmebaasist ja salvestatud kahte ajutisse muutujasse. Seejärel rakendatakse kahe seadme vahetamiseks neli tingimust vastavalt andmebaasist toodud 0 või 1 järgi.

void loop () {// get value temp1 = Serial.println (Firebase.getFloat ('light')); // saada valguse temp2 muutmise väärtus = Serial.println (Firebase.getFloat ('AC')); // hankige ventilaatori viivituse (1000) vahetamise vaue; if (temp1 == 1 && temp2 == 1) {// Valguse ja ventilaatori sisselülitamiseks digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Ventilaatori sisselülitamiseks ja valguse väljalülitamiseks digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Ventilaatori väljalülitamiseks ja valguse digitalWrite sisselülitamiseks (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Ventilaatori väljalülitamiseks ja kerge digitalWrite'i väljalülitamiseks (r1, LOW); digitalWrite (r2, LOW); }}

See oli esimene osa 'Kuidas nutika kodu süsteemi luua ESP32 abil?'. Kui soovite juhtida veel mõnda kodutehnikat, võite lisada rohkem releemooduleid, ainus asi, mida peate tegema, on lugeda tulepesast andmeid ja lisada veel mõned tingimused lülitamiseks. Järgmises artiklis selgitan, kuidas arendada androidirakendust ja Firebase'i andmebaasi. Selgitan samm-sammult protseduuri, kuidas androidirakendus Firefoxiga ühendada ja sinna andmeid saata.

Järgmisele õpetusele minemiseks Kliki siia