Kako nadzirati klimatsko napravo s pametnim telefonom namesto z daljinskim upravljalnikom?

Če pogledamo naokoli, lahko vidimo, da je vse, kar vključuje elektroniko, do neke mere avtomatizirano. Najnovejše tehnike avtomatizacije sprejme nekaj ljudi v svojih domovih. V tej moderni dobi bi se morali ljudje za lažje življenje odločiti za najnovejše tehnike avtomatizacije. Običajno v svojih domovih zavijemo VKLOPLJENO , IZKLOPLJENO in ročno nastavite temperaturo v naših klimatskih napravah. Dandanes lahko eno samo komponento, kot je relejni modul, uporabljamo za nadzor različnih elektronskih parametrov hiše, na primer preklapljanje gospodinjskih aparatov, nadzor varnostnih alarmov, avtomatizacijo garažnih vrat itd. V tem članku bomo razvili sistem, ki vam bo omogočal upravljanje klimatske naprave z uporabo mobilne aplikacije namesto daljinskega upravljalnika. Ker je mobilni telefon android najpogostejši med ljudmi, je aplikacija za Android najboljša možnost za nadzor naše klimatske naprave.



Nadzor klimatske naprave

Kako nastaviti vse potrebne zunanje naprave z ESP32?

Če želite narediti kateri koli projekt, morate vedeti, katere so osnovne komponente, ki jih boste potrebovali za dokončanje. Odličen pristop je torej, da pred začetkom del sestavite popoln seznam vseh komponent, da prihranite čas in se izognete možnosti, da bi zataknili sredi projekta. Spodaj je podan popoln seznam vseh komponent, ki so lahko dostopne na trgu. Po ureditvi komponent strojne opreme bomo oblikovali lastno android aplikacijo za upravljanje naše klimatske naprave:



1. korak: Uporabljene komponente (strojna oprema)

  • ESP32
  • Zaslonski modul MakerFocus I2C OLED
  • Upor odvisen od svetlobe
  • Potisno stikalo
  • IR sprejemnik
  • 1K ohmski upor (x4)
  • BC 338 NPN tranzistor
  • Jumper kabli
  • TSOP sprejemnik
  • Breadboard
  • Android polnilnik

2. korak: Uporabljene komponente (programska oprema)

Kot bomo naredili a brezžično stikalo , za vklop in izklop potrebujemo gumb. Za upravljanje tega gumba želimo uporabiti mobilni telefon, zato bomo morali razviti aplikacijo za to. Najbolj priročna aplikacija je aplikacija za Android in za namestitev te aplikacije moramo namestiti ti dve programski opremi. Oba sta navedena spodaj:



  • Android Studio
  • JAVA JDK

3. korak: Namestitev Android Studio

Pred namestitvijo Android Studio , najprej bomo namestili JAVA JDK. Če želite to namestiti, kliknite exe mapa ki ste jo prenesli z zgornje povezave in kliknite Naprej, dokler ni uspešno nameščena. Zdaj pojdite skozi naslednje korake, da bo vaš ukazni poziv prepoznal java kot zunanji ali notranji ukaz.



  1. Odprto Nadzorna plošča in kliknite Sistem in varnost .
  2. Kliknite na Sistem.

    Sistem

  3. Kliknite na Napredne sistemske nastavitve in nato kliknite Okoljske spremenljivke. Napredne sistemske nastavitve

    Napredne sistemske nastavitve

  4. V razdelku Sistemska spremenljivka kliknite pot in nato uredi. Novo Uredi spremenljivko okolja polje se prikaže.

    Uredi pot



  5. Zdaj pa pojdi na C: Programske datoteke Java v računalniku. Odprite mapo JDK, kliknite mapo bin in nato kopirajte pot do te mape.

    Mapa poti bin

  6. Zdaj pojdite na polje Uredi okoljsko spremenljivko in kliknite novo, da ustvarite novo spremenljivko. Pot, ki ste jo kopirali v zgornjem koraku, prilepite v novo spremenljivko in jo shranite.
  7. Če želite potrditi, če je popolnoma nameščen, odprite ukazni poziv in vnesite java –verzija.

    Različica JAVA

Zdaj, ko ste v svoj računalnik uspešno namestili Java JDK. Dovolite nam, da zdaj namestimo Android Studio v vaš računalnik. Namestitev te programske opreme je zelo enostavna. Odprto datoteko morate odpreti in klikniti naprej, dokler ni popolnoma nameščena programska oprema.

