Paano Gumawa ng Smart Home Automation System Gamit ang ESP32 Module?

Sa modernong panahon na ito, ang konsepto ng awtomatiko sa bahay ay lumalaki nang napakabilis. Ang mga smart system ay nai-install sa halos bawat lugar. Ang Smart Home Systems ay isang konsepto kung saan ang lahat ng mga de-koryenteng kasangkapan o ang mga aparato ay kinokontrol gamit ang isang solong remote control. Sa mga sistemang ito, madalas, ang remote control ay isang mobile application. Bilang isang android mobile ay ang pinaka-karaniwan sa mga tao, kaya ang isang android application ay ang pinakamahusay na pagpipilian upang makontrol ang lahat ng mga aparatong ito.



Pag-aautomat sa Bahay

Kaya sa proyektong ito, ikokonekta namin ang ilan sa mga gamit sa kuryente sa bahay sa module ng Relay at makontrol ito sa pamamagitan ng ESP32 Microcontroller. Gagawa kami ng isang firebase realtime database at ikonekta ito mula sa android app. Ipapadala ng android app na ito ang data sa cloud at pagkatapos ay ipapadala ito sa microcontroller upang i-on o i-off ang electrical appliance. Ang pinakamagandang bahagi ay maaari kang magkaroon ng buong kontrol sa paglipat ng iyong mga kagamitan mula sa kahit saan sa mundo. Kailangan mo lamang ng isang koneksyon sa internet upang mapatakbo ang android application.



Paano Makokontrol ang Mga Kagamitang Pantahanan Sa Pamamagitan ng WiFi?

Ang mga system ng Home Automation na magagamit na sa merkado, ay napakamahal. Maaari kaming gumamit ng isang board ng ESP32 upang ikonekta ang iba't ibang mga gamit sa bahay at makontrol ang mga ito gamit ang isang Android App. Ito ay magiging napakababa ng gastos at isang mahusay na paraan upang i-automate ang bahay. Ngayon ay ilipat natin ang isang hakbang nang maaga at simulang mangolekta ng impormasyon upang simulan ang proyekto.



Hakbang 1: Pagkolekta ng Mga Bahagi

Ang pinakamahusay na diskarte upang simulan ang anumang proyekto ay upang gumawa ng isang listahan ng mga bahagi at dumaan sa isang maikling pag-aaral ng mga sangkap na ito dahil walang nais na manatili sa gitna ng isang proyekto dahil lamang sa isang nawawalang sangkap. Ang isang listahan ng mga bahagi na gagamitin namin sa proyektong ito ay ibinibigay sa ibaba:



  • ESP32
  • Breadboard
  • Mga Koneksyon sa Mga Wires

Hakbang 2: Pag-aaral ng Mga Bahagi

Ngayon dahil alam natin ang abstract ng proyektong ito, ilipat natin ang isang hakbang nang maaga at dumaan sa isang maikling pag-aaral ng pagtatrabaho ng mga pangunahing bahagi na gagamitin namin.

ESP32 ay isang low-power at low-cost microcontroller board na mayroong built-in na WiFi at isang dual-mode na module ng Bluetooth. Ang board ng Microcontroller na ito ay nilikha at binuo ng Mga Sistema ng Espressif . Ang board na ito ay may built-in na power amplifier, mababa ang magandang pagtanggap ng mga amplifier, filter, at switch ng antena. Ito ay pinalakas ng isang android data cable at maaaring magbigay ng hanggang sa 3.3V sa output. Isinasagawa ng ESP32 ang TCP / IP, buong 802.11 b / g / n / e / I WLAN MAC Convention, at partikular na Wi-Fi Direct. Ipinapahiwatig nito na maaaring matugunan ng ESP 32 ang isang malaking bahagi ng mga WiFi Router doon kapag ginamit sa mode ng istasyon (client). Gayundin, maaari itong gumawa ng isang Access point na may buong 802.11 b / g / n / e / I. Ang ESP32 ay hindi simpleng pinapailalim sa pinakahuling BLE Bluetooth 4.2, bukod pa rito ay nagpapalakas ng mahusay na Bluetooth. Panimula itong nagpapahiwatig na maaari nitong tugunan ang luma at bagong mga telepono / talahanayan ng Bluetooth. Kung wala kang isang module na ESP32, maaari mo ring gamitin ang ESP8266 o isang Node MCU. Ang mga board na ito ay maaaring magamit upang maisagawa ang parehong gawain kung nakakonekta sila sa WiFi.

