Kuidas konditsioneeri juhtida puldi asemel nutitelefoniga?

Kaasaegses maailmas võime ringi vaadates näha, et kõik, mis sisaldab elektroonikat, on mingil määral automatiseeritud. Uusimaid automaatikatehnikaid võtavad oma kodus kasutusele vähesed inimesed. Praegusel ajastul peaksid inimesed oma elu lihtsustamiseks valima uusimad automaatikatehnikad. Tavaliselt meie kodudes pöördume PEAL , VÄLJAS ja seadistage meie kliimaseadmetes temperatuur käsitsi. Tänapäeval saab maja mitmesuguste elektrooniliste parameetrite juhtimiseks kasutada ühte komponenti, näiteks releemoodulit, näiteks kodumasinate ümberlülitamine, valvesignalisatsioonide jälgimine, garaažiuste automaatika jne. Selles artiklis töötame välja süsteem, mis võimaldab teil konditsioneeri juhtida, kasutades selle kaugjuhtimispuldi asemel mobiilirakendust. Kuna android mobiil on inimeste seas kõige levinum, on androidi rakendus meie kliimaseadme juhtimiseks parim võimalus.



Konditsioneeri juhtimine

Kuidas seadistada kõik vajalikud välisseadmed ESP32-ga?

Mis tahes projekti tegemiseks peab teadma, millised on põhikomponendid, mida keegi selle lõpuleviimiseks vajab. Nii on suurepärane lähenemine enne töö alustamist kõigi komponentide täielik loetelu koostamine, et säästa aega ja vältida võimalust projekti keskele kinni jääda. Allpool on toodud kõigi turul hõlpsasti kättesaadavate komponentide täielik loetelu. Pärast riistvarakomponentide korraldamist kujundame oma konditsioneeri juhtimiseks oma Android-rakenduse:



1. samm: kasutatud komponendid (riistvara)

  • ESP32
  • MakerFocus I2C OLED-ekraanimoodul
  • Valgusest sõltuv takisti
  • Nupu lüliti
  • IR-vastuvõtja
  • 1K oomi takisti (x4)
  • BC 338 NPN transistor
  • Jumperkaablid
  • TSOP vastuvõtja
  • Leivaplaat
  • Androidi laadija

2. samm: kasutatud komponendid (tarkvara)

Kui me teeme a juhtmeta lüliti , vajame selle sisse- ja väljalülitamiseks nuppu. Selle nupu kasutamiseks soovime kasutada mobiiltelefoni, seega peame selle jaoks välja töötama rakenduse. Kõige mugavam rakendus on android-rakendus ja selle rakendusega ühenduse loomiseks peame installima need kaks tarkvara. Mõlemad on loetletud allpool:



  • Android Studio
  • JAVA JDK

3. samm: installige Android Studio

Enne installimist Android Studio , installime kõigepealt JAVA JDK. Selle installimiseks klõpsake nuppu exe faili ülaltoodud lingilt alla laaditud ja klõpsake nuppu Edasi, kuni see on edukalt installitud. Nüüd tehke järgmised sammud, nii et teie käsuviip tuvastaks java välise või sisemise käsuna.



  1. Avatud Kontrollpaneel ja klõpsake nuppu Süsteem ja turvalisus .
  2. Kliki Süsteem.

    Süsteem

  3. Kliki Täpsem süsteemi seadistamine ja seejärel klõpsake nuppu Keskkonnamuutujad. Süsteemi täpsemad seaded

    Süsteemi täpsemad seaded

  4. Klõpsake jaotises Süsteemimuutuja teed ja seejärel käsku Muuda. Uus Muuda keskkonnamuutujat ilmub kast.

    Muuda rada



  5. Nüüd mine C: Program Files Java arvutisse. Avage JDK kaust, klõpsake prügikasti kaustal ja kopeerige seejärel selle kausta tee.

    Prügikasti kausta tee

  6. Nüüd minge kasti Muuda keskkonnamuutujat ja klõpsake uue muutuja loomiseks nuppu Uus. Kleepige ülaltoodud etapis kopeeritud tee uude muutujasse ja salvestage see.
  7. Nüüd veenduge, et see on täielikult installitud, avage käsuviip ja tippige java –versioon.

    JAVA versioon

Nüüd, kui olete Java JDK edukalt oma arvutisse installinud. Installime nüüd Android Studio oma arvutisse. Selle tarkvara installimine on väga lihtne. Peate avama allalaaditud faili ja klõpsama edasi, kuni teie tarkvara on täielikult installitud.

