Hogyan lehet irányítani a légkondicionálót okostelefonjával a távirányító helyett?

A modern világban, ha körülnézünk, láthatjuk, hogy minden, ami az elektronikát is magában foglalja, bizonyos mértékben automatizált. A legújabb automatizálási technikákat néhány ember alkalmazza otthonában. Ebben a modern korban az embereknek a legújabb automatizálási technikákat kell választaniuk, hogy megkönnyítsék életüket. Általában otthonunkban megfordulunk TOVÁBB , KI és manuálisan állítsa be a hőmérsékletet a légkondicionálóinkban. Manapság egyetlen alkatrész, például egy relé modul használható a ház különféle elektronikus paramétereinek vezérlésére, például a háztartási gépek kapcsolására, a biztonsági riasztások felügyeletére, a garázskapu automatizálására stb. Ebben a cikkben kifejlesztünk egy rendszer, amely lehetővé teszi a légkondicionáló vezérlését a távvezérlő helyett egy mobil alkalmazás használatával. Mivel az androidos mobil a leggyakoribb az emberek körében, ezért az androidos alkalmazás a legjobb megoldás a légkondicionálónk vezérlésére.



Légkondicionáló vezérlés

Hogyan állítsd be az összes szükséges perifériát az ESP32 segítségével?

Bármely projekt elkészítéséhez tudnia kell, hogy melyek azok az alapvető összetevők, amelyekre a projekt végrehajtásához szüksége lesz. Tehát a munka megkezdése előtt kiváló megközelítés az összes alkatrész teljes listájának elkészítése az időmegtakarítás érdekében, és annak elkerülése érdekében, hogy elakadjon a projekt közepén. Az alábbiakban felsoroljuk a piacon könnyen elérhető összes alkatrész teljes listáját. A hardverkomponensek elrendezése után megtervezzük a saját androidos alkalmazásunkat a légkondicionálónk vezérlésére:



1. lépés: Használt alkatrészek (hardver)

  • ESP32
  • MakerFocus I2C OLED kijelző modul
  • Fényfüggő ellenállás
  • Nyomógomb kapcsoló
  • IR vevő
  • 1K ohmos ellenállás (x4)
  • BC 338 NPN tranzisztor
  • Jumper kábelek
  • TSOP vevő
  • Kenyérlemez
  • Android töltő

2. lépés: Használt alkatrészek (szoftver)

Ahogy a vezeték nélküli kapcsoló , szükségünk lesz egy gombra a be- és kikapcsoláshoz. Mobiltelefon használatával szeretnénk működtetni ezt a gombot, ezért fejlesztenünk kell egy alkalmazást ehhez. A legkényelmesebb alkalmazás egy androidos alkalmazás, és telepítenünk kell ezt a két szoftvert, hogy csatlakozzunk az alkalmazáshoz. Mindkettőt az alábbiakban soroljuk fel:



  • Android Studio
  • JAVA JDK

3. lépés: Az Android Studio telepítése

Telepítés előtt Android Studio , először a JAVA JDK-t telepítjük. Ennek telepítéséhez kattintson a gombra alkalmazás fájl amelyet a fenti linkről töltött le, és kattintson a tovább gombra, amíg sikeresen települ. Most hajtsa végre a következő lépéseket, hogy a parancssor felismerje Jáva külső vagy belső parancsként.



  1. Nyisd ki Vezérlőpult és kattintson a gombra Rendszer és biztonság .
  2. Kattintson Rendszer.

    Rendszer

  3. Kattintson Haladó rendszerbeállítások majd kattintson a gombra Környezeti változók. Haladó rendszerbeállítások

    Haladó rendszerbeállítások

  4. A Rendszerváltozó részben kattintson az elérési útra, majd a szerkesztés gombra. Egy új A környezeti változó szerkesztése mező jelenik meg.

    Path szerkesztése



  5. Most menj a C: Program Files Java számítógépén. Nyissa meg a JDK mappát, kattintson a kuka mappára, majd másolja át a mappa elérési útját.

    A kuka mappa elérési útja

  6. Most lépjen a Környezeti változó szerkesztése mezőbe, és kattintson az új gombra egy új változó létrehozásához. Illessze be a fenti lépésben másolt elérési utat az új változóba, és mentse el.
  7. Most, hogy megerősítse, ha teljesen telepítve van, nyissa meg a parancssort és írja be java –verzió.

    JAVA verzió

Most, hogy sikeresen telepítette a Java JDK-t a számítógépére. Telepítsük most az Android Stúdiót a számítógépre. A szoftver telepítése nagyon egyszerű. Meg kell nyitnia a letöltött fájlt, és kattintson a tovább gombra, amíg a szoftvert nem telepíti teljesen.

