Pagkontrol sa Iyong Kalan Mula sa Iyong Smartphone Gamit ang WiFi

Sa modernong mundo, kung titingnan natin ang paligid, makikita natin na ang lahat na may kasamang electronics ay awtomatiko sa ilang sukat. Ang mga sistema ng awtomatiko sa bahay o matalinong mga tahanan ay pangkaraniwan sa panahong ito. Sa pamamagitan ng paggamit ng mga sistemang ito ang iba't ibang mga gamit sa bahay ay maaaring awtomatiko gamit ang isang mobile application. Ngunit karamihan sa mga sistemang ito ay hindi nagsasama ng anumang bagay na nag-i-automate ng iyong gas stove. Sa artikulong ito, bubuo kami ng isang system na magpapahintulot sa iyo na kontrolin ang iyong gas stove sa pamamagitan ng paggamit ng isang mobile application. Gagamitin ang application na ito upang buksan o isara ang balbula ng gas mula sa pangunahing balbula at upang masunog ang spark plug upang maitayo ang apoy.



Smart Stove

Paano Mag-automate ng Gas Stove Sa Pamamagitan ng Iyong Mobile?

Ngayon dahil alam natin ang abstract ng proyekto, sumulong tayo at magtipon ng iba't ibang impormasyon upang magsimulang magtrabaho. Gagawa muna kami ng isang listahan ng mga bahagi at pagkatapos ay tipunin ang lahat ng mga sangkap upang makagawa ng isang gumaganang system.



Hakbang 1: Pagtitipon sa Mga Bahagi

Bago simulan ang anumang proyekto, kung nais naming maiwasan ang takot na ma-stuck sa gitna ng proyekto, dapat ay mayroon kaming isang kumpletong listahan ng lahat ng mga sangkap na kakailanganin namin habang nagtatrabaho sa proyekto. Ito ay isang mahusay na diskarte na nakakatipid ng maraming oras at pagsisikap. Ang isang kumpletong listahan ng lahat ng mga bahagi na ginagamit sa proyektong ito ay ibinibigay sa ibaba. Ang lahat ng mga sangkap na ito ay madaling magagamit sa merkado.



  • ESP32
  • Gas Valve para kay Arduino
  • Jumper Wires
  • 5V Relay Module
  • 2N2222 NPN Transistor
  • 1k-ohm Resistor
  • 10k-ohm Resistor
  • 5V Spark Plug

Hakbang 2: Pagbubuo ng Isang Android Application

Habang makokontrol namin ang kalan na ito gamit ang isang android application, kailangan muna naming paunlarin ito. Dati, nakabuo kami ng maraming mga android application. Dati, gumawa kami ng aplikasyon na binubuo lamang ng isang pindutan dito. Ginagamit ang pindutan na ito upang magpadala ng data sa database. Kung '1' ay ipinasok sa database, ang relay ay bubukas at kung '0' ay ipinasok sa database, ang relay ay papatayin.



Gagawa kami ng kaunting susog sa application na ito. Sa pamamagitan ng pagsunod sa parehong pamamaraan na sinusundan upang gawin ang unang pindutan at ikonekta ito sa firebase, gagawa kami ng isa pang pindutan na makakonekta sa firebase.

Gagamitin ang isang pindutan upang buksan at isara ang balbula ng gas at ang pangalawang pindutan ay gagamitin upang lumikha ng isang spark na magiging responsable para sa pag-aapoy .

Hakbang 3: Paggawa ng Circuit

Tulad ng nalalaman natin ngayon ang pangunahing kahalagahan ng proyektong ito, ipunin natin nang magkasama ang lahat ng mga bahagi upang makagawa ng isang pangwakas na circuit.



Kumuha ng isang breadboard at ipasok ang Board ng ESP32 sa loob. Dalhin ang parehong mga transistor at resistors at ipasok ang mga ito sa breadboard sa isang paraan na ang transistor ay maaaring magamit bilang isang lumipat. Sundin ang pagsasaayos sa ibaba upang hindi ka makagawa ng anumang mga pagkakamali habang ginagawa ang switch.

Transistor bilang isang switch

Sa nasa itaas na pigura, ikonekta ang Alak port sa mga pin ng ESP32 , ikonekta ang port Vcc sa panlabas na 5V supply at ikonekta ang Vo sa module ng relay. Ang pangunahing dahilan na ginagamit namin ang transistor bilang isang switch ay ang isang relay na nangangailangan ng 5V upang mapatakbo ngunit ang ESP32 ay maaaring magbigay lamang ng 3.3V. Kaya kailangan naming magbigay ng 5V panlabas sa relay.

