Kako upravljati klima uređajem pametnim telefonom umjesto daljinskim upravljačem?

U modernom svijetu, ako se osvrnemo oko sebe, možemo vidjeti da je sve što uključuje elektroniku donekle automatizirano. Nekoliko ljudi u svojim domovima usvaja najnovije tehnike automatizacije. U ovom modernom dobu ljudi bi se trebali odlučiti za najnovije tehnike automatizacije kako bi si olakšali život. Obično se u svojim kućama okrenemo NA , ISKLJUČENO i podesite temperaturu ručno u našim klima uređajima. Danas se jedna komponenta poput relejnog modula može koristiti za upravljanje raznim elektroničkim parametrima kuće, na primjer, prebacivanje kućanskih aparata, nadzor sigurnosnih alarma, automatizacija garažnih vrata itd. U ovom ćemo članku razviti sustav koji će vam omogućiti upravljanje klima uređajem pomoću mobilne aplikacije umjesto daljinskog upravljača. Kako je android mobitel najčešći među ljudima, tako je android aplikacija najbolja opcija za upravljanje našim klima uređajem.



Upravljanje klima uređajem

Kako postaviti sve potrebne periferne uređaje s ESP32?

Da bi se napravio bilo koji projekt, mora se znati koje su osnovne komponente koje će mu trebati da ga dovrši. Stoga je izvrstan pristup prije početka rada sastaviti cjelovit popis svih komponenata kako biste uštedjeli vrijeme i izbjegli mogućnost da zapnete usred projekta. Cjelovit popis svih komponenata koje su lako dostupne na tržištu dan je u nastavku. Nakon rasporeda hardverskih komponenata, osmislit ćemo vlastitu android aplikaciju za upravljanje našim klima uređajem:



Korak 1: Korištene komponente (hardver)

  • ESP32
  • MakerFocus I2C OLED modul zaslona
  • Otpornik ovisno o svjetlu
  • Pritisni prekidač
  • IC prijemnik
  • Otpornik 1K Ohm (x4)
  • BC 338 NPN tranzistor
  • Jumper kabeli
  • TSOP prijamnik
  • Breadboard
  • Android punjač

Korak 2: Korištene komponente (softver)

Kao što ćemo napraviti bežični prekidač , trebat će nam gumb za njegovo uključivanje i isključivanje. Za upravljanje ovim gumbom želimo koristiti mobilni telefon, pa ćemo za to morati razviti aplikaciju. Najprikladnija aplikacija je android aplikacija i moramo instalirati ova dva softvera da bismo se povezali s tom aplikacijom. Obojica su navedena u nastavku:



  • Android Studio
  • JAVA JDK

Korak 3: Instaliranje Android Studija

Prije instalacije Android Studio , prvo ćemo instalirati JAVA JDK. Da biste to instalirali, kliknite na exe datoteka koju ste preuzeli s gornje veze i kliknite Sljedeće dok se uspješno ne instalira. Sada prođite kroz sljedeće korake kako bi vaš redak za naredbe prepoznao Java kao vanjska ili unutarnja naredba.



  1. Otvoren Upravljačka ploča i kliknite na Sistem i sigurnost .
  2. Kliknite na Sustav.

    Sustav

  3. Kliknite na Napredne postavke sustava a zatim kliknite na Varijable okoliša. Napredne postavke sistema

    Napredne postavke sistema

  4. U odjeljku Varijabla sustava kliknite na stazu, a zatim na uređivanje. Nova Uredi varijablu okoliša pojavit će se okvir.

    Uredi put



  5. Sada idite na C: Programske datoteke Java u računalu. Otvorite mapu JDK, kliknite mapu bin, a zatim kopirajte put do te mape.

    Mapa staze za smeće

  6. Sada idite na okvir Uredi varijablu okoliša i kliknite na novo da napravite novu varijablu. Zalijepite put koji ste kopirali u gornjem koraku u novu varijablu i spremite je.
  7. Sada da biste potvrdili, ako je potpuno instaliran, otvorite naredbeni redak i upišite java –verzija.

    JAVA verzija

Sada ste uspješno instalirali Java JDK na svoje računalo. Dopustite nam da sada instaliramo Android Studio na vaše računalo. Instalacija ovog softvera vrlo je jednostavna. Morate otvoriti preuzetu datoteku i kliknuti dalje dok se softver potpuno ne instalira.