4. lépés: Csatlakozás a Firebase-hez

Miután telepítettük az Android Stúdiót, indítsuk el, és készítsünk egy új projektet a tűzbázishoz való csatlakoztatáshoz. Ehhez kövesse az alábbi lépéseket.

  1. Indítsa el az Android Stúdiót, és készítsen egy új projektet a gombra kattintva Üres tevékenység .
  2. Most nevezze el projektjét computerSwitc, válassza Kotlin mint nyelvet, és válassza ki a mobiltelefonjának megfelelő minimális API-szintet.
  3. Mivel az interneten fogjuk ellenőrizni a málna pi csapjait. Az alkalmazásunkban engedélyt adunk a helyi wifi elérésére. Ehhez menjen a app> manifestes> AndroidManifest.xml és adja hozzá a következő parancsot.

    Internet engedély

  4. Kattintson az n gombra Eszközök. Megjelenik egy legördülő menü, amelyből válassza a lehetőséget Firebase.

    Firebase kapcsolat

  5. A képernyő jobb oldalán egy nagy menü jelenik meg, amely szinte a Firebase által nyújtott szolgáltatások menüjét tartalmazza. De jelenleg a valós idejű adatbázisra helyezzük a hangsúlyt. Tehát kattintson a Valós idejű adatbázis elemre. Link a „ Adatok mentése és visszakeresése ' meg fog jelenni. Kattintson erre a linkre.

    Firebase Assistant

  6. Csatlakozzon Csatlakozás a Firebase-hez gomb. Ez az alapértelmezett webböngészőbe visz. Először arra fogja kérni, hogy jelentkezzen be Gmail-fiókjába. Ezután kattintson a gombra Adja hozzá a valós idejű adatbázist az alkalmazásához és fogadja el a változásokat.
  7. Most menj a Firebase konzol . Ott látni fog egy már elkészült projektet. A projet ikonján található android logó azt jelenti, hogy már tartozik egy androidos alkalmazáshoz.
  8. Tól Fejleszteni A képernyő bal oldalán megjelenő menüben válassza a lehetőséget Adatbázis. A gomb Adatbázis létrehozása jobb oldalon jelenik meg. Kattintson erre a gombra.
  9. Megjelenik egy menü, amely az adatbázis módjának beállítását kéri. Kattintson teszt üzemmódban majd kattintson Engedélyezze .

    Teszt üzemmódban

  10. Most nagyon fontos emlékezni a változásra Cloud Firestore nak nek Valós idejű adatbázis. Ehhez kattintson az alábbi képen látható gombra, és változtassa meg a kívánt opciót.

    Valós idejű Firebase

  11. Most kattintson a gombra Szabályok fülre, és módosítsa a konfigurációkat Igaz . Miután minden elkészült, kattintson a gombra Közzététel .

    A konfigurációk módosítása

  12. Az egyik dolog, amit meg kell tennie a Firebase csatlakoztatásán kívül, az adatbázis-verzió frissítése. Ehhez kattintson a gombra menj a dokihoz . Most kattintson a gombra útmutatók és válassza ki Android-útmutatók a képernyőn megjelenő listából. Görgessen lefelé, amíg meg nem jelenik egy táblázat. Keresse meg a valós idejű adatbázist abban a táblázatban, és keresse meg annak verzióját. az én esetemben az 19.1.0.

    Változat

  13. . Kattintson Gradle Scripts, menü a képernyő bal oldalán. Ezután válassza ki épült. fokozat (modul: kb.). Most a kódban keresse meg a Valós idejű adatbázis verzióját, és cserélje le az újra.

    Firebase verzió

  14. Most szinkronizálja a projektet a képernyő tetején megjelenő szinkronizálás gombra kattintva.

5. lépés: Elrendezés készítése

Most, amikor androidos alkalmazásunk csatlakozik a firebase-hez, készítsünk egy elrendezést az alkalmazásunkról, amelyet a felhasználó a számítógép be- vagy kikapcsolására fog használni. Elrendezés elkészítéséhez lépjen a következőre: app> res> layout> activity_main.xml. ahol megtervezünk egy elrendezést. Szöveges nézet létrehozásához másolja oda az alább megadott kódot.

 

Az alkalmazásunk elrendezése így fog kinézni:

Alkalmazás elrendezése

6. lépés: Az ESP32 használatának megkezdése