4. korak: Povezava z Firebase

Zdaj, ko smo namestili Android Studio, ga zaženimo in naredimo nov projekt za njegovo povezavo z ognjiščem. Če želite to narediti, sledite naslednjim korakom.

  1. Zaženite Android Studio in ustvarite nov projekt s klikom na Prazna dejavnost .
  2. Zdaj poimenujte svoj projekt kot computerSwitc, izberite Kotlin kot jezik in izberite najnižjo raven API glede na vaš mobilni telefon.
  3. Ker bomo uporabljali internet za nadzor zatičev maline pi. V naši aplikaciji bomo nastavili dovoljenje za dostop do lokalnega wifi-ja. Če želite to narediti, pojdite na app> manifesti> AndroidManifest.xml in dodajte naslednji ukaz.

    Dovoljenje za internet

  4. Zdaj kliknite n Orodja. Prikaže se spustni meni, iz katerega izberite Firebase.

    Povezava Firebase

  5. Na desni strani zaslona se prikaže velik meni, ki bo zagotovil meni skoraj vseh storitev, ki jih nudi Firebase. Toda zdaj se osredotočamo predvsem na podatkovno bazo v realnem času. Torej kliknite Real-Time Database. Povezava do » Shranjevanje in pridobivanje podatkov ' se bo prikazal. Kliknite to povezavo.

    Pomočnik Firebase

  6. Povežite se Povežite se z Firebase . Odprl vas bo privzeti spletni brskalnik. Najprej vas bo pozval, da se prijavite v svoj Gmail račun. Nato kliknite Dodajte aplikacijo Realtime Database v svojo aplikacijo in sprejmite spremembe.
  7. Zdaj pa pojdi na Konzola Firebase . Tam boste videli že narejen projekt. Logotip android na ikoni te projekcije pomeni, da že pripada aplikaciji android.
  8. Iz Razviti meniju, ki se prikaže na levi strani zaslona, ​​izberite Zbirka podatkov. Gumb za Ustvari bazo podatkov se prikaže na desni. Kliknite ta gumb.
  9. Pojavil se bo meni z zahtevo za nastavitev načina vaše baze podatkov. Kliknite na Testni način in nato kliknite Omogoči .

    Testni način

  10. Zdaj je zelo pomemben korak, ki si ga je treba zapomniti, spremeniti Cloud Firestore do Baza podatkov v realnem času. To storite tako, da kliknete gumb, prikazan na spodnji sliki, in spremenite želeno možnost.

    Firebase v realnem času

  11. Zdaj kliknite na Pravila zavihek in spremenite konfiguracije na Prav . Ko je vse končano, kliknite Objavi .

    Spreminjanje konfiguracij

  12. Ena stvar, ki jo morate storiti, razen povezave firebase, je posodobitev različice baze podatkov. Za to kliknite pojdite na dokumente . Zdaj kliknite na vodniki in izberite Android vodniki s seznama, ki se prikaže na zaslonu. Pomaknite se navzdol, dokler se ne prikaže tabela. V tej tabeli poiščite podatkovno bazo v realnem času in poiščite njeno različico. v mojem primeru je 19.1.0.

    Različica

  13. . Kliknite na Gradle skripte, meni na levi strani zaslona. Nato izberite zgrajeno. gradle (modul: aplikacija). Zdaj v kodi poiščite različico baze podatkov v realnem času in jo zamenjajte z novo.

    Različica Firebase

  14. Zdaj sinhronizirajte projekt s klikom na gumb za sinhronizacijo, ki se prikaže na vrhu zaslona.

5. korak: Izdelava postavitve

Zdaj, ko je naša aplikacija za Android povezana s firebaseom, naredimo postavitev naše aplikacije, ki jo bo uporabnik uporabljal za vklop ali izklop računalnika. Če želite narediti postavitev, pojdite na app> res> layout> activity_main.xml. kjer bomo oblikovali postavitev. Kopirajte spodnjo kodo, da ustvarite besedilni pogled.

 

Postavitev naše aplikacije bo videti tako:

Postavitev aplikacije

6. korak: Uvod v ESP32