4. samm: ühendus Firebase'iga

Nüüd, kui oleme installinud Android Studio, laseme selle käivitada ja koostada uus projekt selle ühendamiseks tuletõrjebaasiga. Selleks toimige järgmiselt.

  1. Käivitage Android Studio ja tehke uus projekt, klõpsates nuppu Tühi tegevus .
  2. Nüüd nimetage oma projekti nimeks computerSwitc, valige Kotlin keelena ja valige vastavalt oma mobiiltelefonile minimaalne API-tase.
  3. Kuna vaarika pi tihvtide juhtimiseks kavatseme kasutada Internetti. Määrame oma rakenduses loa juurdepääsuks kohalikule wifi-le. Selleks minge aadressile rakendus> manifestid> AndroidManifest.xml ja lisage järgmine käsk.

    Interneti-luba

  4. Klõpsake nüüd nuppu n Tööriistad. Ilmub rippmenüü, millest valige Firebase.

    Firebase'i ühendus

  5. Ekraani paremasse serva ilmub suur menüü, mis pakub peaaegu kõigi Firebase'i pakutavate teenuste menüüd. Kuid praegu on meie põhirõhk reaalajas andmebaasil. Nii et klõpsake reaalajas andmebaasil. Link saidile Andmete salvestamine ja hankimine ' ilmub. Klõpsake sellel lingil.

    Firebase'i abimees

  6. Ühendage Ühendage Firebase'iga nuppu. See viib teid vaikebrauserisse. Esiteks palub see teil oma Gmaili kontole sisse logida. Seejärel klõpsake nuppu Lisage oma rakendusse reaalajas andmebaas ja nõustuge muudatustega.
  7. Nüüd mine Firebase'i konsool . Seal näete juba tehtud projekti. Selle projeti ikooni androidi logo tähendab, et see kuulub juba android-rakendusse.
  8. Alates Arenda ekraani vasakus servas kuvatavas menüüs valige Andmebaas. Nupp Loo andmebaas ilmub paremale. Klõpsake seda nuppu.
  9. Ilmub menüü, kus palutakse määrata teie andmebaasi režiim. Kliki testrežiim ja seejärel klõpsake nuppu Luba .

    Testrežiim

  10. Nüüd on tõesti oluline samm meeles pidada Pilv Firestore kuni Reaalajas andmebaas. Selleks klõpsake alloleval pildil näidatud nupul ja muutke soovitud suvandit.

    Reaalajas Firebase

  11. Nüüd klõpsake nuppu Reeglid vahekaardil ja muutke konfiguratsiooniks Tõsi . Kui kõik on tehtud, klõpsake nuppu Avalda .

    Konfiguratsioonide muutmine

  12. Üks asi, mida peate tegema lisaks Firebase'i ühendamisele, on andmebaasi versiooni värskendamine. Selleks klõpsake nuppu mine dokumentide juurde . Nüüd klõpsake nuppu juhendid ja valige Androidi juhendid ekraanil kuvatavast loendist. Kerige alla, kuni ilmub tabel. Otsige sellest tabelist reaalajas andmebaasi ja leidke selle versioon. minu puhul on 19.1.0.

    Versioon

  13. . Kliki Gradle Scripts, menüü ekraani vasakul küljel. Seejärel valige ehitatud. gradle (moodul: rakendus). Nüüd otsige koodist reaalajas andmebaasi versiooni ja asendage see uuega.

    Firebase'i versioon

  14. Nüüd sünkroonige projekt, klõpsates ekraani ülaosas kuvataval sünkroniseerimisnupul.

5. samm: paigutuse tegemine

Nüüd, kui meie androidirakendus on ühendatud firebase'iga, tehkem meie rakenduse paigutus, mida kasutaja kasutab arvuti sisse- või väljalülitamiseks. Paigutuse tegemiseks minge aadressile rakendus> res> küljendus> activity_main.xml. kus kujundame küljenduse. Kopeerige tekstivaate tegemiseks allpool toodud kood.

 

Meie rakenduse paigutus näeb välja selline:

Rakenduse paigutus

6. 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.

    Sealhulgas raamatukogu

  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.

    Juhatuse seadmine

  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  airconditioner  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer on ArduinoJson'i klass. Palun lugege arduinojson.org/upgrade, et õppida, kuidas oma programmi ArduinoJsonile uuendada. 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  airconditioner  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 tegelikult JSON 5 klass. Nii saame selle vea lihtsalt kõrvaldada, viies Arduino IDS-i Arduino JSON-i versiooni madalamale versioonile. 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.

