Kaip valdyti oro kondicionierių išmaniuoju telefonu, o ne nuotolinio valdymo pultu?

Šiuolaikiniame pasaulyje apsižvalgę galime pastebėti, kad viskas, kas apima elektroniką, yra tam tikru mastu automatizuota. Naujausius automatikos metodus savo namuose taiko keli žmonės. Šioje šiuolaikinėje eroje žmonės turėtų pasirinkti naujausias automatikos technikas, kad palengvintų jų gyvenimą. Paprastai savo namuose mes pasukame ĮJUNGTA , IŠJUNGTA ir rankiniu būdu nustatykite temperatūrą mūsų oro kondicionieriuose. Šiuo metu vienas komponentas, pavyzdžiui, relės modulis, gali būti naudojamas įvairiems namo elektroniniams parametrams valdyti, pavyzdžiui, buitinės technikos perjungimui, apsaugos signalizacijos stebėjimui, garažo vartų automatizavimui ir kt. Šiame straipsnyje mes ketiname sukurti sistema, kuri leis valdyti oro kondicionierių naudojant mobilią programą, o ne jos nuotolinį. Kadangi „Android“ mobilusis telefonas yra labiausiai paplitęs tarp žmonių, todėl „Android“ programa yra geriausias būdas valdyti mūsų oro kondicionierių.



Oro kondicionieriaus valdymas

Kaip sukonfigūruoti visus reikalingus išorinius įrenginius naudojant ESP32?

Norint sukurti bet kokį projektą, reikia žinoti, kokie yra pagrindiniai komponentai, kurių reikės norint jį užbaigti. Taigi puikus būdas prieš pradedant darbą yra išsamus visų komponentų sąrašas, siekiant sutaupyti laiko ir išvengti galimybės užstrigti projekto viduryje. Išsamus visų rinkoje lengvai prieinamų komponentų sąrašas pateiktas žemiau. Sutvarkę aparatūros komponentus, sukursime savo „Android“ programą oro kondicionieriui valdyti:



1 veiksmas: naudojami komponentai (techninė įranga)

  • ESP32
  • „MakerFocus I2C“ OLED ekrano modulis
  • Nuo šviesos priklausomas rezistorius
  • Paspauskite mygtuką
  • IR imtuvas
  • 1K omų rezistorius (x4)
  • BC 338 NPN tranzistorius
  • „Jumper“ kabeliai
  • TSOP imtuvas
  • Bandomoji Lenta
  • „Android“ įkroviklis

2 žingsnis: naudojami komponentai (programinė įranga)

Kaip mes ketiname padaryti a belaidis jungiklis , mums reikės mygtuko jį įjungti ir išjungti. Norime valdyti šį mygtuką mobiliuoju telefonu, todėl turėsime sukurti tam pritaikytą programą. Patogiausia programa yra „Android“ programa, ir mes turime įdiegti šias dvi programines įrangą, kad galėtume prisijungti prie tos programos. Abu jie išvardyti žemiau:



  • „Android Studio“
  • JAVA JDK

3 žingsnis: įdiekite „Android Studio“

Prieš diegiant „Android Studio“ , pirmiausia įdiegsime JAVA JDK. Norėdami tai įdiegti, spustelėkite exe failą kurį atsisiuntėte iš pirmiau pateiktos nuorodos, ir spustelėkite toliau, kol ji bus sėkmingai įdiegta. Dabar atlikite šiuos veiksmus, kad jūsų komandinė eilutė atpažintų java kaip išorinė ar vidinė komanda.



  1. Atviras Kontrolės skydelis ir spustelėkite Sistema ir apsauga .
  2. Spustelėkite Sistema.

    Sistema

  3. Spustelėkite Išplėstinis sistemos nustatymas ir tada spustelėkite Aplinkos kintamieji. Išplėstiniai sistemos nustatymai

    Išplėstiniai sistemos nustatymai

  4. Skyriuje „Sistemos kintamasis“ spustelėkite kelią, tada spustelėkite Redaguoti. Naujas Redaguoti aplinkos kintamąjį pasirodys langelis.

    Redaguoti kelią



  5. Dabar eik į C: Program Files Java kompiuteryje. Atidarykite JDK aplanką, spustelėkite šiukšliadėžės aplanką ir nukopijuokite to aplanko kelią.

    Šiukšliadėžės aplanko kelias

  6. Dabar eikite į laukelį Redaguoti aplinkos kintamąjį ir spustelėkite naują, kad sukurtumėte naują kintamąjį. Įklijuokite kelią, kurį nukopijavote atlikdami pirmiau nurodytą veiksmą, į naują kintamąjį ir išsaugokite.
  7. Jei norite patvirtinti, jei jis yra visiškai įdiegtas, atidarykite komandų eilutę ir įveskite java –versija.

    JAVA versija