Če še niste delali na Arduino IDE, ne skrbite, ker je spodaj prikazan korak za korakom za nastavitev Arduino IDE.

  1. Prenesite najnovejšo različico Arduino IDE iz Arduino.
  2. Povežite svojo ploščo Arduino z računalnikom in odprite nadzorno ploščo. Kliknite na Strojna oprema in zvok. Zdaj odprto Naprave in tiskalnik in poiščite vrata, na katera je priključena vaša plošča. V mojem primeru je COM14 v različnih računalnikih pa je drugače.

    Iskanje pristanišča

  3. Kliknite Datoteka in nato Nastavitve. Kopirajte naslednjo povezavo v Dodatni URL upravitelja odbora. “ https://dl.espressif.com/dl/package_esp32_index.json '

    Preference

  4. Zdaj moramo za uporabo ESP32 z Arduino IDE uvoziti posebne knjižnice, ki nam bodo omogočile zapisovanje kode na ESP32 in njeno uporabo. ti knjižnici sta priloženi v spodnji povezavi. Če želite vključiti knjižnico, pojdite na Skica> Vključi knjižnico> Dodaj knjižnico ZIP . Pojavilo se bo polje. V računalniku poiščite mapo ZIP in kliknite V redu, da vključite mape.

    Vključno s knjižnico

  5. Zdaj pa pojdi na Skica> Vključi knjižnico> Upravljanje knjižnic.

    Upravljanje knjižnic

  6. Odpre se meni. V iskalno vrstico vnesite Arduino JSON. Pojavil se bo seznam. Namestite Arduino JSON, avtor Benoit Blanchon.

    Arduino JSON

  7. Zdaj kliknite na Orodja. Prikaže se spustni meni. Nastavite ploščo na ESP Dev modul.

    Nastavitev plošče

  8. Znova kliknite meni Orodje in nastavite vrata, ki ste jih prej opazili na nadzorni plošči.

    Nastavitev vrat

  9. Zdaj naložite kodo, ki je priložena spodnji povezavi, in kliknite gumb za prenos, da zapišete kodo na mikrokrmilnik ESP32.

    Naloži

Torej, ko boste naložili kodo, lahko pride do napake. To je najpogostejša napaka, ki se lahko pojavi, če uporabljate novo različico Arduino IDE in Arduino JSON. Sledijo napake, ki jih lahko vidite na zaslonu.

V datoteki iz C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, iz 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 je razred iz ArduinoJson 5. Če želite izvedeti, kako nadgradite svoj program na ArduinoJson, glejte arduinojson.org/upgrade različica 6 StaticJsonBuffer jsonBuffer; ^ V datoteki, vključeni iz C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, iz 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 je razred iz ArduinoJson 5. Glejte arduinojson.org/upgrade, če želite izvedeti, kako nadgradite svoj program na ArduinoJson različica 6 vrne StaticJsonBuffer (). ParseObject (_data); ^ Za 'WiFi.h' je bilo najdenih več knjižnic. Uporabljeno: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  knjižnice  WiFi Ni uporabljeno: C:  Programske datoteke ( x86)  Arduino  libraries  WiFi Uporaba knjižnice WiFi v različici 1.0 v mapi: C:  Users  Pro  AppData  Local  Arduino15  пакети  esp32  hardware  esp32  1.0.2  libraries  WiFi Uporaba knjižnice IOXhop_FirebaseESP32-master v mapi: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Uporaba knjižnice HTTPClient različice 1.2 v mapi: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Uporaba knjižnice WiFiClientSecure v različici 1.0 v mapi: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Uporaba knjižnice ArduinoJson na različica 6.12.0 v mapi: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson status izstopa 1 Napaka pri prevajanju za modul ESP32 Dev.

Nič ne skrbi, ker lahko te napake odpravimo z nekaj preprostimi koraki. Te napake nastajajo, ker ima nova različica Arduino JSON namesto drugega razred StaticJsonBuffer. To je pravzaprav razred JSON 5. Tako lahko to napako preprosto odpravimo tako, da znižamo različico Arduino JSON našega Arduino IDE. Preprosto pojdite na Skica> Vključi knjižnico> Upravljanje knjižnic. Išči Arduino JSON, avtor Benoit Blanchon ki ste ga že namestili. Najprej ga odstranite in nato nastavite njegovo različico na 5.13.5. Zdaj, ko smo nastavili staro različico Arduino JSON, jo znova namestite in ponovno prevedite kodo. Tokrat bo vaša koda uspešno prevedena.

7. korak: Razumevanje kodeksa

Koda tega projekta je zelo preprosta in je na kratko razložena v nadaljevanju. Poleg tega je mogoče tudi prenesti kodo s potrebnimi knjižnicami Tukaj.

