Kuinka tehdä älykäs kodin automaatiojärjestelmä ESP32-moduulilla?

Tänä nykyaikana kotiautomaation käsite kasvaa nopeasti. Älykkäitä järjestelmiä asennetaan melkein jokaiseen paikkaan. Smart Home Systems on käsite, jossa kaikkia sähkölaitteita tai laitteita ohjataan yhdellä kaukosäätimellä. Näissä järjestelmissä kauko-ohjain on suurimmaksi osaksi mobiilisovellus. Koska Android-matkapuhelin on yleisimpiä ihmisten keskuudessa, joten Android-sovellus on paras tapa hallita kaikkia näitä laitteita.



Kodin automatisointi

Joten tässä projektissa aiomme liittää joitain kodin sähkölaitteita Relay-moduuliin ja ohjata sitä ESP32-mikrokontrollerin kautta. Teemme firebase-reaaliaikaisen tietokannan ja yhdistämme sen Android-sovelluksesta. Tämä android-sovellus lähettää tiedot pilveen ja sitten se lähetetään mikro-ohjaimelle sähkölaitteen kytkemiseksi päälle tai pois päältä. Parasta on, että voit hallita laitteidesi vaihtamista mistä päin maailmaa tahansa. Tarvitset vain Internet-yhteyden Android-sovelluksen käyttämiseen.



Kuinka hallita kodinkoneita WiFi-yhteyden kautta?

Markkinoilla jo saatavilla olevat kodiautomaatiojärjestelmät ovat erittäin kalliita. Voimme käyttää ESP32-korttia eri kodinkoneiden liittämiseen ja hallintaan Android-sovelluksella. Tämä on erittäin alhainen hinta ja tehokas tapa automatisoida talo. Siirrytään nyt askeleen eteenpäin ja aloitetaan tiedon kerääminen aloittaaksemme projektin.



Vaihe 1: Komponenttien kerääminen

Paras tapa aloittaa projekti on laatia luettelo komponenteista ja käydä läpi lyhyt tutkimus näistä komponenteista, koska kukaan ei halua pysyä keskellä projektia vain puuttuvan komponentin takia. Alla on luettelo komponenteista, joita aiomme käyttää tässä projektissa:



  • ESP32
  • Leipälauta
  • Johtojen liittäminen

Vaihe 2: Komponenttien tutkiminen

Nyt kun tiedämme tämän projektin tiivistelmän, siirtykäämme askel eteenpäin ja käymällä läpi lyhyt tutkimus pääkomponenttien toiminnasta, joita aiomme käyttää.

ESP32 on pienitehoinen ja edullinen mikrokontrollerikortti, jossa on sisäänrakennettu WiFi ja kaksimoodinen Bluetooth-moduuli. Tämän mikrokontrollerikortin on luonut ja kehittänyt Espressif Systems . Tässä kortissa on sisäänrakennetut tehovahvistimet, matalat mukavat vastaanottovahvistimet, suodattimet ja antennikytkimet. Se saa virtansa Android-datakaapelista ja voi tuottaa jopa 3,3 V: n ulostulon. ESP32 suorittaa TCP / IP: n, täyden 802.11 b / g / n / e / I WLAN MAC -käytännön ja erityisesti Wi-Fi Direct. Tämä tarkoittaa, että ESP 32 voi kohdistaa suuren osan siellä olevista WiFi-reitittimistä, kun sitä käytetään asema (asiakas) -tilassa. Samoin se voi tehdä tukiaseman täydellä 802.11 b / g / n / e / I -muodolla. ESP32 ei yksinkertaisesti tue viimeisintä BLE Bluetooth 4.2: ta, vaan se tukee myös loistavaa Bluetoothia. Se tarkoittaa pohjimmiltaan, että se voi käsitellä vanhoja ja uusia Bluetooth-puhelimia / pöytiä. Jos sinulla ei ole ESP32-moduulia, voit käyttää myös ESP8266: ta tai Node MCU: ta. Näitä levyjä voidaan käyttää saman tehtävän suorittamiseen, jos ne on kytketty WiFi-verkkoon.

ESP32