Dabar, kai sėkmingai įdiegėte „Java JDK“ savo kompiuteryje. Leiskite mums dabar įdiegti „Android Studio“ savo kompiuteryje. Įdiegti šią programinę įrangą yra labai lengva. Turite atidaryti atsisiųstą failą ir spustelėti toliau, kol jūsų programinė įranga bus visiškai įdiegta.

4 veiksmas: prisijungimas prie „Firebase“

Dabar, kai įdiegėme „Android Studio“, paleiskime ją ir sukurkime naują projektą, kad susietume jį su „Firebase“. Norėdami tai padaryti, atlikite šiuos veiksmus.

  1. Paleiskite „Android Studio“ ir sukurkite naują projektą spustelėdami Tuščia veikla .
  2. Dabar pavadinkite savo projektą kaip computerSwitc, pasirinkite Kotlinas kaip kalbą, ir pasirinkite minimalų API lygį pagal savo mobilųjį telefoną.
  3. Kadangi mes ketiname naudoti internetą, kad valdytume aviečių pi kaiščius. Savo programoje nustatysime leidimą pasiekti vietinį „Wi-Fi“. Norėdami tai padaryti, eikite į app> manifestai> AndroidManifest.xml ir pridėkite šią komandą.

    Leidimas internetu

  4. Dabar spustelėkite n Įrankiai. Pasirodys išskleidžiamasis meniu, iš kurio pasirinkite „Firebase“.

    „Firebase“ ryšys

  5. Dešinėje ekrano pusėje pasirodys didelis meniu, kuriame bus pateiktas beveik visų „Firebase“ teikiamų paslaugų meniu. Bet šiuo metu pagrindinis dėmesys skiriamas realaus laiko duomenų bazei. Taigi spustelėkite „Real-Time Database“. Nuoroda į „ Išsaugoti ir gauti duomenis ' atsiras. Spustelėkite tą nuorodą.

    „Firebase“ padėjėjas

  6. Prisijunkite Prisijunkite prie „Firebase“ mygtuką. Nukreipsite į numatytąją žiniatinklio naršyklę. Pirmiausia ji paprašys prisijungti prie „Gmail“ paskyros. Tada spustelėkite Pridėkite realaus laiko duomenų bazę prie savo programos ir priimti pakeitimus.
  7. Dabar eik į „Firebase“ pultas . Ten pamatysite jau padarytą projektą. „Android“ logotipas ant tos projekcijos piktogramos reiškia, kad jis jau priklauso „Android“ programai.
  8. Nuo Vystytis kairiajame ekrano šone pasirodantį meniu pasirinkite Duomenų bazė. Mygtukas Sukurti duomenų bazę pasirodys dešinėje. Spustelėkite tą mygtuką.
  9. Pasirodys meniu, kuriame bus prašoma nustatyti jūsų duomenų bazės režimą. Spustelėkite testavimo režimas ir tada spustelėkite Įgalinti .

    Testavimo režimas

  10. Dabar tikrai svarbu prisiminti žingsnį Debesų užkarda į Realaus laiko duomenų bazė. Norėdami tai padaryti, spustelėkite mygtuką, parodytą žemiau esančiame paveikslėlyje, ir pakeiskite norimą parinktį.

    „Firebase“ realiuoju laiku

  11. Dabar spustelėkite Taisyklės skirtuką ir pakeiskite konfigūracijas į Tiesa . Kai viskas bus padaryta, spustelėkite Publikuoti .

    Konfigūracijų keitimas

  12. Vienas dalykas, kurį turite padaryti, išskyrus prijungti „Firebase“, yra atnaujinti duomenų bazės versiją. Norėdami tai padaryti, spustelėkite eik pas dokus . Dabar spustelėkite vadovai ir pasirinkite „Android“ vadovai iš ekrane pasirodančio sąrašo. Slinkite žemyn, kol pasirodys lentelė. Toje lentelėje ieškokite „Real-Time Database“ ir raskite jos versiją. mano atveju taip yra 19.1.0.

    Versija

  13. . Spustelėkite „Gradle Scripts“, meniu kairėje ekrano pusėje. Tada pasirinkite pastatytas. gradle (modulis: programa). Dabar kode ieškokite „Real-Time“ duomenų bazės versijos ir pakeiskite ją nauja.

    „Firebase“ versija

  14. Dabar sinchronizuokite projektą spustelėdami ekrano viršuje rodomą sinchronizavimo mygtuką.

