Kā kontrolēt gaisa kondicionieri ar viedtālruni, nevis tālvadības pulti?

Mūsdienu pasaulē, ja mēs paskatāmies apkārt, mēs varam redzēt, ka viss, kas ietver elektroniku, zināmā mērā tiek automatizēts. Dažus cilvēkus savās mājās izmanto jaunākās automatizācijas metodes. Šajā mūsdienu laikmetā cilvēkiem vajadzētu izvēlēties jaunākās automatizācijas metodes, lai atvieglotu viņu dzīvi. Parasti savās mājās mēs vēršamies ON , IZSLĒGTS un manuāli iestatiet temperatūru mūsu gaisa kondicionieros. Mūsdienās atsevišķu komponentu, piemēram, releja moduli, var izmantot, lai kontrolētu dažādus mājas elektroniskos parametrus, piemēram, sadzīves tehnikas pārslēgšanu, apsardzes signalizāciju uzraudzību, garāžas durvju automatizāciju utt. Šajā rakstā mēs izstrādāsim sistēma, kas ļaus jums kontrolēt gaisa kondicionieri, izmantojot mobilo lietojumprogrammu, nevis tā tālvadības pulti. Tā kā android mobilais ir visizplatītākais cilvēku vidū, tāpēc android lietojumprogramma ir labākā iespēja kontrolēt mūsu gaisa kondicionieri.



Gaisa kondicioniera vadība

Kā iestatīt visas nepieciešamās perifērijas ierīces ar ESP32?

Lai izveidotu jebkuru projektu, jāzina, kādi ir galvenie komponenti, kas tam būs nepieciešami, lai to pabeigtu. Tāpēc lieliska pieeja pirms darba uzsākšanas ir visu sastāvdaļu pilnīga saraksta sastādīšana, lai ietaupītu laiku un izvairītos no iespējas iestrēgt projekta vidū. Pilns visu komponentu saraksts, kas ir viegli pieejami tirgū, ir sniegts zemāk. Pēc aparatūras komponentu sakārtošanas mēs izstrādāsim savu android lietojumprogrammu mūsu gaisa kondicionētāja kontrolei:



1. darbība: izmantotie komponenti (aparatūra)

  • ESP32
  • MakerFocus I2C OLED displeja modulis
  • Gaismas atkarīgais rezistors
  • Nospiediet pogas slēdzi
  • IR uztvērējs
  • 1K omu rezistors (x4)
  • BC 338 NPN tranzistors
  • Džemperu kabeļi
  • TSOP uztvērējs
  • Maizes dēlis
  • Android lādētājs

2. darbība: izmantotie komponenti (programmatūra)

Kā mēs gatavojamies veikt bezvadu slēdzis , mums būs nepieciešama poga, lai to ieslēgtu un izslēgtu. Mēs vēlamies izmantot mobilo tālruni, lai darbinātu šo pogu, tāpēc mums būs jāizstrādā tam lietojumprogramma. Ērtākā lietojumprogramma ir android lietojumprogramma, un mums ir jāinstalē šīs divas programmatūras, lai izveidotu savienojumu ar šo lietojumprogrammu. Abas no tām ir uzskaitītas zemāk:



  • Android studija
  • JAVA JDK

3. darbība: instalējiet Android Studio

