Paano Makokontrol ang Iyong Air Conditioner Sa Iyong Smartphone Sa halip Ng Ang Remote?

Sa modernong mundo, kung titingnan natin ang paligid, makikita natin na ang lahat na may kasamang electronics ay awtomatiko sa ilang sukat. Ang pinakabagong mga diskarte sa awtomatiko ay pinagtibay ng ilang mga tao sa kanilang mga tahanan. Sa modernong panahon na ito, dapat pumili ang mga tao para sa pinakabagong mga diskarte sa awtomatiko upang gawing mas madali ang kanilang buhay. Karaniwan sa aming mga tahanan, lumiliko kami ON na , PATAY at itakda nang manu-mano ang temperatura sa aming mga aircon. Ngayon, ang isang solong sangkap tulad ng isang module ng relay ay maaaring magamit upang makontrol ang iba't ibang mga elektronikong parameter ng isang bahay, halimbawa, paglipat ng mga gamit sa bahay, pagsubaybay sa mga alarma sa seguridad, pag-automate ng pinto ng garahe, atbp. Sa artikulong ito, bubuo kami ng isang system na magpapahintulot sa iyo na makontrol ang iyong aircon sa pamamagitan ng paggamit ng isang mobile application sa halip na ang remote nito. Bilang isang android mobile ay ang pinaka-karaniwan sa mga tao, kaya ang isang android application ay ang pinakamahusay na pagpipilian upang makontrol ang aming air conditioner.



Pagkontrol sa Air Conditioner

Paano Mag-setup ng Lahat ng Mga Kinakailangan na Peripheral Sa ESP32?

Upang makagawa ng anumang proyekto, dapat malaman ng isa kung ano ang pangunahing mga sangkap na kakailanganin ng isa upang makumpleto ito. Kaya't ang isang mahusay na diskarte bago simulan ang trabaho ay upang makagawa ng isang kumpletong listahan ng lahat ng mga bahagi upang makatipid ng oras at maiwasan ang pagkakataon na makaalis sa gitna ng proyekto. Ang isang kumpletong listahan ng lahat ng mga bahagi na madaling magagamit sa merkado ay ibinibigay sa ibaba. Matapos ayusin ang mga bahagi ng hardware ay magdidisenyo kami ng aming sariling android application para sa pagkontrol sa aming air conditioner:



Hakbang 1: Mga Ginamit na Mga Bahagi (Hardware)

  • ESP32
  • MakerFocus I2C OLED Display Module
  • Banayad na Nakasalalay na Resistor
  • Paglipat ng Button ng Push
  • IR Tagatanggap
  • 1K Ohm Resistor (x4)
  • BC 338 NPN Transistor
  • Mga Jumper Cables
  • Tagatanggap ng TSOP
  • Breadboard
  • Android Charger

Hakbang 2: Mga Ginamit na Mga Bahagi (Software)

Habang gagawa kami ng wireless switch , kakailanganin namin ang isang pindutan upang i-on at i-off ito. Nais naming gumamit ng isang mobile phone upang mapatakbo ang pindutang ito kaya kakailanganin naming bumuo ng isang application para doon. Ang pinaka-maginhawang application ay isang android application at kailangan naming i-install ang dalawang software na ito upang kumonekta sa application na iyon. Kapwa nakalista ang mga ito sa ibaba:



  • Android Studio
  • JAVA JDK

Hakbang 3: Pag-install ng Android Studio