Ha korábban nem dolgozott az Arduino IDE-n, ne aggódjon, mert az Arduino IDE beállításának lépésről lépésre az alábbiakban látható.

  1. Töltse le az Arduino IDE legújabb verzióját innen: Arduino.
  2. Csatlakoztassa Arduino kártyáját a számítógéphez, és nyissa meg a Vezérlőpultot. Kattintson Hardver és hang. Most nyitva Eszközök és nyomtató és keresse meg azt a portot, amelyhez a táblája csatlakozik. Az én esetemben az COM14 de a különböző számítógépeken más.

    Port megtalálása

  3. Kattintson a Fájl, majd a Beállítások elemre. Másolja a következő linket a A Board Manager további URL-je. „ https://dl.espressif.com/dl/package_esp32_index.json '

    preferenciák

  4. Az ESP32 és az Arduino IDE együttes használatához speciális könyvtárakat kell importálnunk, amelyek lehetővé teszik számunkra, hogy kódot írjunk az ESP32-re és használjuk. ez a két könyvtár az alábbi linken található. A könyvtár felvételéhez lépjen tovább Vázlat> Könyvtár hozzáadása> ZIP-könyvtár hozzáadása . Megjelenik egy doboz. Keresse meg a ZIP mappát a számítógépén, és kattintson az OK gombra a mappák felvételéhez.

    Beleértve a könyvtárat is

  5. Most menj a Vázlat> Könyvtár hozzáadása> Könyvtárak kezelése.

    A könyvtárak kezelése

  6. Megnyílik egy menü. Írja be a keresősávba Arduino JSON. Megjelenik egy lista. Telepítés Aroitino JSON, Benoit Blanchon.

    Arduino JSON

  7. Most kattintson a gombra Eszközök. Megjelenik egy legördülő menü. Állítsa a táblát ESP Dev modul.

    Az igazgatóság beállítása

  8. Kattintson ismét az Eszköz menüre, és állítsa be azt a portot, amelyet korábban a kezelőpanelen észlelt.

    Port beállítása

  9. Most töltse fel az alábbi linken csatolt kódot, és kattintson a feltöltés gombra, hogy megírja a kódot az ESP32 mikrokontrolleren.

    Feltöltés

Tehát most, amikor feltölti a kódot, hiba léphet fel. Ez a leggyakoribb hiba, amely az Arduino IDE és az Arduino JSON új verziójának használata esetén fordulhat elő. Az alábbiakban láthatja a képernyőn megjelenő hibákat.

A C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 fájlból: C:  Users  Pro  Desktop  airconditioner  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer egy osztály az ArduinoJson 5-ből. Kérjük, olvassa el az arduinojson.org/upgrade webhelyet, hogy megtudja, hogyan frissítheti programját ArduinoJson-ra. 6. verzió StaticJsonBuffer jsonBuffer; ^ A C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 fájlból: C:  Users  Pro  Desktop  airconditioner  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: hiba: A StaticJsonBuffer egy osztály az ArduinoJson 5-ből. Kérjük, olvassa el az arduinojson.org/upgrade webhelyet, ahol megtudhatja, hogyan frissítse a programot Az ArduinoJson 6. verziója visszaadja a StaticJsonBuffer (). ParseObject (_data); ^ Több könyvtár található a „WiFi.h” fájlhoz. Használt: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFi Nem használt: C:  Program Files ( x86)  Arduino  libraries  WiFi A WiFi könyvtár használata az 1.0 verziójú mappában: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFi IOXhop_FirebaseESP32-master könyvtár használata a mappában: C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master (örökölt) A HTTPClient könyvtár használata az 1.2-es verzióban a mappában: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  libraries  HTTPClient A WiFiClientSecure könyvtár használata az 1.0 verzióban a mappában: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure ArduinoJson könyvtár használata 6.12.0 verzió a mappában: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Hiba fordításkor az ESP32 Dev modul fórumához.

Nincs miért aggódni, mert néhány egyszerű lépést követve kiküszöbölhetjük ezeket a hibákat. Ezek a hibák azért merülnek fel, mert az Arduino JSON új verziója helyett egy másik osztály található StaticJsonBuffer. Ez valójában a JSON 5 osztálya. Tehát egyszerűen kiküszöbölhetjük ezt a hibát az Arduino IDE-s Arduino JSON verziójának leminősítésével. Egyszerűen menjen a Vázlat> Könyvtár hozzáadása> Könyvtárak kezelése. Keressen Aroitino JSON, Benoit Blanchon amelyet korábban telepített. Először távolítsa el, majd állítsa a verzióját 5.13.5. Miután beállítottuk az Arduino JSON régi verzióját, telepítse újra és fordítsa újra a kódot. Ezúttal a kód fordítása sikeres lesz.

7. lépés: A kód megértése

A projekt kódja nagyon egyszerű, és az alábbiakban röviden elmagyarázzák. Továbbá a kód a szükséges könyvtárakkal is letölthető innen Itt.