Pirms instalēšanas Android studija , vispirms mēs instalēsim JAVA JDK. Lai to instalētu, noklikšķiniet uz exe failu lejupielādējāt no iepriekš minētās saites un noklikšķiniet uz Tālāk, līdz tā ir veiksmīgi instalēta. Tagad veiciet šādas darbības, lai jūsu komandu uzvedne tiktu atpazīta java kā ārēju vai iekšēju komandu.



  1. Atvērt Vadības panelis un noklikšķiniet uz Sistēma un drošība .
  2. Klikšķiniet uz Sistēma.

    Sistēma

  3. Klikšķiniet uz Papildu sistēmas iestatīšana un pēc tam noklikšķiniet uz Vides mainīgie. Sistēmas papildu iestatījumi

    Sistēmas papildu iestatījumi

  4. Sadaļā Sistēmas mainīgais noklikšķiniet uz ceļa un pēc tam uz Rediģēt. Jauns Rediģēt vides mainīgo parādīsies lodziņš.

    Rediģēt ceļu



  5. Tagad dodieties uz C: Program Files Java datorā. Atveriet mapi JDK, noklikšķiniet uz atkritnes mapes un pēc tam nokopējiet šīs mapes ceļu.

    Bin mapes ceļš

  6. Tagad dodieties uz lodziņu Rediģēt vides mainīgo un noklikšķiniet uz jauns, lai izveidotu jaunu mainīgo. Iepriekšējā solī nokopēto ceļu ielīmējiet jaunajā mainīgajā un saglabājiet to.
  7. Tagad, lai apstiprinātu, ja tas ir pilnībā instalēts, atveriet komandu uzvedni un ierakstiet java –versija.

    JAVA versija

Tagad, kad datorā esat veiksmīgi instalējis Java JDK. Ļaujiet mums tagad instalēt Android Studio savā datorā. Šīs programmatūras instalēšana ir ļoti vienkārša. Jums jāatver lejupielādētais fails un jānoklikšķina uz nākamā, līdz programmatūra ir pilnībā instalēta.

4. darbība: savienojums ar Firebase

Tagad, kad esam instalējuši Android Studio, palaidīsim to un izveidosim jaunu projektu, lai to savienotu ar firebase. Lai to izdarītu, rīkojieties šādi.

  1. Palaidiet Android Studio un izveidojiet jaunu projektu, noklikšķinot uz Tukša darbība .
  2. Tagad nosauciet savu projektu kā computerSwitc, atlasiet Kotlins kā valodu un atlasiet minimālo API līmeni atbilstoši savam mobilajam tālrunim.
  3. Tā kā mēs izmantosim internetu, lai kontrolētu aveņu pi tapas. Mēs savā lietotnē iestatīsim atļauju piekļūt vietējam wifi. Lai to izdarītu, dodieties uz app> manifestes> AndroidManifest.xml un pievienojiet šādu komandu.

    Interneta atļauja

  4. Tagad noklikšķiniet uz n Rīki. Parādīsies nolaižamā izvēlne, no kuras atlasiet Firebase.

    Firebase savienojums

  5. Ekrāna labajā pusē parādīsies liela izvēlne, kas nodrošinās gandrīz visu Firebase sniegto pakalpojumu izvēlni. Bet šobrīd galvenā uzmanība tiek pievērsta reāllaika datu bāzei. Tātad noklikšķiniet uz Reāllaika datu bāze. Saite uz “ Saglabāt un izgūt datus ' parādīsies. Noklikšķiniet uz šīs saites.

    Firebase palīgs

  6. Pievienojieties Izveidojiet savienojumu ar Firebase pogu. Tas aizvedīs jūs uz noklusējuma tīmekļa pārlūkprogrammu. Pirmkārt, tā lūgs jums pieteikties savā Gmail kontā. Pēc tam noklikšķiniet uz Pievienojiet savai lietotnei reāllaika datu bāzi un pieņemt izmaiņas.
  7. Tagad dodieties uz Firebase konsole . Tur jūs redzēsiet jau izveidotu projektu. Šīs projektora ikonas Android logotips nozīmē, ka tas jau pieder android lietojumprogrammai.
  8. No Attīstīties izvēlni, kas parādās ekrāna kreisajā pusē, atlasiet Datu bāze. Poga Izveidot datu bāzi parādīsies labajā pusē. Noklikšķiniet uz šīs pogas.
  9. Parādīsies izvēlne, kurā tiks lūgts iestatīt datu bāzes režīmu. Klikšķiniet uz testa režīms un pēc tam noklikšķiniet Iespējot .

    Testa režīms

  10. Tagad patiešām svarīgs solis, kas jāatceras, ir mainīt Mākonis Firestore uz Reālā laika datu bāze. Lai to izdarītu, noklikšķiniet uz pogas, kas parādīta zemāk esošajā attēlā, un mainiet vajadzīgo opciju.

    Reāllaika Firebase

  11. Tagad noklikšķiniet uz Noteikumi cilni un mainiet konfigurācijas uz Patiesi . Kad viss ir izdarīts, noklikšķiniet Publicēt .

    Konfigurāciju maiņa

  12. Viena lieta, kas jums jādara, izņemot Firebase savienošanu, ir datu bāzes versijas atjaunināšana. Lai to izdarītu, noklikšķiniet uz ejiet pie dokumentiem . Tagad noklikšķiniet uz ceļveži un atlasiet Android ceļveži no ekrānā redzamā saraksta. Ritiniet uz leju, līdz parādās tabula. Šajā tabulā meklējiet reāllaika datu bāzi un atrodiet tās versiju. manā gadījumā tā ir 19.1.0.

    Versija

  13. . Klikšķiniet uz Gradle Scripts, izvēlne ekrāna kreisajā pusē. Pēc tam atlasiet uzbūvēts. gradle (modulis: lietotne). Tagad kodā meklējiet reāllaika datu bāzes versiju un aizstājiet to ar jauno.

    Firebase versija

  14. Tagad sinhronizējiet projektu, noklikšķinot uz sinhronizācijas pogas, kas parādās ekrāna augšdaļā.