Relemoduuli on kytkinlaite. Se toimii kahdessa tilassa, Normaalisti auki (EI) ja Yleensä Suljettu (NC) . EI-tilassa piiri on aina rikki, ellet lähetä KORKEA signaalia releelle Arduinon kautta. NC-tila pahenee päinvastoin, piiri on aina valmis, ellet käynnistä relemoduulia. Varmista, että kytket sähkölaitteesi positiivisen johdon relemoduuliin alla esitetyllä tavalla.

Releyksikön piirin kokoaminen

Vaihe 3: Estä kaavio

Lohkokaavio

Yllä olevassa lohkokaaviossa tämän projektin kulku on esitetty. Releet on kytketty kodin sähkölaitteisiin tai laitteisiin. Mobiilisovellus lähettää Päällä tai VINOSSA komento tietokantaan. Tämä pilvi on kytketty ESP32-mikrokontrollerikorttiin WiFi-yhteyden kautta. Elektronisen laitteen kytkemiseksi päälle lähetämme tietokantaan “1” ja sammuttaaksesi sen ”0” tietokantaan. Tämän jälkeen mikrokontrolleri noutaa tämän komennon, koska se on myös kytketty tietokantaan. Tämän 0 tai 1 perusteella mikrokontrolleri kytkee relemoduulin päälle tai pois päältä, mikä johtaa lopulta sähkölaitteiden kytkentään.

Joten tässä, tässä artikkelissa, käytän kahta relemoduulia näyttämään sinulle koko menettelyn. Mutta voit lisätä releiden määrää ja lisätä saman koodinpalan ohjelmaasi, jos haluat hallita suurempaa määrää sähköisiä kodinkoneita.

Vaihe 4: Komponenttien kokoaminen

Nyt kun meillä on selkeä näkemys siitä, mitä haluamme tehdä tässä projektissa, älä tuhlaa enää aikaa ja aloita komponenttien kokoamista.

  1. Ota leipälauta ja kiinnitä siihen ESP32-mikrokontrolleri. Ota nyt kaksi relemoduulia ja kytke moduulien Vcc ja maadoitus rinnakkain ESP32-mikrokorttipiirin Vin- ja maadoitukseen. Liitä nastassa relemoduulien ESP32-kortin pin34: een ja pin35: een. Näet, että releet ovat nyt päällä.
  2. Liitä kodinkoneet relemoduuliin. Varmista, että yhteydet vastaavat vaiheessa 2 olevassa kuvassa esitettyjä liitäntöjä.

Nyt kun yhdistimme järjestelmämme laitteisto-osan. Kehitämme Android-sovelluksen, joka liitetään firebase-tietokantaan. Teemme tietokannan ja Android-sovelluksen tämän artikkelin osaan 2.

Vaihe 5: ESP32: n käytön aloittaminen

Jos et ole aiemmin työskennellyt Arduino IDE: n parissa, älä huoli, koska askel askeleelta Arduino IDE: n määrittäminen näkyy alla.

  1. Lataa uusin Arduino IDE -versio osoitteesta Arduino.
  2. Liitä Arduino-kortti tietokoneeseen ja avaa Ohjauspaneeli. Klikkaa Laitteisto ja ääni. Nyt avoinna Laitteet ja tulostin ja etsi portti, johon kortti on kytketty. Minun tapauksessani se on COM14 mutta se on erilainen eri tietokoneissa.

    Portin löytäminen

  3. Napsauta Tiedosto ja sitten Asetukset. Kopioi seuraava linkki Hallituksen ylimääräinen URL-osoite. ' https://dl.espressif.com/dl/package_esp32_index.json '

    Asetukset

  4. Nyt, jotta voimme käyttää ESP32: ta Arduino IDE: n kanssa, meidän on tuotava erityisiä kirjastoja, joiden avulla voimme polttaa koodia ESP32: lla ja käyttää sitä. nämä kaksi kirjastoa on liitetty alla olevaan linkkiin. Jos haluat sisällyttää kirjaston, siirry Luonnos> Sisällytä kirjasto> Lisää ZIP-kirjasto . Näkyviin tulee ruutu. Etsi tietokoneeltasi ZIP-kansio ja napsauta OK sisällyttääksesi kansiot.

    Sisällytä kirjasto

  5. Nyt mene Luonnos> Sisällytä kirjasto> Hallinnoi kirjastoja.

    Hallinnoi kirjastoja

  6. Valikko avautuu. Kirjoita hakupalkkiin Arduino JSON. Näyttöön tulee luettelo. Asentaa Aroitino JSON, kirjoittanut Benoit Blanchon.

    Arduino JSON

  7. Napsauta nyt Työkalut. Näkyviin tulee avattava valikko. Aseta kortti asentoon ESP Dev -moduuli.

    Asennuslauta

  8. Napsauta Työkalu-valikkoa uudelleen ja aseta portti, jonka havaitsit ohjauspaneelissa aiemmin.

    Portin asettaminen

  9. Lataa nyt koodi, joka on liitetty alla olevaan linkkiin, ja napsauta latauspainiketta polttaaksesi koodin ESP32-mikrokontrolleriin.

    Lähetä