5 žingsnis: maketo sudarymas

Dabar, kai mūsų „Android“ programa yra prijungta prie „Firebase“, padarykime savo programos išdėstymą, kurį vartotojas naudos kompiuteriui įjungti arba išjungti. Norėdami sukurti maketą, eikite į programa> res> maketas> activity_main.xml. kur suprojektuosime maketą. Nukopijuokite žemiau pateiktą kodą, kad sukurtumėte teksto rodinį.

 

Mūsų programos išdėstymas atrodys taip:

Programos išdėstymas

6 žingsnis: Darbo su ESP32 pradžia

Jei anksčiau nedirbote su „Arduino IDE“, nesijaudinkite, nes žingsnis po žingsnio parodomas „Arduino IDE“ nustatymas.

  1. Atsisiųskite naujausią „Arduino IDE“ versiją iš Arduino.
  2. Prijunkite „Arduino“ plokštę prie kompiuterio ir atidarykite Valdymo skydą. Spustelėkite Aparatūra ir garsas. Dabar atidaryta Prietaisai ir spausdintuvas ir suraskite prievadą, prie kurio prijungta jūsų plokštė. Mano atveju taip yra COM14 bet skirtinguose kompiuteriuose yra skirtinga.

    Rasti uostą

  3. Spustelėkite Failas, tada spustelėkite Nuostatos. Nukopijuokite šią nuorodą į Papildomas valdybos valdytojo URL. „ https://dl.espressif.com/dl/package_esp32_index.json '

    Nuostatos

  4. Dabar, norėdami naudoti ESP32 su „Arduino IDE“, turime importuoti specialias bibliotekas, kurios leis mums įrašyti kodą ESP32 ir jį naudoti. šios dvi bibliotekos yra pridėtos žemiau pateiktoje nuorodoje. Norėdami įtraukti biblioteką, eikite Eskizas> Įtraukti biblioteką> Pridėti ZIP biblioteką . Pasirodys langelis. Kompiuteryje raskite aplanką ZIP ir spustelėkite Gerai, jei norite įtraukti aplankus.

    Įskaitant biblioteką

  5. Dabar eik į Eskizas> Įtraukti biblioteką> Tvarkyti bibliotekas.

    Tvarkykite bibliotekas

  6. Bus atidarytas meniu. Paieškos juostoje įveskite Arduino JSON. Bus parodytas sąrašas. Diegti Benoit Blanchon „Arduino JSON“.

    Arduino JSON

  7. Dabar spustelėkite Įrankiai. Bus parodytas išskleidžiamasis meniu. Nustatykite lentą į ESP „Dev“ modulis.

    Valdybos nustatymas

  8. Dar kartą spustelėkite meniu Įrankis ir nustatykite prievadą, kurį anksčiau pastebėjote valdymo skydelyje.

    Uosto nustatymas

  9. Dabar įkelkite kodą, pridėtą žemiau esančioje nuorodoje, ir spustelėkite mygtuką „Įkelti“, kad įrašytumėte kodą ESP32 mikrovaldiklyje.

    Įkelti