Bago mag-install Android Studio , mai-install muna namin ang JAVA JDK. Upang mai-install ito, mag-click sa exe file na na-download mo mula sa itaas na link, at i-click ang susunod hanggang sa matagumpay itong na-install. Ngayon dumaan sa mga sumusunod na hakbang upang makilala ang iyong prompt ng utos java bilang isang panlabas o panloob na utos.



  1. Buksan Control Panel at mag-click sa Sistema at Seguridad .
  2. Mag-click sa Sistema.

    Sistema

  3. Mag-click sa Advanced na Pagtatakda ng System at pagkatapos ay mag-click sa Mga variable sa Kapaligiran. Mga advanced na setting ng System

    Mga advanced na setting ng System

  4. Sa seksyong Variable ng System, mag-click sa landas at pagkatapos ay mag-click sa pag-edit. Isang bago I-edit ang Variable sa Kapaligiran lilitaw ang kahon.

    I-edit ang Path



  5. Ngayon punta ka na C: Program Files Java sa iyong PC. Buksan ang folder na JDK, mag-click sa folder ng bin at pagkatapos kopyahin ang landas ng folder na iyon.

    Path Ng Bin Folder

  6. Pumunta ngayon sa kahon ng Mag-edit ng Kapaligiran na variable at mag-click sa bago upang makagawa ng isang bagong variable. I-paste ang landas na kinopya mo sa hakbang sa itaas sa bagong variable at i-save ito.
  7. Ngayon upang kumpirmahin, kung ito ay kumpletong naka-install, buksan ang command prompt at uri java –pagpalit.

    Bersyon ng JAVA

Ngayon bilang matagumpay mong na-install ang Java JDK sa iyong computer. Ipaalam sa amin ngayon i-install ang Android Studio sa iyong computer. Napakadali ng pag-install ng software na ito. Kailangan mong buksan ang na-download na file at mag-click sa susunod hanggang sa ganap na mai-install ang iyong software.

Hakbang 4: Koneksyon Sa Firebase

Ngayon dahil na-install namin ang Android Studio, ilunsad namin ito at gumawa ng isang bagong proyekto upang ikonekta ito sa firebase. Upang magawa ito, sundin ang mga sumusunod na hakbang.

  1. Ilunsad ang Android Studio at gumawa ng isang bagong proyekto sa pamamagitan ng pag-click sa Walang laman na Gawain .
  2. Pangalanan ang iyong proyekto bilang computerSwitc, pumili ka Kotlin bilang wika, at piliin ang minimum na antas ng API alinsunod sa iyong mobile phone.
  3. Dahil gagamitin namin ang internet upang makontrol ang mga pin ng raspberry pi. Magtatakda kami ng pahintulot sa aming app na mag-access sa lokal na wifi. Upang gawin ito, pumunta sa app> manifests> AndroidManifest.xml at idagdag ang sumusunod na utos.

    Pahintulot sa Internet

  4. Ngayon, i-click ang n Mga kasangkapan. Ang isang drop-down na menu ay lilitaw mula sa kung saan, piliin Firebase.

    Koneksyon sa Firebase

  5. Lilitaw ang isang malaking menu sa kanang bahagi ng screen na magbibigay ng menu ng halos bawat serbisyo na ibinibigay ng firebase. Ngunit sa ngayon ang aming pangunahing pokus ay sa Real-Time Database. Kaya mag-click sa Real-Time Database. Isang link sa “ I-save at Kunin ang Data ”Lilitaw. I-click ang link na iyon.

    Katulong sa Firebase

  6. Kumonekta sa Kumonekta Sa Firebase pindutan Dadalhin ka nito sa default na web browser. Una, hihilingin sa iyo na mag-log in sa iyong Gmail account. Pagkatapos mag-click sa Idagdag ang Realtime Database sa iyong app at tanggapin ang mga pagbabago.
  7. Ngayon punta ka na Firebase Console . Makikita mo doon ang isang proyekto na nagawa. Ang logo ng android sa icon ng projet na iyon ay nangangahulugang kabilang na ito sa isang android application.
  8. Galing sa Bumuo ang menu na lilitaw sa kaliwang bahagi ng screen, piliin ang Database. Isang pindutan ng Lumikha ng Database lilitaw sa kanan. Mag-click sa pindutang iyon.
  9. Lilitaw ang isang menu na humihiling na itakda ang mode ng iyong database. Mag-click sa mode ng pagsubok at pagkatapos ay mag-click Paganahin .

    Mode ng Pagsubok

  10. Ngayon isang talagang mahalagang hakbang na dapat tandaan ay baguhin ang Cloud Firestore sa Real-Time Database. Upang magawa ito mag-click sa pindutan na ipinapakita sa imahe sa ibaba at baguhin ang nais na pagpipilian.

    Realtime Firebase

  11. Ngayon mag-click sa Panuntunan tab at baguhin ang mga pagsasaayos sa Totoo . Kapag tapos na ang lahat, mag-click Ilathala .

    Pagbabago ng Mga Configurasyon

  12. Ang isang bagay na kailangan mong gawin maliban sa pagkonekta sa firebase, ay ang i-update ang bersyon ng database. Para doon, mag-click sa pumunta sa docs . Ngayon mag-click sa mga gabay at piliin Mga Gabay sa Android mula sa listahan na lilitaw sa screen. Mag-scroll pababa hanggang sa lumitaw ang isang talahanayan. Maghanap ng Real-Time Database sa talahanayan na iyon at hanapin ang bersyon nito. sa aking kaso, ito ay 19.1.0.

    Bersyon

  13. . Mag-click sa Gradle Script, isang menu sa kaliwang bahagi ng screen. Pagkatapos piliin itinayo gradle (Modyul: app). Ngayon sa code, hanapin ang bersyon ng database ng Real-Time at palitan ito ng bago.

    Bersyon ng Firebase

  14. Ngayon i-sync ang proyekto sa pamamagitan ng pag-click sa pindutan ng pag-sync na lumilitaw sa tuktok ng screen.