7. samm: koodeksist aru saamine

Selle projekti kood on väga lihtne ja seda selgitatakse lühidalt allpool. Lisaks saab vajalike teekidega koodi alla laadida ka aadressilt Siin.

1. Alustuseks peame lisama kaks teeki, mida kasutatakse meie koodi ühendamiseks Firebase'i andmebaasiga, ja teist, et kasutada IR-andurit meie mikrokontrolleriga. Siis lisame oma tuletõrjebaasi hosti ja autentimise, sest pärast seda on meie ESP32 suudaks leida meie andmebaasi . Seejärel edastame kohaliku Interneti-ühenduse SSID ja parooli. Seejärel peame tegema objekti, et saaksime oma pilvest andmeid lükata ja poputada. Seejärel määratleme tihvti, kuhu meie andur ühendatakse, ja teeme ka objekti IR-andurilt tulevate andmete käitlemiseks.

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_SSID 'PRO' Firefaste 'FirmaDefine_Pilt int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); dekodeeri_tulemused tulemused;

2. kehtetu seadistamine () , on ring, mis töötab lubamisnupu vajutamisel või mikrokontrolleri sisselülitamisel. Siin käivitame oma IR-anduri vastuvõtja ja kirjutame koodi, et hakata oma mikrokontrollerit kohaliku Interneti-ühendusega ühendama.

void setup () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Käivitage vastuvõtja // ühendage wifi-ga. 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); Firebase.enableClassicRequest (firebaseData, tõene); }

3. void loop () on funktsioon, mis töötab korduvalt silmusena. Siin kontrollib see kood, kas väärtused tulevad andurilt.

void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); dump (& tulemused); irrecv.resume (); // järgmise väärtuse saamine} delay (500); }

Neli. void dump () on funktsioon, mida kasutatakse kõigepealt andurile signaali edastava puldi mudeli tuvastamiseks. see tühistab ka struktuuri decode_results.

void dump (dekodeeri_tulemused * tulemused) {int arv = tulemused-> rawlen; if (results-> decode_type == UNKNOWN) {Serial.print ('Tundmatu kodeering:'); } else if (tulemused-> dekodeerimise_tüüp == NEC) {Serial.print ('Dekodeeritud NEC:'); } else if (tulemused-> dekodeerimise_tüüp == SONY) {Serial.print ('Dekodeeritud SONY:'); } else if (tulemused-> dekodeerimise_tüüp == RC5) {Serial.print ('Dekodeeritud RC5:'); } else if (tulemused-> dekodeerimise_tüüp == RC6) {Serial.print ('Dekodeeritud RC6:'); } muule if (results-> decode_type == PANASONIC) {Serial.print ('Dekodeeritud PANASONIC - aadress:'); Serial.print (tulemused-> panasonicAddress, HEX); Serial.print ('Väärtus:'); } else if (tulemused-> dekodeerimise_tüüp == JVC) {Serial.print ('Dekodeeritud JVC:'); } Serial.print (tulemused-> väärtus, HEX); Serial.print ('('); Serial.print (tulemused-> bitti, DEC); Serial.println ('bitid)'); Serial.print ('Raw ('); Serial.print (count, DEC); Serial.print ('):'); for (int i = 0; i rawbuf [i] * USECPERTICK, DEC); } else {Serial.print (- (int) tulemused-> rawbuf [i] * USECPERTICK, DEC); } Serial.print (''); } Serial.println (''); }

8. samm: Riistvara ettevalmistamine

Pärast koodi kirjutamist ESP32-sse peame riistvara ette valmistama ja kinnitama selle seinale või muule kliimaseadme lähedale sobivale kohale. Kinnitage komponendid leivalauale, järgides ülaosas toodud skeemi. Pärast vooluahela kokkupanekut lülitage ESP moodul Android-laadija abil sisse. Parem on riistvara korpus kujundada kodus või panna riistvara lihtsalt Raspberry Pi korpuse sisse.

9. samm: G viimaseid puudutusi

Pärast riistvara kokkupanekut testime seda. Ühendage androidlaadija ESP32-ga ja lülitage see sisse ning veenduge, et teie telefonil oleks teie kohaliku signaali tugevus internetiühendus . Avage rakendus ja vajutage nuppu, näete, et saate nüüd oma AC-d oma mobiilirakendusega juhtida.

Täna oli see kõik, loodan, et teile oleks meeldinud seda artiklit lugeda ja pärast oma konditsioneeri juhtimiseks kodus prototüübi tegemist ärge unustage oma kogemusi jagada!