Taigi dabar, kai įkelsite kodą, gali įvykti klaida. Tai yra dažniausiai pasitaikanti klaida, kuri gali kilti, jei naudojate naują „Arduino IDE“ ir „Arduino JSON“ versiją. Toliau pateikiamos klaidos, kurias galite pamatyti ekrane.

Į failą, įtrauktą iš C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, iš 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 yra „ArduinoJson“ klasė. Norėdami sužinoti, kaip atnaujinti programą į „ArduinoJson“, žr. Arduinojson.org/upgrade. 6 versija „StaticJsonBuffer“ „jsonBuffer“; ^ Į failą iš C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, iš C:  Users  Pro  Desktop  airconditioner  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer yra „ArduinoJson“ klasė 5. Norėdami sužinoti, kaip atnaujinti programą į, žr. Arduinojson.org/upgrade. „ArduinoJson“ 6 versija pateikia „StaticJsonBuffer“ (). ParseObject (_data); ^ Rasta kelios „WiFi.h“ bibliotekos. Naudota: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFi Nenaudojama: C:  Program Files ( x86)  Arduino  libraries  WiFi Naudojant bibliotekos „WiFi“ versiją 1.0 versijoje aplanke: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  bibliotekas  WiFi  Naudojant biblioteką IOXhop_FirebaseESP32-master aplanke: C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master (palikimas) Naudojant bibliotekos HTTPClient 1.2 versiją aplanke: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  bibliotekas  HTTPClient bibliotekos „WiFiClientSecure“ naudojimas naudojant 1.0 versiją aplanke: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFiClientSecure Biblioteka „ArduinoJson“ naudojimas 6.12.0 versija aplanke: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Klaida rengiant plokštės ESP32 „Dev“ modulį.

Nėra ko jaudintis, nes šias klaidas galime pašalinti atlikdami kelis paprastus veiksmus. Šios klaidos kyla dėl to, kad naujojoje „Arduino JSON“ versijoje vietoj klasės yra kita klasė „StaticJsonBuffer“. Tai iš tikrųjų yra JSON 5 klasė. Taigi mes galime tiesiog pašalinti šią klaidą, sumažinę „Arduino IDS“ versiją. Paprasčiausiai eikite į Eskizas> Įtraukti biblioteką> Tvarkyti bibliotekas. Ieškoti Benoit Blanchon „Arduino JSON“ kurį jau įdiegėte. Pirmiausia pašalinkite jį, tada nustatykite jo versiją 5.13.5. Dabar, kai nustatėme seną „Arduino JSON“ versiją, įdiekite ją dar kartą ir sukompiliuokite kodą. Šį kartą jūsų kodas bus sėkmingai sukompiliuotas.

7 veiksmas: supraskite kodą

Šio projekto kodas yra labai paprastas ir jis trumpai paaiškinamas žemiau. Be to, kodą su reikalingomis bibliotekomis taip pat galima atsisiųsti iš Čia.

1. Pradžioje turime įtraukti dvi bibliotekas, kurios bus naudojamos mūsų kodui prijungti prie „Firebase“ duomenų bazės, o antrąją - naudoti IR jutiklį su mūsų mikrovaldikliu. Tada mes pridėsime mūsų „Firebase“ pagrindinį kompiuterį ir autentifikavimą, nes po to mes ESP32 sugebėtų rasti mūsų duomenų bazė . Tada pateiksime vietinio interneto SSID ir slaptažodį. Tada mes turime padaryti objektą, kad galėtume stumti duomenis iš savo debesies. Tada mes nustatysime kaištį, prie kurio bus prijungtas mūsų jutiklis, taip pat padarysime objektą, kuris tvarkys duomenis, gaunamus iš IR jutiklio.

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_SIDID 'PRO' Firefase 'FirebaseDefase' Firefase 'Firefase' Firebase 'Firebase' Firefase 'Firebase' Firefase 'Firefase' Firebase 'Firebase' Firefase 'Firefase' Firebase 'Firefase' Firebase''Define WIFI_SIDID 'PRO; int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); iššifruoti_rezultatų rezultatus;