Korak 4: Povezivanje s Firebaseom

Sad kad smo instalirali Android Studio, pokrenimo ga i napravimo novi projekt za njegovo povezivanje s firebaseom. Da biste to učinili, slijedite sljedeće korake.

  1. Pokrenite Android Studio i napravite novi projekt klikom na Prazna aktivnost .
  2. Sada svom projektu dajte naziv computerSwitc, Odaberi Kotlin kao jezik i odaberite minimalnu razinu API-ja prema vašem mobilnom telefonu.
  3. Budući da ćemo se Internetom služiti za upravljanje iglama maline pi. Postavit ćemo dopuštenje u našoj aplikaciji za pristup lokalnom wifiju. Da biste to učinili, idite na aplikacija> manifesti> AndroidManifest.xml i dodajte sljedeću naredbu.

    Internet dozvola

  4. Sada kliknite n Alati. Pojavit će se padajući izbornik s kojeg odaberite Firebase.

    Firebase veza

  5. Na desnoj strani zaslona pojavit će se veliki izbornik koji će pružiti izbornik gotovo svih usluga koje Firebase pruža. Ali trenutno je naš glavni fokus na bazi podataka u stvarnom vremenu. Dakle, kliknite bazu podataka u stvarnom vremenu. Poveznica na “ Spremi i preuzmi podatke ' pojavit će se. Kliknite tu vezu.

    Firebase pomoćnik

  6. Povežite se dalje Povežite se s Firebaseom dugme. Odvest će vas do zadanog web preglednika. Prvo će se od vas tražiti da se prijavite na svoj Gmail račun. Zatim kliknite na Dodajte bazu podataka u stvarnom vremenu u svoju aplikaciju i prihvatite promjene.
  7. Sada idite na Firebase konzola . Tamo ćete vidjeti već izrađeni projekt. Logotip androida na ikoni te projekcije znači da već pripada aplikaciji android.
  8. Od Razviti izbornik koji se pojavljuje na lijevoj strani zaslona, ​​odaberite Baza podataka. Gumb od Stvori bazu podataka pojavit će se s desne strane. Kliknite taj gumb.
  9. Pojavit će se izbornik u kojem se traži da postavite način rada vaše baze podataka. Kliknite na testni način a zatim kliknite Omogućiti .

    Način ispitivanja

  10. Sada je zaista važan korak koji treba zapamtiti je promjena Cloud Firestore do Baza podataka u stvarnom vremenu. Da biste to učinili, kliknite gumb prikazan na donjoj slici i promijenite željenu opciju.

    Firebase u stvarnom vremenu

  11. Sada kliknite na Pravila karticu i promijenite konfiguracije u Pravi . Kad je sve gotovo, kliknite Objaviti .

    Promjena konfiguracija

  12. Jedna stvar koju trebate učiniti osim povezivanja firebasea jest ažuriranje verzije baze podataka. Za to kliknite na idite na dokumente . Sada kliknite na vodiči i odaberite Vodiči za Android s popisa koji se pojavljuje na zaslonu. Pomaknite se prema dolje dok se ne pojavi tablica. Potražite bazu podataka u stvarnom vremenu u toj tablici i pronađite njezinu verziju. u mom slučaju jest 19.1.0.

    Verzija

  13. . Kliknite na Gradle skripte, izbornik na lijevoj strani zaslona. Zatim odaberite izgrađena. gradle (Modul: aplikacija). Sada u kodu potražite verziju baze podataka u stvarnom vremenu i zamijenite je novom.

    Verzija Firebasea

  14. Sada sinkronizirajte projekt klikom na gumb za sinkronizaciju koji se pojavljuje na vrhu zaslona.

Korak 5: Izrada izgleda

Sada, dok je naša android aplikacija povezana s firebaseom, napravimo izgled naše aplikacije koji će korisnik koristiti za uključivanje ili isključivanje računala. Da biste napravili raspored, idite na app> res> layout> activity_main.xml. gdje ćemo dizajnirati izgled. Kopirajte dolje navedeni kod da biste napravili tekstualni prikaz.

 

Izgled naše aplikacije izgledat će ovako:

Izgled aplikacije

Korak 6: Početak rada s ESP32