Hakbang 5: Paggawa ng Layout

Ngayon, habang ang aming android application ay konektado sa firebase, gumawa kami ng isang layout ng aming app na gagamitin ng gumagamit upang buksan o patayin ang computer. Upang makagawa ng isang layout, pumunta sa app> res> layout> aktibidad_main.xml. kung saan magdidisenyo kami ng isang layout. Kopyahin ang code na ibinigay sa ibaba doon upang makagawa ng isang text view.

 

Ganito ang magiging hitsura ng layout ng aming app:

Layout ng Application

Hakbang 6: Pagsisimula Sa ESP32

Kung hindi ka pa nagtrabaho sa Arduino IDE dati, huwag mag-alala dahil ang isang hakbang-hakbang na pag-set up ng Arduino IDE ay ipinapakita sa ibaba.

  1. I-download ang pinakabagong bersyon ng Arduino IDE mula sa Arduino.
  2. Ikonekta ang iyong Arduino board sa PC at buksan ang Control Panel. Mag-click sa Hardware at Sound. Bukas na Mga Device at Printer at hanapin ang port kung saan nakakonekta ang iyong board. Sa aking kaso ito ay COM14 ngunit iba ito sa iba`t ibang mga computer.

    Paghanap ng Port

  3. Mag-click sa File at pagkatapos ay mag-click sa Mga Kagustuhan. Kopyahin ang sumusunod na link sa URL ng Karagdagang Board Manager. ' https://dl.espressif.com/dl/package_esp32_index.json '

    Mga Kagustuhan

  4. Ngayon, upang magamit ang ESP32 sa Arduino IDE, kailangan naming mag-import ng mga espesyal na aklatan na magpapahintulot sa amin na magsunog ng code sa ESP32 at magamit ito. ang dalawang aklatan na ito ay nakakabit sa link na ibinigay sa ibaba. Upang isama ang library, goto Sketch> Isama ang Library> Magdagdag ng ZIP Library . May lalabas na isang kahon. Hanapin ang ZIP folder sa iyong computer at i-click ang OK upang isama ang mga folder.

    Kasama ang Library

  5. Ngayon punta ka na Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan.

    Pamahalaan Ang Mga Aklatan

  6. Magbubukas ang isang Menu. Sa search bar, i-type Arduino JSON. Lilitaw ang isang listahan. I-install Arduino JSON ni Benoit Blanchon.

    Arduino JSON

  7. Ngayon mag-click sa Mga kasangkapan. Lilitaw ang isang dropdown menu. Itakda ang board sa Module ng Dev Dev.

    Pagtatakda ng Lupon

  8. Mag-click muli sa menu ng Tool at itakda ang port na napansin mo sa control panel dati.

    Setting Port

  9. Ngayon i-upload ang code na nakakabit sa link sa ibaba at mag-click sa pindutan ng pag-upload upang masunog ang code sa micro32troller ng ESP32.

    I-upload

Kaya't ngayon kapag na-upload mo ang code, maaaring maganap ang isang error. Ito ang pinakakaraniwang error na maaaring mangyari kung gumagamit ka ng isang bagong bersyon ng Arduino IDE at ng Arduino JSON. Ang mga sumusunod ay ang mga error na maaari mong makita sa screen.

Sa file na kasama mula sa C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, mula sa C:  Users  Pro  Desktop  airconditioner  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: Ang StaticJsonBuffer ay isang klase mula sa ArduinoJson 5. Mangyaring tingnan ang arduinojson.org/pag-upgrade upang malaman kung paano i-upgrade ang iyong programa sa ArduinoJson bersyon 6 StaticJsonBuffer jsonBuffer; ^ Sa file na kasama mula sa C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, mula sa C:  Users  Pro  Desktop  airconditioner  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: Ang StaticJsonBuffer ay isang klase mula sa ArduinoJson 5. Mangyaring tingnan ang arduinojson.org/pag-upgrade upang malaman kung paano i-upgrade ang iyong programa sa ArduinoJson bersyon 6 ibalik ang StaticJsonBuffer (). ParseObject (_data); ^ Maraming mga aklatan ang natagpuan para sa 'WiFi.h' Ginamit: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  library  WiFi Hindi nagamit: C:  Program Files ( x86)  Arduino  libraries  WiFi Paggamit ng library WiFi sa bersyon 1.0 sa folder: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Paggamit ng library IOXhop_FirebaseESP32-master sa folder: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Paggamit ng library HTTPClient sa bersyon 1.2 sa folder: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Paggamit ng library WiFiClientSecure sa bersyon 1.0 sa folder: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Paggamit ng library ArduinoJson sa bersyon 6.12.0 sa folder: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Error sa pag-compile para sa board ng ESP32 Dev Module.

Walang dapat ikabahala dahil maaari nating alisin ang mga error na ito sa pamamagitan ng pagsunod sa ilang mga simpleng hakbang. Ang mga error na ito ay nagmumula dahil ang bagong bersyon ng Arduino JSON ay may ibang klase sa halip StaticJsonBuffer. Ito ang klase ng JSON 5 talaga. Kaya maaari lamang naming matanggal ang error na ito sa pamamagitan ng pag-downgrade ng bersyon ng Arduino JSON ng aming Arduino IDE. Pumunta lamang sa Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan. Maghanap para sa Arduino JSON ni Benoit Blanchon na na-install mo na dati. Uninstall muna ito at pagkatapos ay itakda ang bersyon nito sa 5.13.5. Ngayon na nagtatakda kami ng isang lumang bersyon ng Arduino JSON, muling i-install ito at muling magkumpuni ng code. Sa oras na ito, ang iyong code ay matagumpay na makakabuo.

Hakbang 7: Pag-unawa sa Code

Ang code ng proyektong ito ay napaka-simple at ito ay maikling ipinaliwanag sa ibaba. Bukod dito, ang code na may mga kinakailangang aklatan ay maaari ring mai-download mula sa Dito

1. Sa simula, kailangan naming isama ang dalawang mga aklatan na magagamit upang ikonekta ang aming code sa Firebase database at ang pangalawa upang magamit ang IR sensor sa aming microcontroller. Pagkatapos ay idaragdag namin ang host at pagpapatotoo ng aming firebase dahil pagkatapos nito ay ang aming ESP32 ay maaaring makahanap ng aming database . Pagkatapos ay ibibigay namin ang SSID at ang password ng aming lokal na koneksyon sa internet. Pagkatapos, kailangan nating gumawa ng isang bagay upang maaari naming itulak at mai-pop ang data mula sa aming ulap. Pagkatapos ay tutukuyin namin ang pin kung saan makakonekta ang aming sensor at gagawa rin kami ng isang bagay upang hawakan ang data na nagmumula sa IR sensor.

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_SSID'IF 'firdcd Firefc' Firebcdd 'Firebc int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); mga resulta sa pag-decode_resulta;

2. walang bisa ang pag-setup () , ay ang loop na tumatakbo kapag ang pindutan ng paganahin ay pinindot o kapag ang microcontroller ay pinapagana. Dito sisimulan namin ang tatanggap ng aming IR sensor at isulat ang code upang simulang ikonekta ang aming microcontroller sa lokal na koneksyon sa internet.

void setup () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Simulan ang receiver // kumonekta sa wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('pagkonekta'); habang (WiFi.status ()! = WL_CONNected) {Serial.print ('.'); pagkaantala (500); } Serial.println (); Serial.print ('konektado:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.enableClassicRequest (firebaseData, totoo); }

3. walang bisa loop () ay isang pagpapaandar na paulit-ulit na tumatakbo sa isang loop. Narito ang code na ito ay tinitingnan kung ang mga halaga ay nagmumula sa sensor.

void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); magtapon (& mga resulta); irrecv.resume (); // Natanggap ang susunod na halaga} pagkaantala (500); }

Apat. void dump () ay isang pagpapaandar na ginamit upang kilalanin muna ang modelo ng remote na nagpapadala ng signal sa sensor. nagtatapon din ito ng istraktura ng decode_results.

void dump (decode_results * mga resulta) {int count = resulta-> rawlen; kung (resulta-> decode_type == UNKNOWN) {Serial.print ('Hindi kilalang pag-encode:'); } iba pa kung (mga resulta-> decode_type == NEC) {Serial.print ('Na-decode NEC:'); } iba pa kung (mga resulta-> decode_type == SONY) {Serial.print ('Na-decode ang SONY:'); } iba pa kung (mga resulta-> decode_type == RC5) {Serial.print ('Na-decode RC5:'); } iba pa kung (mga resulta-> decode_type == RC6) {Serial.print ('Na-decode RC6:'); } sa iba pa kung (mga resulta-> decode_type == PANASONIC) {Serial.print ('Na-decode PANASONIC - Address:'); Serial.print (mga resulta-> panasonicAddress, HEX); Serial.print ('Halaga:'); } iba pa kung (mga resulta-> decode_type == JVC) {Serial.print ('Na-decode JVC:'); } Serial.print (mga resulta-> halaga, HEX); Serial.print ('('); Serial.print (results-> bits, DEC); Serial.println ('bits)'); Serial.print ('Raw ('); Serial.print (count, DEC); Serial.print ('):'); para sa (int i = 0; i rawbuf [i] * USECPERTICK, DEC); } iba pa {Serial.print (- (int) resulta-> rawbuf [i] * USECPERTICK, DEC); } Serial.print (''); } Serial.println (''); }

Hakbang 8: Paghahanda ng Hardware

Matapos masunog ang code sa ESP32, kailangan naming ihanda ang hardware at ilakip ito sa dingding o anumang iba pang naaangkop na lugar malapit sa aircon. Ikabit ang mga sangkap sa breadboard sa pamamagitan ng pagsunod sa diagram na ipinakita sa itaas. Matapos tipunin ang circuit power up ang module ng ESP gamit ang Android Charger. Mas mahusay na idisenyo ang pambalot ng hardware sa bahay o ilagay lamang ang hardware sa loob ng Raspberry Pi case.

Hakbang 9: G iving Final Touch

Matapos tipunin ang hardware ay susubukan namin ito. Ikonekta ang android charger sa ESP32 at i-on ito at tiyaking ang iyong telepono ay may mahusay na lakas ng mga signal ng iyong lokal Internet connection . Buksan ang iyong aplikasyon at pindutin ang pindutan, makikita mo na maaari mo nang makontrol ang iyong AC sa iyong mobile application.

Iyon lang ang para sa ngayon, inaasahan kong nasiyahan ka sa pagbabasa ng artikulong ito at pagkatapos gumawa ng iyong sariling prototype para sa pagkontrol sa iyong aircon sa bahay huwag kalimutang ibahagi ang iyong karanasan!