1. Na začetku moramo vključiti dve knjižnici, ki se bosta uporabljali za povezavo naše kode z zbirko podatkov Firebase, drugo pa za uporabo IR senzorja z našim mikrokrmilnikom. Nato bomo dodali gostitelja in preverjanje pristnosti našega firebase-a, ker po tem še ESP32 bi našli našo zbirka podatkov . Nato bomo navedli SSID in geslo naše lokalne internetne povezave. Nato moramo narediti predmet, da bomo lahko potiskali in prikazovali podatke iz našega oblaka. Nato bomo določili zatič, na katerega bo priključen naš senzor, in naredili bomo tudi predmet za obdelavo podatkov, ki prihajajo iz IR senzorja.

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_SSFID 'WIFI_SSIDAWIDE' WDI 'Wide_DafDag' WIFI_SSFID 'WIFI_SDFDag' WIFI_SSFID 'WIFI_SDFDag' WIFI_SSIDAWIDE 'WDI' int RECV_PIN = 19; IRrecv irecv (RECV_PIN); rezultati dekodiranja_rezultatov;

2. void setup () , je zanka, ki se zažene, ko pritisnete gumb za omogočanje ali ko je mikrokrmilnik vklopljen. Tukaj bomo zagnali sprejemnik našega IR senzorja in napisali kodo, da začnemo mikrokrmilnik povezovati z lokalno internetno povezavo.

void setup () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); unrecv.enableIRIn (); // Zaženimo sprejemnik // povežemo z wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('povezovanje'); medtem ko (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); zamuda (500); } Serial.println (); Serial.print ('povezan:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.enableClassicRequest (firebaseData, true); }

3. void loop () je funkcija, ki se večkrat izvaja v zanki. Tukaj ta koda preverja, ali vrednosti prihajajo iz senzorja.

void loop () {if (unrecv.decode (& results)) {Serial.println (results.value, HEX); dump (& rezultati); unrecv.resume (); // prejmemo naslednjo vrednost} delay (500); }

Štiri. izpraznitev praznine () je funkcija, ki se uporablja za prvo identifikacijo modela daljinskega upravljalnika, ki pošilja signal senzorju. izbriše tudi strukturo decode_results.

izpraznitev praznine (decode_results * rezultati) {int count = results-> rawlen; if (results-> decode_type == UNKNOWN) {Serial.print ('Neznano kodiranje:'); } else if (rezultati-> decode_type == NEC) {Serial.print ('Decoded NEC:'); } else if (rezultati-> decode_type == SONY) {Serial.print ('Decoded SONY:'); } else if (rezultati-> decode_type == RC5) {Serial.print ('Decoded RC5:'); } else if (rezultati-> decode_type == RC6) {Serial.print ('Decoded RC6:'); } to else if (rezultati-> decode_type == PANASONIC) {Serial.print ('Decoded PANASONIC - Naslov:'); Serial.print (rezultati-> panasonicAddress, HEX); Serial.print ('Vrednost:'); } else if (results-> decode_type == JVC) {Serial.print ('Decoded JVC:'); } Serial.print (rezultati-> vrednost, HEX); Serial.print ('('); Serial.print (rezultati-> bit, DEC); Serial.println ('bit)'); Serial.print ('Raw ('); Serial.print (count, DEC); Serial.print ('):'); for (int i = 0; i rawbuf [i] * USECPERTICK, DEC); } else {Serial.print (- (int) rezultati-> rawbuf [i] * USECPERTICK, DEC); } Serial.print (''); } Serial.println (''); }

8. korak: Priprava strojne opreme

Po zapisu kode v ESP32 moramo pripraviti strojno opremo in jo pritrditi na steno ali katero koli drugo primerno mesto v bližini klimatske naprave. Komponente pritrdite na ploščo tako, da sledite diagramu, predstavljenemu na vrhu. Po sestavljanju vezja vklopite modul ESP s polnilnikom Android. Bolje je, da ohišje strojne opreme oblikujete doma ali pa jo preprosto namestite v ohišje Raspberry Pi.

9. korak: G iving Final Touches

Po sestavi strojne opreme jo bomo preizkusili. Polnilnik za android priključite na ESP32 in ga vklopite ter se prepričajte, da ima telefon dobro moč lokalnih signalov internetna povezava . Odprite aplikacijo in pritisnite gumb, videli boste, da lahko zdaj z mobilno aplikacijo nadzorujete AC.

To je bilo vse za danes, upam, da bi vam bilo všeč brati ta članek in po izdelavi lastnega prototipa za upravljanje klimatske naprave doma ne pozabite deliti svojih izkušenj!