2. negaliojanti sąranka () , yra kilpa, einanti paspaudus įjungimo mygtuką arba įjungus mikrovaldiklį. Čia mes paleisime mūsų IR jutiklio imtuvą ir parašysime kodą, kad galėtume prijungti savo mikrovaldiklį prie vietinio interneto ryšio.

negaliojanti sąranka () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Paleiskite imtuvą // prisijunkite prie „wifi“. „WiFi.begin“ (WIFI_SSID, WIFI_PASSWORD); Serial.println ('jungiantis'); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); vėlavimas (500); } Serial.println (); Serial.print ('prijungtas:'); Serial.println („WiFi.localIP“ ()); „Firebase.begin“ (FIREBASE_HOST, FIREBASE_AUTH); „Firebase.enableClassicRequest“ („FirebaseData“, tiesa); }

3. tuščia kilpa () yra funkcija, kuri kartojasi cikle. Čia šis kodas tikrina, ar vertės gaunamos iš jutiklio.

void loop () {if (irrecv.decode (& results)) {Serial.println (rezultatai.value, HEX); „dump“ (& rezultatai); irrecv.resume (); // Gauti kitą vertę} delsa (500); }

Keturi. negaliojantis sąvartynas () yra funkcija, naudojama pirmiausia nustatyti nuotolinio valdymo pulto, siunčiančio signalą jutikliui, modelį. ji taip pat išmeta dekodavimo_rezultatų struktūrą.

void dump (iššifruoti_rezultatai * rezultatai) {int count = results-> rawlen; if (rezultatai-> dekodavimo_tipas == Nežinomas) {Serial.print ('Nežinomas kodavimas:'); } else if (rezultatai-> dekodavimo_tipas == NEC) {Serial.print ('Decoded NEC:'); } else if (rezultatai-> dekodavimo_tipas == SONY) {Serial.print ('Dekoduotas SONY:'); } else if (rezultatai-> dekodavimo_tipas == RC5) {Serial.print ('Iškoduotas RC5:'); } else if (rezultatai-> dekodavimo_tipas == RC6) {Serial.print ('Atkoduotas RC6:'); } to if, jei (rezultatai-> dekodavimo_tipas == PANASONIC) {Serial.print ('iššifruotas PANASONIC - adresas:'); Serial.print (rezultatai-> panasonicAddress, HEX); „Serial.print“ („Reikšmė:“); } else if (rezultatai-> dekodavimo_tipas == JVC) {Serial.print ('Dekoduotas JVC:'); } Serial.print (rezultatai-> reikšmė, HEX); Serial.print ('('); Serial.print (rezultatai-> bitai, DEC); Serial.println ('bitai)'); Serial.print („Neapdorotas (“); Serial.print (skaičius, DEC); Serial.print (’):’); for (int i = 0; i rawbuf [i] * USECPERTICK, DEC); } else {Serial.print (- (int) results-> rawbuf [i] * USECPERTICK, DEC); } Serial.print (''); } Serial.println (''); }

8 žingsnis: Techninės įrangos paruošimas

Įdegę kodą į ESP32, turime paruošti aparatinę įrangą ir pritvirtinti prie sienos ar bet kurios kitos tinkamos vietos šalia oro kondicionieriaus. Pritvirtinkite komponentus ant duonos lentos, vadovaudamiesi viršuje pateikta schema. Surinkę grandinę įjunkite ESP modulį naudodami „Android“ įkroviklį. Geriau aparatūros korpusą suprojektuoti namuose arba tiesiog įdėti aparatūrą į „Raspberry Pi“ dėklą.

9 žingsnis: G paskutiniai prisilietimai

Surinkę aparatūrą, mes ją išbandysime. Prijunkite „Android“ įkroviklį prie ESP32, įjunkite jį ir įsitikinkite, kad jūsų telefone yra geri jūsų vietinio tinklo signalai interneto ryšys . Atidarykite savo programą ir paspauskite mygtuką, pamatysite, kad dabar galite valdyti kintamosios srovės ryšį naudodamiesi mobiliąja programa.

Šiandien viskas tiek buvo, tikiuosi, jums būtų patiko perskaityti šį straipsnį ir pasidarę savo prototipą, kaip valdyti oro kondicionierių namuose, nepamirškite pasidalinti savo patirtimi!