Ngayon ay ikonekta namin ang module ng relay sa mga transistor. Siguraduhin na ang unang transistor ay konektado sa pin34 ng module ng ESP at ang pangalawang transistor ay konektado sa pin35 ng module ng ESP. Gagamitin namin ang parehong mga module ng relay sa normal na bukas na mode. Ikonekta ang balbula ng gas at ang spark plug sa output terminal ng una at ikalawang relay module ayon sa pagkakabanggit. Tiyaking ikinonekta mo ang asno ng relay module na ipinakita sa larawan sa ibaba.

Relay Module

Hakbang 4: Nagtatrabaho

Ang puso ng proyektong ito ay ang ESP32 na ang board ng microcontroller. Ang isang balbula ng gas at isang spark plug ay konektado sa ESP sa pamamagitan ng mga relay module. Ang balbula ng gas ay paunang isinara. Kapag ito ay nakabukas mula sa mobile application, ang balbula ng gas ay nakabukas. Pareho sa kaso ng spark plug. Maaari itong ilipat o patayin sa pamamagitan ng mobile app. Ang spark plug na ito ay makakonekta sa kalan kung saan inilabas ang gas. Ang spark plug na ito ay magpapasindi ng apoy.

Hakbang 5: 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.

    Isama ang Library

  5. Ngayon goto 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.

    Setting Board

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

Upang mai-download ang code, mag-click dito

Hakbang 6: Code

Ang code na nakakabit ay medyo mahusay na nagkomento ngunit gayon pa man, ang ilan sa mga bahagi nito ay ipinaliwanag sa ibaba.

1. Sa simula, kasama ang dalawang mga aklatan upang ang WiFi ay pinagana at ang board ng ESP ay maaaring konektado sa firebase database. Pagkatapos ang host ng firebase, pagpapatotoo, ang pangalan ng iyong lokal na koneksyon sa wifi at ang password ng parehong koneksyon sa wifi ay kasama. Gayundin, tukuyin ang mga pin sa board ng ESP na gagamitin upang ikonekta ang mga panlabas na aparato.

#include // isama ang library upang magamit ang WiFi #include // isama ang library upang kumonekta sa Firebase #define FIREBASE_HOST 'xxxxxxxxxx' // palitan ang xxxxxxxxxx ng iyong firebase host dito # tukuyin ang FIREBASE_AUTH 'xxxxxxxxxx' // palitan ang xxxxxxxxxx ng iyong firebase authentication dito # tukuyin ang WIFI_SSID 'xxxxxxxxxx' // palitan ang xxxxxxxxxx ng pangalan ng aming koneksyon sa Wifi #define WIFI_PASSWORD 'xxxxxxxxxx' // palitan ang xxxxxxxxxx ng iyong wifi password #define balbula 34 // ikonekta ang balbula ng gas sa pin na ito #define spark 35 // connect spark plug sa pin na ito

2. walang bisa ang pag-setup () ay isang pagpapaandar na tumatakbo nang isang beses lamang kapag ang microcontroller ay pinapagana o ang pindutan ng paganahin ay pinindot. Sa pagpapaandar na ito, nakatakda ang rate ng baud, na karaniwang ang bilis ng komunikasyon sa mga bits bawat segundo. Pagkatapos nito, ang board ng ESP ay konektado sa Wifi.

void setup () {Serial.begin (115200); // set baud rate pinMode (balbula, OUTPUT); // set pin 34 na gagamitin bilang OUTPUT pinMode (spark, OUTPUT); // set pin 35 upang magamit bilang OUTPUT // 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); }

3. Void loop () ay ang pagpapaandar na tumatakbo nang paulit-ulit sa isang loop. Sa loop na ito, ang mga halaga ay binabasa mula sa firebase at sinusuri na kung ang mga ito ay zero o isa. Kung ang mga halaga ay iisa, pagkatapos ay isang HIGH signal ang ipapadala sa pin na magreresulta sa pag-on ng relay module. Kung ang halaga ay zero, isang signal ng LOw ay ipapadala sa pin ng ESP na magreresulta sa pag-off ng relay.

void loop () {// get value temp1 = Serial.println (Firebase.getFloat ('light')); // makuha ang halaga para sa paglipat ng gas balbula temp2 = Serial.println (Firebase.getFloat ('AC')); // get the vaue for the switching of spark plug if (temp1 == 1) {digitalWrite (balbula, TAAS) // i-on ang relay isa} pa kung (temp1 == 0) {digitalWrite (balbula, LOW) // turn i-off ang isang relay} iba pa kung (temp2 == 1) {digitalWrite (spark, HIGH) // i-on ang relay dalawa} pa kung (temp2 == 0) {digitalWrite (spark, LOW) // i-off ang relay two} // hawakan ang error kung (Firebase.failed ()) {Serial.print ('setting / number failed:'); Serial.println (Firebase.error ()); bumalik; } pagkaantala (1000); }

Yan lamang para sa araw na ito. Ngayon, maaari kang gumawa ng aming sariling matalinong kalan sa bahay. Patuloy na suriin ang aming site para sa higit pang mga kagiliw-giliw na mga artikulo tulad nito sa hinaharap.