ESP32



Ang isang module ng relay ay isang switching device. Gumagana ito sa dalawang mga mode, Karaniwan Bukas (HINDI) at Normal lang Sarado (NC) . Sa WALANG mode, ang circuit ay palaging nasira maliban kung magpadala ka ng isang mataas na signal sa relay sa pamamagitan ng Arduino. Ang NC mode ay lumala sa kabaligtaran, Ang circuit ay laging kumpleto maliban kung lumipat ka sa module ng relay. Tiyaking ikinonekta mo ang positibong kawad ng iyong Electrical Appliance sa module ng relay sa paraang ipinakita sa ibaba.

Pagtitipon ng Circuit Module ng Relay

Hakbang 3: I-block ang Diagram

I-block ang Diagram

Sa diagram ng block sa itaas, ipinapakita ang daloy ng proyektong ito. Ang mga relay ay konektado sa mga de-koryenteng kagamitan sa bahay o aparato. Ang isang mobile application ay magpapadala ng isang Sa o PATAY utos sa database. Ang ulap na ito ay konektado sa board ng micro32troller ng ESP32 sa pamamagitan ng WiFi. Upang I-on ang elektronikong aparato, magpapadala kami ng isang '1' sa database at upang patayin ay magpapadala kami ng isang '0' sa database. Ang utos na ito ay kukunin ng microcontroller dahil konektado din ito sa database. Batay sa 0 o 1 na ito, ililipat o patayin ng microcontroller ang module ng relay na magreresulta sa paglipat ng mga de-koryenteng kasangkapan.

Kaya dito, sa artikulong ito, gagamit ako ng dalawang mga module ng relay upang maipakita sa iyo ang buong pamamaraan. Ngunit Maaari mong dagdagan ang bilang ng mga relay at idagdag ang parehong tipak ng code sa iyong programa kung nais mong kontrolin ang isang mas malaking bilang ng mga gamit sa bahay na elektrikal.

Hakbang 4: Pagtitipon ng Mga Bahagi

Ngayon dahil mayroon kaming isang malinaw na pangitain kung ano ang nais naming gawin sa proyektong ito, huwag kaming magsayang ng anumang oras at simulang tipunin ang mga bahagi.

  1. Kumuha ng isang breadboard at ayusin ang ESP32 microcontroller dito. Ngayon kunin ang dalawang module ng relay at ikonekta ang Vcc at ground ng mga module sa Vin at ground ng board ng micro32troller ng ESP32 nang kahanay. Ikonekta ang in-pin ng mga module ng relay sa pin34 at pin35 ng ESP32 board. Makikita mo na ang mga relay ay pinapagana na ngayon.
  2. Ikonekta ang mga gamit sa bahay sa module ng relay. Tiyaking tumutugma ang iyong mga koneksyon sa mga koneksyon na ipinakita sa figure sa Hakbang 2.

Ngayon habang nakakonekta namin ang bahagi ng hardware ng aming system. Bubuo kami ng isang android application na makakonekta sa firebase database. Gagawin namin ang database at ang android application sa Bahagi 2 ng artikulong ito.

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: Pag-unawa sa Code

Ang code ng proyektong ito ay napaka-simple at mahusay na nagkomento. Ngunit gayon pa man, ang code ay maikling ipinaliwanag sa ibaba.

1. Sa simula, kasama ang mga aklatan upang ang board ng ESP32 ay maaaring konektado sa lokal na koneksyon sa WiFi sa bahay o opisina. Pagkatapos nito, ang isang link sa iyong proyekto sa firebase at ang pagpapatotoo ng iyong proyekto sa firebase ay tinukoy. Pagkatapos ang pangalan at password ng iyong lokal na koneksyon sa wifi ay tinukoy upang ang ESP32 ay maaaring konektado sa Wifi. Ang ilang mga pin ng ESP32 ay tinukoy na konektado sa mga module ng relay. at sa wakas ang isang variable ay idineklara na mag-iimbak ng ilang pansamantalang data na magmumula sa cloud ng firebase.