Ako prije niste radili na Arduino IDE-u, ne brinite jer je korak po korak za postavljanje Arduino IDE-a prikazan u nastavku.

  1. Preuzmite najnoviju verziju Arduino IDE sa Arduino.
  2. Spojite svoju Arduino ploču s računalom i otvorite upravljačku ploču. Kliknite na Hardver i zvuk. Sada otvoreno Uređaji i pisač i pronađite priključak na koji je spojena vaša ploča. U mom slučaju jest COM14 ali je različito u različitim računalima.

    Pronalaženje luke

  3. Kliknite Datoteka, a zatim Postavke. Kopirajte sljedeću vezu u Dodatni URL upravitelja odbora. “ https://dl.espressif.com/dl/package_esp32_index.json '

    Postavke

  4. Sada, da bismo koristili ESP32 s Arduino IDE-om, moramo uvesti posebne biblioteke koje će nam omogućiti da narežemo kod na ESP32 i da ga koristimo. ove su dvije knjižnice u prilogu na donjoj poveznici. Da biste uključili knjižnicu, idite na Skica> Uključi biblioteku> Dodaj ZIP biblioteku . Pojavit će se okvir. Pronađite mapu ZIP na računalu i kliknite U redu da biste uključili mape.

    Uključujući knjižnicu

  5. Sada idite na Skica> Uključi biblioteku> Upravljanje knjižnicama.

    Upravljanje knjižnicama

  6. Otvorit će se izbornik. U traku za pretraživanje upišite Arduino JSON. Pojavit će se popis. Instalirati Arduino JSON Benoita Blanchona.

    Arduino JSON

  7. Sada kliknite na Alati. Pojavit će se padajući izbornik. Postavite ploču na ESP razvojni modul.

    Postavljanje ploče

  8. Ponovno kliknite izbornik Alat i postavite priključak koji ste prije vidjeli na upravljačkoj ploči.

    Postavka porta

  9. Sada prenesite kôd koji je priložen na donjoj poveznici i kliknite gumb za prijenos da biste spalili kôd na ESP32 mikrokontroleru.

    Učitaj

Dakle, sada kada učitate kôd, može se dogoditi pogreška. Ovo je najčešća pogreška koja se može dogoditi ako koristite novu verziju Arduino IDE-a i Arduino JSON-a. Slijede pogreške koje se mogu vidjeti na ekranu.

U datoteci uključenoj 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 klasa iz ArduinoJsona 5. Pogledajte arduinojson.org/upgrade da biste saznali kako nadograditi svoj program na ArduinoJson verzija 6 StaticJsonBuffer jsonBuffer; ^ U datoteci uključenoj 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 klasa iz ArduinoJsona 5. Pogledajte arduinojson.org/upgrade da biste saznali kako nadograditi svoj program na ArduinoJson verzija 6 vraća StaticJsonBuffer (). ParseObject (_data); ^ Pronađeno je više knjižnica za 'WiFi.h' Korišteno: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  libraries  WiFi Ne koristi se: C:  Programske datoteke ( x86)  Arduino  libraries  WiFi Korištenje knjižnice WiFi u verziji 1.0 u mapi: C:  Users  Pro  AppData  Local  Arduino15  Packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Korištenje knjižnice IOXhop_FirebaseESP32-master u mapi: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Korištenje knjižnice HTTPClient verzije 1.2 u mapi: C:  Users  Pro  AppData  Local  Arduino15  paketi  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Korištenje knjižnice WiFiClientSecure na verziji 1.0 u mapi: C:  Users  Pro  AppData  Local  Arduino15  Packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Korištenje knjižnice ArduinoJson na verzija 6.12.0 u mapi: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson status izlaza 1 Pogreška pri sastavljanju za modul ESP32 Dev.

Ne treba se brinuti jer ove pogreške možemo ukloniti slijedeći nekoliko jednostavnih koraka. Te pogreške nastaju jer nova verzija Arduino JSON-a ima drugu klasu umjesto StaticJsonBuffer. Ovo je zapravo klasa JSON 5. Tako ovu grešku možemo jednostavno ukloniti snižavanjem verzije Arduino JSON našeg Arduino IDE-a. Jednostavno idite na Skica> Uključi biblioteku> Upravljanje knjižnicama. Traziti Arduino JSON Benoita Blanchona koje ste već instalirali. Prvo ga deinstalirajte, a zatim postavite njegovu verziju na 5.13.5. Sada, kad smo postavili staru verziju Arduino JSON-a, instalirajte je ponovo i prekompajlirajte kôd. Ovaj put, vaš će se kod uspješno sastaviti.