5. solis: Izkārtojuma veidošana

Tagad, kad mūsu android lietojumprogramma ir savienota ar firebase, izveidosim savas lietotnes izkārtojumu, kuru lietotājs izmantos, lai ieslēgtu vai izslēgtu datoru. Lai izveidotu izkārtojumu, dodieties uz app> res> izkārtojums> activity_main.xml. kur mēs noformēsim izkārtojumu. Nokopējiet zemāk norādīto kodu tur, lai izveidotu teksta skatu.

 

Mūsu lietotnes izkārtojums izskatīsies šādi:

Lietojumprogrammas izkārtojums

6. solis: Darba sākšana ar ESP32

Ja iepriekš neesat strādājis ar Arduino IDE, neuztraucieties, jo soli pa solim, lai iestatītu Arduino IDE, ir parādīts zemāk.

  1. Lejupielādējiet jaunāko Arduino IDE versiju no Arduino.
  2. Savienojiet savu Arduino dēli ar datoru un atveriet vadības paneli. Klikšķiniet uz Aparatūra un skaņa. Tagad atvērts Ierīces un printeris un atrodiet portu, ar kuru savienots jūsu dēlis. Manā gadījumā tā ir COM14 bet dažādos datoros tas ir atšķirīgs.

    Ostas atrašana

  3. Noklikšķiniet uz Fails un pēc tam uz Preferences. Nokopējiet šo saiti mapē Papildu valdes vadītāja URL. “ https://dl.espressif.com/dl/package_esp32_index.json '

    Preferences

  4. Tagad, lai lietotu ESP32 ar Arduino IDE, mums jāimportē īpašas bibliotēkas, kas ļaus mums ierakstīt kodu ESP32 un to izmantot. šīs divas bibliotēkas ir pievienotas zemāk dotajā saitē. Lai iekļautu bibliotēku, dodieties Skice> Iekļaut bibliotēku> Pievienot ZIP bibliotēku . Parādīsies lodziņš. Datorā atrodiet mapi ZIP un noklikšķiniet uz Labi, lai iekļautu mapes.

    Ieskaitot bibliotēku

  5. Tagad dodieties uz Skice> Iekļaut bibliotēku> Pārvaldīt bibliotēkas.

    Pārvaldīt bibliotēkas

  6. Tiks atvērta izvēlne. Meklēšanas joslā ierakstiet Arduino JSON. Parādīsies saraksts. Uzstādīt Benoits Blanšons Arduino JSON.

    Arduino JSON

  7. Tagad noklikšķiniet uz Rīki. Parādīsies nolaižamā izvēlne. Iestatiet dēli uz ESP Dev modulis.

    Valdes izveidošana

  8. Vēlreiz noklikšķiniet uz izvēlnes Rīks un iestatiet portu, kuru iepriekš novērojāt vadības panelī.

    Portas iestatīšana

  9. Tagad augšupielādējiet kodu, kas pievienots zemāk esošajā saitē, un noklikšķiniet uz augšupielādes pogas, lai sadedzinātu kodu ESP32 mikrokontrollerī.

    Augšupielādēt