1. Először két olyan könyvtárat kell beiktatnunk, amelyek segítségével kódunkat összekapcsoljuk a Firebase adatbázissal, a másodikat pedig az IR érzékelő mikrokontrollerünkkel történő használatához. Ezután hozzáadjuk a firebase gazdagépét és hitelesítését, mert utána a ESP32 képes lenne megtalálni a mi adatbázis . Ezután megadjuk a helyi internet-kapcsolat SSID-jét és jelszavát. Ezután létre kell hoznunk egy objektumot, hogy a felhőnkből adatokat tudjunk lenyomni és kipattanni. Ezután meghatározzuk azt a csapot, amelyhez az érzékelőnk csatlakozni fog, és egy objektumot is készítünk az IR-érzékelőből érkező adatok kezelésére.

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_SSID 'pro' #define WIFI_PASSWORD 'abcdefgh' FirebaseData firebaseData; int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); eredmények dekódolása_eredmények;

2. void setup () , az a hurok, amely az engedélyező gomb megnyomásakor vagy a mikrovezérlő bekapcsolásakor fut. Itt elindítjuk az infravörös érzékelő vevőjét, és beírjuk a kódot, hogy elkezdhessük a mikrovezérlőnk összekapcsolását a helyi internetkapcsolattal.

void setup () {Soros.kezdés (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Indítsa el a vevőt // csatlakozzon a wifihez. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('összekötő'); while (WiFi.status ()! = WL_CONNECTED) {Soros.nyomtatás ('.'); késés (500); } Soros.println (); Serial.print ('csatlakoztatva:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.enableClassicRequest (firebaseData, true); }

3. void loop () egy ciklusban ismételten futó függvény. Itt ez a kód ellenőrzi, hogy az értékek az érzékelőtől származnak-e.

void loop () {if (irrecv.decode (& results)) {Soros.println (eredmények.érték, HEX); dump (& eredmények); irrecv.resume (); // fogadja a következő értéket} késleltetés (500); }

Négy. void dump () egy olyan funkció, amellyel először azonosítják a távvezérlő modelljét, amely a jelet küldi az érzékelőnek. ki is dobja a decode_results struktúrát.

void dump (dekódolási_eredmények * eredmények) {int szám = eredmények-> rawlen; if (results-> decode_type == Ismeretlen) {Serial.print ('Ismeretlen kódolás:'); } else if (results-> decode_type == NEC) {Serial.print ('Dekódolt NEC:'); } else if (results-> decode_type == SONY) {Serial.print ('Dekódolt SONY:'); } else if (results-> decode_type == RC5) {Serial.print ('Dekódolt RC5:'); } else if (results-> decode_type == RC6) {Serial.print ('Dekódolt RC6:'); } to else if (eredmények-> dekódolási_típus == PANASONIC) {Serial.print ('Dekódolt PANASONIC - Cím:'); Soros nyomtatás (eredmények-> panasonicAddress, HEX); Soros.nyomtatás ('Érték:'); } else if (results-> decode_type == JVC) {Serial.print ('Dekódolt JVC:'); } Soros nyomtatás (eredmények-> érték, HEX); Soros nyomtatás ('('); Soros nyomtatás (eredmények-> bitek, DEC); Soros nyomtatás (sorok) '; Soros nyomtatás ('Nyers ('); Soros nyomtatás (számlálás, DEC); Soros nyomtatás ('):'); for (int i = 0; i rawbuf [i] * USECPERTICK, DEC); } else {Soros nyomtatás (- (int) eredmények-> rawbuf [i] * USECPERTICK, DEC); } Soros nyomtatás (''); } Soros.println (''); }

8. lépés: A hardver előkészítése

Miután beírtuk a kódot az ESP32-be, elő kell készítenünk a hardvert és fel kell erősítenünk a falra vagy bármely más megfelelő helyre a légkondicionáló közelében. Rögzítse az alkatrészeket a kenyérlapra a fent bemutatott ábra követésével. Az áramkör összeszerelése után kapcsolja be az ESP modult az Android töltővel. Jobb, ha otthon tervezzük meg a hardver burkolatát, vagy egyszerűen beletesszük a hardvert a Raspberry Pi tokba.

9. lépés: G az utolsó simításokat

A hardver összeszerelése után tesztelni fogjuk. Csatlakoztassa az androidos töltőt az ESP32-hez, és kapcsolja be, és győződjön meg arról, hogy telefonja megfelelő erősségű-e a helyi jelekkel Internet kapcsolat . Nyissa meg az alkalmazását, és nyomja meg a gombot, és látni fogja, hogy most már mobilalkalmazásával vezérelheti az AC-t.

Ennyi volt a mai nap, remélem, örömmel töltötte el ezt a cikket, és miután elkészítette saját prototípusát a légkondicionáló otthoni vezérléséhez, ne felejtse el megosztani tapasztalatait!