Korak 7: Razumijevanje kodeksa

Kôd ovog projekta vrlo je jednostavan i ukratko je objašnjen u nastavku. Nadalje, kod s potrebnim knjižnicama također se može preuzeti s Ovdje.

1. Na početku moramo uključiti dvije knjižnice koje će se koristiti za povezivanje našeg koda s Firebase bazom podataka, a drugu za upotrebu IR senzora s našim mikrokontrolerom. Tada ćemo dodati hosta i provjeru autentičnosti našeg firebase-a jer nakon toga i naš ESP32 moći pronaći naš baza podataka . Tada ćemo dostaviti SSID i lozinku naše lokalne internetske veze. Zatim moramo napraviti objekt kako bismo mogli gurati i izbacivati ​​podatke iz našeg oblaka. Tada ćemo definirati pin na koji će biti povezan naš senzor, a napravit ćemo i objekt za obradu podataka koji dolaze iz IR senzora.

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_SSDDaWide 'WIFI_SSFIDaWIDE' WIFI_SSFIDaWIDE 'WIFI_SSFIDaWIDE' WIFI_SSFIDaWIDE 'WIFI_SSFID' WIFI_SSDIDaWIDE 'WIFI_SSFID' WIFI_SSFID 'WIFI_SSDIDAWIDE' WIFI_SSIDAWIDE 'WIFI_SSDIDAWIDE' WAID ' int RECV_PIN = 19; IRrecv neispravni (RECV_PIN); rezultati dekodiranja_ rezultata;

2. void postavljanje () , je petlja koja se pokreće kad se pritisne gumb za omogućivanje ili kada je mikrokontroler uključen. Ovdje ćemo pokrenuti prijamnik našeg IR senzora i napisati kod za početak povezivanja našeg mikrokontrolera s lokalnom internetskom vezom.

void setup () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); unrecv.enableIRIn (); // Pokreni prijamnik // poveži se na wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('povezivanje'); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); kašnjenje (500); } Serial.println (); Serial.print ('povezano:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.enableClassicRequest (firebaseData, istina); }

3. petlja void () je funkcija koja se ponavlja u petlji. Ovdje ovaj kod provjerava dolaze li vrijednosti sa senzora.

void loop () {if (unrecv.decode (& results)) {Serial.println (results.value, HEX); dump (& rezultati); unrecv.resume (); // primamo sljedeću vrijednost} delay (500); }

Četiri. izbacivanje praznine () je funkcija koja se koristi za prvo prepoznavanje modela daljinskog upravljača koji šalje signal senzoru. također izbacuje strukturu decode_results.

odbacivanje praznine (rezultati dekodiranja * rezultati) {int count = results-> rawlen; if (results-> decode_type == UNKNOWN) {Serial.print ('Nepoznato 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 - Adresa:'); Serial.print (rezultati-> panasonicAddress, HEX); Serial.print ('Vrijednost:'); } else if (rezultati-> decode_type == JVC) {Serial.print ('Decoded JVC:'); } Serial.print (rezultati-> vrijednost, HEX); Serial.print ('('); Serial.print (rezultati-> bitovi, DEC); Serial.println ('bitovi)'); 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 (''); }

Korak 8: Priprema hardvera

Nakon spaljivanja koda u ESP32, moramo pripremiti hardver i pričvrstiti ga na zid ili bilo koje drugo prikladno mjesto u blizini klima uređaja. Pričvrstite komponente na ploču za ploču slijedeći shemu prikazanu na vrhu. Nakon sastavljanja sklopa, uključite ESP modul pomoću Android punjača. Bolje je kućište hardvera dizajnirati kod kuće ili ga jednostavno staviti unutar kućišta Raspberry Pi.

9. korak: G iving Final Touches

Nakon sastavljanja hardvera testirat ćemo ga. Spojite android punjač na ESP32 i uključite ga te se pobrinite da vaš telefon ima dobru jačinu lokalnih signala priključak za internet . Otvorite svoju aplikaciju i pritisnite gumb, vidjet ćete da sada možete kontrolirati svoj AC putem svoje mobilne aplikacije.

To je bilo sve za danas, nadam se da biste uživali čitajući ovaj članak, a nakon što napravite vlastiti prototip za upravljanje klima uređajem kod kuće, ne zaboravite podijeliti svoje iskustvo!