Tāpēc tagad, augšupielādējot kodu, var rasties kļūda. Šī ir visizplatītākā kļūda, kas var rasties, ja izmantojat jaunu Arduino IDE un Arduino JSON versiju. Tālāk ir norādītas kļūdas, kuras varat redzēt ekrānā.

Failā, kas iekļauts no C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, no 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 ir ArduinoJson klase. Lūdzu, skatiet vietni arduinojson.org/upgrade, lai uzzinātu, kā jaunināt programmu uz ArduinoJson 6. versija StaticJsonBuffer jsonBuffer; ^ Failā, kas iekļauts C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, no C:  Users  Pro  Desktop  airconditioner  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: kļūda: StaticJsonBuffer ir klase no ArduinoJson 5. Lūdzu, skatiet vietni arduinojson.org/upgrade, lai uzzinātu, kā atjaunināt programmu uz ArduinoJson 6. versija atgriež StaticJsonBuffer (). ParseObject (_data); ^ Vietnei 'WiFi.h' tika atrastas vairākas bibliotēkas. Izmantotie: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFi Nav izmantoti: C:  Program Files ( x86)  Arduino  libraries  WiFi Izmantojot bibliotēkas WiFi versiju 1.0 mapē: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFi  Izmantojot bibliotēku IOXhop_FirebaseESP32-master mapē: C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master (mantojums) Izmantojot bibliotēkas HTTPClient versijā 1.2 mapē: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Bibliotēkas WiFiClientSecure izmantošana versijā 1.0 mapē: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFiClientSecure Bibliotēkas ArduinoJson izmantošana Versija 6.12.0 mapē: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson izejas statuss 1 Kļūda sastādot plates ESP32 Dev moduli.

Nav ko uztraukties, jo šīs kļūdas mēs varam novērst, veicot dažas vienkāršas darbības. Šīs kļūdas rodas tāpēc, ka jaunajā Arduino JSON versijā ir cita klase, nevis StaticJsonBuffer. Šī faktiski ir JSON 5 klase. Tātad mēs varam vienkārši novērst šo kļūdu, pazeminot mūsu Arduino IDE versijas Arduino JSON versiju. Vienkārši dodieties uz Skice> Iekļaut bibliotēku> Pārvaldīt bibliotēkas. Meklēt Benoits Blanšons Arduino JSON kuru esat instalējis iepriekš. Vispirms atinstalējiet to un pēc tam iestatiet tā versiju uz 5.13.5. Tagad, kad esam iestatījuši veco Arduino JSON versiju, instalējiet to vēlreiz un atkārtoti apkopojiet kodu. Šoreiz jūsu kods tiks veiksmīgi apkopots.

7. solis: izpratne par kodeksu

Šī projekta kods ir ļoti vienkāršs, un tas ir īsumā paskaidrots zemāk. Turklāt kodu ar nepieciešamajām bibliotēkām var lejupielādēt arī no Šeit.

1. Sākumā mums jāiekļauj divas bibliotēkas, kas tiks izmantotas, lai savienotu mūsu kodu ar Firebase datu bāzi, un otrā, lai izmantotu IR sensoru ar mūsu mikrokontrolleru. Tad mēs pievienosim mūsu firebase resursdatoru un autentifikāciju, jo pēc tam mēs ESP32 spētu atrast mūsu datu bāzē . Tad mēs norādīsim vietējā interneta savienojuma SSID un paroli. Tad mums ir jāizveido objekts, lai mēs varētu nospiest un izlaist datus no mūsu mākoņa. Tad mēs definēsim tapu, pie kuras tiks savienots mūsu sensors, un mēs arī izveidosim objektu, lai apstrādātu datus, kas nāk no IR sensora.

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_SIDID 'PRO' Firefade 'Firefaste' Firefase 'Firefase' Firefase 'Firefase' Firefase 'Firefase' Firefase 'Firebase int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); dekodēt_rezultātu rezultāti;