#include // isama ang library upang kumonekta sa lokal na koneksyon sa Wifi # isama // // Isama ang library upang kumonekta sa Firebase databse #define FIREBASE_HOST 'coma-patient.firebaseio.com' // isama ang link ng iyong firebase project #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5iuw '// Isama ang pagpapatotoo ng iyong firebase project #define WIFI_SSID' abcd '// ang pangalan ng koneksyon sa WiFi ng iyong bahay o opisina #define WIFI_PASSWORD' abcd '// password ng koneksyon sa WiFi ng iyong bahay o opisina int r1 = 34; // pin upang ikonekta ang relay 1 int r2 = 35; // pin upang ikonekta ang relay 2 int temp; // variabe upang magdala ng data

2. walang bisa ang pag-setup () ay isang pagpapaandar kung saan pinasimulan namin ang mga INPUT o OUTPUT na pin. Itinatakda din ng pagpapaandar na ito ang rate ng baud sa pamamagitan ng paggamit Serial.begin () utos Ang Baud Rate ay ang bilis ng komunikasyon ng microcontroller. Ang ilang mga linya ng code ay idinagdag dito upang ikonekta ang ESP32 sa lokal na koneksyon sa wifi. Susubukan ng board na kumonekta sa lokal na koneksyon sa wifi at mai-print ang 'koneksyon.' sa serial monitor. I-print nito ang 'Nakakonekta' kapag naitatag ang koneksyon. Kaya upang masubaybayan ito, mas mahusay na buksan ang serial monitor at suriin ang mga staus doon.

void setup () {Serial.begin (115200); // setting ng baud rate // 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. walang bisa loop () ay isang pagpapaandar na paulit-ulit na tumatakbo sa isang loop. Sa loop na ito, nagsusulat kami ng isang code na nagsasabi sa board ng microcontroller kung anong mga gawain ang isasagawa at kung paano. Kinuha namin ang data laban ilaw at AC mula sa database at nakaimbak sa dalawang pansamantalang variable. Pagkatapos ng apat na kundisyon ay inilalapat upang ilipat ang dalawang mga kagamitan alinsunod sa nakuha na 0 o 1 mula sa database.

void loop () {// get value temp1 = Serial.println (Firebase.getFloat ('light')); // makuha ang halaga para sa paglipat ng ilaw temp2 = Serial.println (Firebase.getFloat ('AC')); // kunin ang vaue para sa paglipat ng Fan fan (1000); kung (temp1 == 1 && temp2 == 1) {// Upang i-on ang ilaw at fan digitalWrite (r1, TAAS); digitalWrite (r2, TAAS); } kung (temp1 == 0 && temp2 == 1) {// Upang i-on ang fan at i-off ang light digitalWrite (r1, LOW); digitalWrite (r2, TAAS); } kung (temp1 == 1 && temp2 == 0) {// Upang i-off ang fan at i-on ang light digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } kung (temp1 == 0 && temp2 == 0) {// Upang i-off ang fan at i-off ang light digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Ito ang Bahagi ng isa sa 'Paano Gumagawa ng Smart Home System Gamit ang ESP32?'. Maaari kang magdagdag ng higit pang mga module ng relay kung nais mong kontrolin ang ilan pang mga gamit sa bahay, ang tanging bagay na kakailanganin mong gawin ay ang basahin ang data mula sa firebase at magdagdag ng ilang higit pang mga kundisyon para sa paglipat. Sa susunod na artikulo, ipapaliwanag ko kung paano bumuo ng isang android application at Firebase database. Ipapaliwanag ko ang sunud-sunod na pamamaraan upang ikonekta ang android app sa firebase at ipadala ang data dito.

Upang pumunta sa susunod na tutorial Pindutin dito