Joten nyt, kun lataat koodin, saattaa tapahtua virhe. Tämä on yleisin virhe, joka voi ilmetä, jos käytät uutta versiota Arduino IDE: stä ja Arduino JSON: sta. Seuraavat virheet saattavat näkyä näytöllä.

Tiedostossa, joka sisältyy kansioon C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, tiedostosta 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 luokka ArduinoJson 5: stä. Katso arduinojson.org/upgrade oppiaksesi päivittämään ohjelmasi ArduinoJsoniksi versio 6 StaticJsonBuffer jsonBuffer; ^ C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 sisältämä tiedosto: 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 on luokka ArduinoJson 5: stä. Katso ohjeet ohjelman päivittämisestä osoitteesta arduinojson.org/upgrade. ArduinoJson-versio 6 palauttaa StaticJsonBuffer (). ParseObject (_data); ^ Useita kirjastoja löydettiin 'WiFi.h': lle Käytetty: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  kirjastot  WiFi Ei käytössä: C:  Program Files ( x86)  Arduino  libraries  WiFi Käyttämällä kirjaston WiFi-versiota 1.0 kansiossa: C:  Users  Pro  AppData  Local  Arduino15  paketit  esp32  hardware  esp32  1.0.2  kirjastot  WiFi  u00e4 Kirjasto IOXhop_FirebaseESP32-master kansiossa: C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master (legacy) Kirjaston HTTPClientin käyttö versiossa 1.2 kansiossa: C:  Users  Pro  AppData  Local  Arduino15  paketit  esp32  hardware  esp32  1.0.2  kirjastot  HTTPClient kirjaston WiFiClientSecure käyttäminen versiossa 1.0 kansiossa: C:  Users  Pro  AppData  Local  Arduino15  paketit  esp32  hardware  esp32  1.0.2  kirjastot  WiFiClientSecure Kirjaston ArduinoJson käyttäminen osoitteessa version 6.12.0 kansiossa: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Virhe koottaessa aluksella ESP32 Dev Module.

Ei ole mitään syytä huoleen, koska voimme poistaa nämä virheet noudattamalla joitain yksinkertaisia ​​vaiheita. Nämä virheet johtuvat siitä, että Arduino JSON: n uudessa versiossa on toisen luokan sijaan StaattinenJsonPuskuri. Tämä on JSON 5: n luokka. Joten voimme yksinkertaisesti poistaa tämän virheen päivittämällä Arduino IDE: n Arduino JSON -version. Mene vain Luonnos> Sisällytä kirjasto> Hallinnoi kirjastoja. Etsiä Aroitino JSON, kirjoittanut Benoit Blanchon jonka olet asentanut aiemmin. Poista ensin asennus ja aseta sitten sen versio 5.13.5. Kun olemme asettaneet vanhan version Arduino JSON: sta, asenna se uudelleen ja käännä koodi uudelleen. Tällä kertaa koodisi kääntyy onnistuneesti.

Lataa koodi klikkaus tässä.

Vaihe 6: Koodin ymmärtäminen

Tämän projektin koodi on hyvin yksinkertainen ja hyvin kommentoitu. Mutta silti koodi selitetään lyhyesti alla.