2. anulēt iestatīšanu () , ir cilpa, kas darbojas, nospiežot iespējošanas pogu vai ieslēdzot mikrokontrolleru. Šeit mēs sāksim mūsu IR sensora uztvērēju un uzrakstīsim kodu, lai sāktu savienot mūsu mikrokontrolleru ar vietējo interneta savienojumu.

void setup () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Sāciet uztvērēju // izveidojiet savienojumu ar wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('savienojums'); while (WiFi.status ()! = WL_CONNECTED) {Seriālā.druka ('.'); kavēšanās (500); } Seriālais.println (); Serial.print ('savienots:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.enableClassicRequest (firebaseData, true); }

3. void loop () ir funkcija, kas atkārtoti darbojas ciklā. Šeit šis kods pārbauda, ​​vai vērtības nāk no sensora.

void loop () {if (irrecv.decode (& rezultāti)) {Serial.println (results.value, HEX); dump (& rezultāti); irrecv.resume (); // saņemt nākamo vērtību} aizkave (500); }

Četri. void dump () ir funkcija, kuru izmanto, lai vispirms identificētu tālvadības pults modeli, kas sūta signālu sensoram. tas arī izgāž struktūru decode_results.

void dump (atšifrēt_rezultātus * rezultāti) {int skaits = rezultāti-> rawlen; if (rezultāti-> atšifrēšanas_tips == Nezināms) {Serial.print ('Nezināms kodējums:'); } else if (rezultāti-> dekodēšanas_tips == NEC) {Serial.print ('Atkodēts NEC:'); } else if (rezultāti-> dekodēšanas_tips == SONY) {Serial.print ('Atkodēts SONY:'); } else if (rezultāti-> dekodēšanas_tips == RC5) {Serial.print ('Atšifrēts RC5:'); } else if (rezultāti-> dekodēšanas_tips == RC6) {Serial.print ('Atšifrēts RC6:'); } uz if, ja (rezultāti-> dekodēšanas_tips == PANASONIC) {Serial.print ('Atkodēts PANASONIC - Adrese:'); Serial.print (rezultāti-> panasonicAddress, HEX); Serial.print ('Vērtība:'); } else if (rezultāti-> dekodēšanas_tips == JVC) {Serial.print ('Atšifrēts JVC:'); } Serial.print (rezultāti-> vērtība, HEX); Serial.print ('('); Serial.print (rezultāti-> biti, DEC); Serial.println ('biti)'); Serial.print ('Raw ('); Serial.print (skaits, DEC); Serial.print ('):'); par (int i = 0; i rawbuf [i] * USECPERTICK, DEC); } else {Serial.print (- (int) results-> rawbuf [i] * USECPERTICK, DEC); } Seriāls.druka (''); } Serial.println (''); }

8. solis: Aparatūras sagatavošana

Pēc koda ierakstīšanas ESP32 mums ir jāsagatavo aparatūra un jāpiestiprina tā pie sienas vai jebkuras citas piemērotas vietas gaisa kondicionētāja tuvumā. Pievienojiet komponentus maizes dēlim, ievērojot augšpusē redzamo diagrammu. Pēc ķēdes montāžas ieslēdziet ESP moduli, izmantojot Android lādētāju. Aparatūras korpusu labāk noformēt mājās vai vienkārši ievietot aparatūru Raspberry Pi korpusā.

9. solis: G pēdējie pieskārieni

Pēc aparatūras montāžas mēs to pārbaudīsim. Pievienojiet android lādētāju ESP32 un ieslēdziet to, un pārliecinieties, ka tālrunī ir labi spēcīgi vietējā signāli interneta pieslēgums . Atveriet lietojumprogrammu un nospiediet pogu, un jūs redzēsiet, ka tagad jūs varat kontrolēt maiņstrāvu ar savu mobilo lietojumprogrammu.

Tas šodien bija viss, es ceru, ka jums būtu paticis lasīt šo rakstu, un pēc tam, kad esat izveidojis savu prototipu gaisa kondicionētāja kontrolei mājās, neaizmirstiet dalīties pieredzē!