1. Alussa mukana ovat kirjastot, jotta ESP32-kortti voidaan liittää paikalliseen WiFi-yhteyteen kotona tai toimistossa. Tämän jälkeen määritetään linkki Firebase-projektiin ja Firebase-projektisi todennus. Sitten paikallisen wifi-yhteyden nimi ja salasana määritetään, jotta ESP32 voidaan yhdistää Wifi-verkkoon. Jotkin ESP32: n nastat on määritetty kytkettäviksi releen moduuleihin. ja viimein ilmoitetaan muuttuja, joka tallentaa joitain väliaikaisia ​​tietoja, jotka tulevat firebase-pilvestä.

#include // sisällytä kirjasto muodostaaksesi yhteyden paikalliseen Wifi-yhteyteen #include // Sisällytä kirjasto muodostaaksesi yhteyden Firebase-tietokantaan # määrittele FIREBASE_HOST 'coma-patient.firebaseio.com' // sisällytä Firebase-projektisi linkki #define FIREBASE_AUTH 'UrzlDZXMBNRhNZWWdd55773 '// Sisällytä Firebase-projektisi todennus #define WIFI_SSID' abcd '// kodin tai toimiston WiFi-yhteyden nimi #define WIFI_PASSWORD' abcd '// kodin tai toimiston WiFi-yhteyden salasana int r1 = 34; // tappi releen 1 kytkemiseen int r2 = 35; // nasta releen 2 kytkemiseen int temp; // variabe tietojen kuljettamiseen

2. mitätön asennus () on toiminto, jossa alustamme INPUT- tai OUTPUT-nastat. Tämä toiminto asettaa myös siirtonopeuden käyttämällä Sarja.alku () komento. Siirtonopeus on mikro-ohjaimen tiedonsiirtonopeus. Jotkut koodirivit lisätään tähän, jotta ESP32 voidaan yhdistää paikalliseen wifi-yhteyteen. Alusta yrittää muodostaa yhteyden paikalliseen wifi-yhteyteen ja tulostaa yhteyden. sarjaliitännässä. Se tulostaa ”Yhdistetty”, kun yhteys on muodostettu. Joten tämän seuraamiseksi on parempi avata sarjamonitori ja tarkistaa sen vaihe.

void setup () {Sarja.alku (115200); // siirtonopeuden asettaminen // muodosta yhteys wifi-verkkoon. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('yhdistäminen'); while (WiFi.status ()! = WL_CONNECTED) {Sarja.tulos ('.'); viive (500); } Sarja.println (); Serial.print ('kytketty:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. void loop () on toiminto, joka toimii toistuvasti silmukassa. Tässä silmukassa kirjoitamme koodin, joka kertoo mikro-ohjainkortille, mitkä tehtävät on suoritettava ja miten. Olemme hakeneet tietoja vastaan kevyt ja AC tietokannasta ja tallennetaan kahteen väliaikaiseen muuttujaan. Sitten sovelletaan neljää ehtoa kahden laitteen vaihtamiseksi tietokannasta haetun 0 tai 1 mukaisesti.

void loop () {// get value temp1 = Serial.println (Firebase.getFloat ('light')); // saat arvon valon temp2 vaihtamiselle = Serial.println (Firebase.getFloat ('AC')); // hae puhallinviiveen (1000) vaihtamisen arvo; if (temp1 == 1 && temp2 == 1) {// Valon ja tuulettimen kytkeminen päälle digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Tuulettimen kytkeminen päälle ja valon sammuttaminen digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Tuulettimen kytkeminen pois päältä ja kevyt digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Tuulettimen sammuttaminen ja valon sammuttaminen digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Tämä oli osa ensimmäistä 'Kuinka tehdä älykäs kotijärjestelmä ESP32: lla?'. Voit lisätä relemoduuleja, jos haluat hallita joitain muita kodinkoneita, ainoa asia, joka sinun on tehtävä, on lukea tietoja tulipesästä ja lisätä lisää ehtoja kytkentälle. Seuraavassa artikkelissa selitän, miten kehitetään Android-sovellus ja Firebase-tietokanta. Selitän askel askeleelta -menettelyn yhdistää Android-sovellus Firebaseen ja lähettää siihen tietoja.

Siirry seuraavaan opetusohjelmaan Klikkaa tästä