Talaan ng mga Nilalaman:

IDC2018IOT Sabihin sa Akin Kailan upang Patayin ang AC: 7 Mga Hakbang
IDC2018IOT Sabihin sa Akin Kailan upang Patayin ang AC: 7 Mga Hakbang

Video: IDC2018IOT Sabihin sa Akin Kailan upang Patayin ang AC: 7 Mga Hakbang

Video: IDC2018IOT Sabihin sa Akin Kailan upang Patayin ang AC: 7 Mga Hakbang
Video: TEMPLE RUN 2 SPRINTS PASSING WIND 2024, Hulyo
Anonim
Image
Image

Marami sa atin, lalo na sa oras ng tag-init, ay gumagamit ng AC halos hindi tumitigil, kung sa katunayan sa ilang mga oras ng araw ay mabubuksan lamang namin ang isang window at masiyahan sa magandang simoy. Gayundin, personal naming napansin na minsan ay nakakalimutan lamang naming patayin ang AC kapag umalis sa silid, nag-aaksaya ng enerhiya at pera.

Ang solusyon na itatayo ay ihahambing ang temperatura sa loob sa labas, at kapag malapit na ang mga ito, aabisuhan kami sa pamamagitan ng Facebook Messanger na oras na upang buksan ang isang window at bigyan ng pahinga ang AC.

Gayundin, gagawa kami ng isa pang mekanismo upang abisuhan kami kapag nakalimutan namin ang AC at umalis sa silid.

Hakbang 1: Medyo Maraming Detalye

Kinokolekta namin ang data mula sa 4 na magkakaibang mga sensor:

  • Kinokolekta ng dalawang sensor ng DHT ang temperatura sa loob ng bahay at labas ng bahay.
  • Nakita ng isang sensor ng PIR ang paggalaw sa silid.
  • Ginagamit ang isang Electret microphone upang makita ang hangin na lumalabas mula sa AC vent, isang simple at maaasahang paraan upang matukoy kung ang AC ay nasa.

Ang data na nagmumula sa mga sensor ay mapoproseso at ipapadala sa Blynk kung saan ipapakita ito sa isang interface na gagawin namin. Gayundin, mag-uudyok kami ng mga kaganapan sa IFTTT upang maabisuhan ang gumagamit kapag maaari niyang buksan ang isang window sa halip na ang AC, at nang makalimutan niya ang AC at umalis sa silid para sa isang paunang natukoy na tagal ng oras.

Ang interface ng Blynk ay magbibigay din sa amin ng isang paraan upang baguhin ang mga nauugnay na setting alinsunod sa kagustuhan ng gumagamit, dahil tatalakayin namin ang higit pang mga detalye sa paglaon.

Mga kinakailangang bahagi:

  1. Module ng WiFi - ESP8266
  2. Sensor ng PIR.
  3. DHT11 / DHT22 temperatura sensor x2.
  4. 10k / 4.7k resistors (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Mikropono ng electret.
  6. Mga jumper.
  7. Mahabang mga kable (Ang telepono wire ay gumawa ng isang mahusay na trabaho).

Ang kumpletong code ng proyekto ay nakakabit sa dulo na may mga komento sa buong code.

Lohikal, mayroon itong ilang iba't ibang mga layer ng pag-andar:

  • Ang data mula sa mga sensor ay nababasa sa mga agwat ng 3 segundo dahil ipinapakita nito na mas tumpak at hindi na kailangan ng higit pa rito.
  • Ang isang bahagi ng code ay ang pagsubaybay sa estado ng AC ng mga halagang nagmumula sa electret microphone na nakalagay sa pagbubukas ng AC.
  • Ang isa pang bahagi ay sinusubaybayan ang pagbabasa na nagmumula sa mga sensor ng temperatura, at ang pagkakaiba ng tinukoy na paggamit bilang katanggap-tanggap upang buksan ang AC at buksan ang isang window sa halip. Hahanapin namin ang sandali kung kailan sapat na malapit ang temperatura.
  • Ang isang pangatlong bahagi ay sinusubaybayan ang paggalaw sa silid. Kung nakakita ito ng walang pangunahing kilusan (ang paraan upang suriin ang pangunahing ipapaliwanag sa lalong madaling panahon) para sa isang timeframe na tinukoy ng gumagamit, at ang estado ng AC ay ON, ipapadala ang isang abiso sa gumagamit.
  • Ang mga abiso ay pinangangasiwaan sa pamamagitan ng pag-trigger ng IFTTT Webhooks na nagpapadala ng mga paunang natukoy na mensahe sa gumagamit sa pamamagitan ng Facebook Messenger
  • Ang huling bahagi na nagkakahalaga ng pagpuna ay ang bahagi na humahawak sa interface ng Blynk, kapwa sa pamamagitan ng pagkuha ng mga pagbabago na ginagawa ng gumagamit sa mga variable at sa kabilang paraan - pagtulak ng data sa interface ng Blynk para makita ng gumagamit.

Hakbang 2: Sa Maraming Maraming Detalye - Mga Sensor

Sa Maraming Maraming Detalye - Mga Sensor
Sa Maraming Maraming Detalye - Mga Sensor
Sa Maraming Maraming Detalye - Mga Sensor
Sa Maraming Maraming Detalye - Mga Sensor

Magsimula na tayo

Una, kailangan naming tiyakin na pareho ng aming mga sensor ng DHT na basahin ang parehong temperatura kapag inilagay sa parehong lugar. Para doon, gumawa kami ng isang simpleng sketch na nakakabit sa dulo ng seksyong ito (CompareSensors.ino). Ikonekta ang parehong mga sensor, at tiyaking binago mo ang uri ng mga sensor ng DHT sa sketch ayon sa mga mayroon ka (ang default ay isang DHT11 at isang DHT22, upang makita mo kung paano hinarap ang pareho sa code). Buksan ang serial monitor at hayaan silang gumana ng ilang sandali, lalo na kung gumagamit ka ng mga sensor ng DHT11, dahil mas matagal silang mas matagal upang ayusin ang kanilang mga sarili sa mga pagbabago sa temperatura.

Tandaan ang pagkakaiba sa pagitan ng mga sensor, at ipasok ito sa paglaon sa pangunahing code sa variable na "offset".

Paglalagay ng mga sensor:

Ang isang sensor ng DHT ay dapat ilagay sa labas ng dingding ng bahay, kaya ikonekta ito sa ilang mga mahahabang kable, sapat na katagal upang maabot ang iyong ESP8266 sa loob ng silid, at ilagay ito sa labas (maaaring magawa nang madali sa bintana). Ang iba pang sensor ng DHT ay dapat na ilagay sa breadboard, sa loob ng silid kung saan ginagamit namin ang AC.

Ang electret microphone ay dapat ding konektado sa sapat na mahabang mga cable at ilagay sa isang lokasyon kung saan ang hangin na lalabas sa AC ay pindutin ito.

Sa wakas, ang sensor ng PIR ay dapat ilagay sa isang lokasyon na nakaharap sa gitna ng silid upang makunan nito ang bawat paggalaw sa silid. Tandaan na ang sensor ay may dalawang maliliit na knobs, isa ang kumokontrol sa pagkaantala (kung gaano katagal ang HIGH signal ng pagtuklas ng isang paggalaw ay pinananatiling TAAS), at ang isa pa ay kumokontrol sa pagkasensitibo (tingnan ang larawan).

Maaaring kailanganin mong maglaro dito hanggang sa makuha mo ang pagbabasa na nasiyahan ka. Para sa amin, ang pinakamahusay na resulta ay ang pagkaantala hanggang sa kaliwa (pinakamababang halaga) at pagkasensitibo mismo sa gitna. Nagbibigay ang code ng mga serial print na may kasamang mga pagbabasa mula sa lahat ng mga sensor na magpapadali sa pag-debug ng mga naturang problema.

Kumokonekta sa mga sensor:

Ang mga numero ng pin na ginamit namin ay ang mga sumusunod (at maaaring mabago sa pangunahing code):

Sa labas ng sensor ng DHT - D2.

Sa loob ng sensor ng DHT - D3.

Electret - A0 (analog pin).

PIR - D5.

Ang mga iskema para sa pagkonekta sa bawat isa sa kanila ay maaaring madaling makita gamit ang paghahanap ng imahe sa google na may isang bagay sa linya ng "PIR risistor Arduino eskematiko" (hindi namin nais na kopyahin ang mga ito dito at tumawid sa anumang mga linya ng copyright:)).

Nag-attach din kami ng isang larawan ng aming breadboard, marahil mahirap talagang sundin ang mga koneksyon, ngunit maaari itong magbigay ng magandang pakiramdam para dito.

Tulad ng alam mo marahil, ang mga bagay na bihirang kung gagana sa unang pagkakataon na ikonekta natin ang mga ito. Iyon ang dahilan kung bakit gumawa kami ng isang pagpapaandar na naglilimbag ng mga pagbasa mula sa mga sensor sa isang madaling basahin na paraan, upang maaari mong i-debug ang iyong paraan upang gumana ang mga ito. Kung hindi mo nais ang code na subukang kumonekta sa Blynk habang nagde-debug, magbigay lamang ng puna sa "Blynk.begin (auth, ssid, pass);" mula sa setup na bahagi ng code, patakbuhin ito, at buksan ang serial monitor upang makita ang mga kopya. Nag-attach din kami ng larawan ng mga kopya.

Hakbang 3: Sa Maraming Maraming Detalye - IFTTT Sequence

Sa Maraming Maraming Mga Detalye - IFTTT Sequence
Sa Maraming Maraming Mga Detalye - IFTTT Sequence

Kaya nais naming maabisuhan sa dalawang mga sitwasyon:

1. Ang panlabas na temp ay sapat na malapit sa isa sa atin sa loob ng AC na gumagana.

2. Lumabas kami ng silid para sa isang pinalawig na tagal ng panahon at ang AC ay gumagana pa rin.

Nagbibigay-daan sa amin ang IFTTT na kumonekta sa maraming iba't ibang mga serbisyo na karaniwang hindi nakikipag-ugnay, sa isang napaka-simpleng paraan. Sa aming kaso, pinapayagan kaming magpadala ng mga notification nang napakadali sa pamamagitan ng maraming mga serbisyo. Pinili namin ang Facebook Messanger, ngunit pagkatapos na gumana ito sa Facebook Messanger madali mong mababago ito sa anumang iba pang serbisyo na iyong pinili.

Ang proseso:

Sa website ng IFTTT mag-click sa iyong username (kanang sulok sa itaas) at pagkatapos ay piliin ang "New Applet" na "Webhooks" bilang gatilyo (ang "ito"), at piliin ang "Tumanggap ng isang kahilingan sa web". Magtakda ng isang pangalan ng kaganapan (hal. Walang silid).

Para sa na-trigger na serbisyo, ang pagkilos (ang "iyon"), piliin ang Facebook Messenger> Magpadala ng mensahe, at i-type ang mensahe na nais mong matanggap kapag nangyari ang kaganapang ito (hal. "Kumusta, tila nakalimutan mo ang AC sa: ).

Habang narito kami, dapat mo ring makita ang iyong lihim na susi na kakailanganin mong ipasok sa naaangkop na lugar sa code.

Upang mahanap ang iyong lihim na key pumunta sa https://ifttt.com/services/maker_webhooks/settings Doon ay mahahanap mo ang isang URL kasama ang iyong susi sa sumusunod na format:

Hakbang 4: Sa Maraming Maraming Mga Detalye - Blynk

Image
Image
Sa Maraming Detalye - Blynk
Sa Maraming Detalye - Blynk
Sa Maraming Maraming Detalye - Blynk
Sa Maraming Maraming Detalye - Blynk

Gusto rin namin ng isang interface na magkakaroon ng mga sumusunod na tampok:

1. Kakayahang itakda kung gaano katagal dapat walang laman ang silid sa AC na gumagana bago kami aabisuhan

2. Kakayahang pumili kung gaano kalapit ang temperatura sa labas sa loob.

3. Isang display para sa mga pagbabasa mula sa mga sensor ng temperatura

4. Isang humantong na nagsasabi sa amin ng estado ng AC (on / off).

5. At pinakamahalaga, isang display upang maipakita kung magkano ang $$$ at enerhiya na nai-save.

Paano likhain ang interface ng Blynk:

Kung wala ka pang Blynk app, i-download ito sa iyong telepono. Kapag binuksan mo ang app at lumikha ng isang bagong proyekto, tiyaking pipiliin ang naaangkop na aparato (hal. ESP8266).

Makakakuha ka ng isang email na may isang token ng pagpapatunay, na kung saan ay iyong isisingit sa code sa naaangkop na lugar (maaari mo ring ipadala muli ito sa iyong sarili mula sa mga setting sa paglaon kung mawala ito sa iyo).

Ang lugar ng mga bagong widget sa iyong screen, i-click ang + sign sa itaas. Piliin ang mga widget, at pagkatapos ay mag-click sa isang widget upang ipasok ang mga setting nito. Nagdagdag kami ng mga larawan ng mga setting para sa lahat ng mga widget na ginamit namin, para sa iyong sanggunian.

Matapos mong matapos sa app, at kung kailan mo nais na gamitin ito, mag-click lamang sa icon na "play" sa kanang sulok sa itaas upang patakbuhin ang Blynk app. Makikita mo rin kapag nag-uugnay ang iyong ESP8266.

Tandaan - ang pindutang "i-update" ay ginagamit upang makuha ang temperatura at estado ng AC para makita natin sa app. Hindi ito kinakailangan kapag binabago ang mga setting (tulad ng pagkakaiba sa temperatura), dahil awtomatiko silang naitulak.

Hakbang 5: Ang Code

Gumawa kami ng maraming pagsisikap upang idokumento ang bawat bahagi ng code sa isang paraan na gagawing madali ang pag-unawa dito.

Ang mga bahagi sa code na dapat mong baguhin bago gamitin ito (bilang auth key para sa Blynk, iyong wifi SSID at password, atbp …) ay sinusundan ng komento // * pagbabago * upang madali mong hanapin ang mga ito.

Kakailanganin mong magamit ang mga aklatan sa code, maaari mong mai-install ang mga ito sa pamamagitan ng Arduino IDE sa pamamagitan ng pag-click sa Sketch> Isama ang Mga Aklatan> Pamahalaan ang Mga Aklatan. Doon maaari kang maghanap para sa pangalan ng library at mai-install ito. Gayundin, tiyaking inilagay mo ang generic8266_ifttt.h file sa parehong lokasyon tulad ng ACsaver.ino.

Ang isang bahagi ng code ay ipaliwanag namin dito dahil hindi namin nais na kalat ang code, ay kung paano kami magpapasya kung kailan baguhin ang estado ng AC mula sa hanggang sa, at ang estado ng silid mula sa walang laman hanggang sa walang laman.

Nagbabasa kami mula sa mga sensor bawat 3 segundo, ngunit dahil ang mga sensor ay hindi 100% tumpak, hindi namin nais ang isang solong pagbasa upang baguhin ang estado na sa tingin namin ay nasa silid ngayon. Upang malutas ito, kung ano ang ginagawa ng code, mayroon kaming isang counter na aming ++ kapag nakakakuha kami ng isang pagbasa na pabor sa "AC ay nasa", at - kung hindi man. Pagkatapos, kapag nakarating kami sa halagang tinukoy sa SWITCHAFTER (default sa 4), binago namin ang estado sa "AC is on", pagdating namin sa -SWITCHAFTER (negatibo ang parehong halaga), binago namin ang estado sa "AC ay off ".

Ang epekto sa oras na kinakailangan upang lumipat ay bale-wala, at nakita namin na ito ay napaka maaasahan sa pagtuklas ng mga tamang pagbabago lamang.

Hakbang 6: Pagsasama-sama sa Lahat ng Ito

Ok, kaya lahat ng mga sensor ay nasa lugar at gumagana nang maayos. Ang Blynk interface ay nakatakda (na may tamang virtual pin!). At ang mga kaganapan sa IFTTT ay naghihintay para sa aming gatilyo.

Ipinasok mo ang lihim na key ng IFTTT sa code, ang key key mula sa Blynk, ang SSID ng iyong WiFi at ang password, at sinuri mo pa rin na ang mga sensor ng DHT ay naka-calibrate at kung hindi, binago ang offset nang naaayon (halimbawa, ang aming sa labas ng DHT basahin ang mga temperatura nang mas mataas ng 1 degree Celsius na dapat ang mayroon siya, kaya ginamit namin ang offset = -1).

Tiyaking naka-up ang iyong WiFi, simulan ang iyong Blynk app, at i-load ang code sa iyong ESP8266.

Ayan yun. Kung ang lahat ay nagawa nang tama, maaari mo nang i-play ngayon at makita ito sa pagkilos.

At kung nais mo lamang itong makita sa pagkilos nang walang problema sa pagsasama-sama ng lahat … Well … Mag-scroll up at panoorin ang video. (Manood ng mga subtitle! Walang boses)

Hakbang 7: Mga Saloobin

Nagkaroon kami ng dalawang pangunahing hamon dito.

Una sa lahat, paano natin malalaman na nakabukas ang AC? Sinubukan naming gumamit ng isang IR receiver na "makikinig" sa komunikasyon sa pagitan ng AC at ng remote. Ito ay lumitaw na masyadong kumplikado, dahil ang data ay masyadong magulo at hindi sapat na pare-pareho upang maunawaan ang "ok, ito ay isang ON signal". Kaya naghanap kami ng ibang paraan. Ang isang ideya ay ang paggamit ng isang maliit na tagabunsod na makakabuo ng maliit na kasalukuyang kapag gumagalaw mula sa hangin ng AC, isa pang ideya na sinubukan namin ay upang magkaroon ng isang sukat ng sukat ng sukat ng umiikot na mga pakpak sa mga lagusan at tuklasin ang kanilang paggalaw mula sa posisyon na OFF.

Sa paglaon, napagtanto namin ang pinakasimpleng paraan upang gawin ito ay sa pamamagitan ng electret microphone, na lubos na mapagkakatiwalaang nakikita ang hangin na lumalabas sa AC

Ang pagkuha ng mga sensor ng DHT upang gumana ay isang simoy;), ngunit sa paglaon lamang natanto namin na ang isa sa kanila ay medyo nalayo mula sa tunay na temperatura. Ang sensor ng PIR ay nangangailangan ng ilang mga pagsasaayos din, tulad ng nailarawan dati.

Ang pangalawang hamon ay ginagawang simple, at maaasahan ang buong solusyon. Sa isang kahulugan na dapat itong nakakainis na gamitin, dapat lamang doon at sumanas kapag kailangan mo. Kung hindi man, tayo mismo ay maaaring tumigil sa paggamit nito.

Kaya't pinag-isipan namin kung ano ang dapat na nasa interface ng Blynk at sinubukan na gawing maaasahan ang code, sa pamamagitan ng pag-aalaga sa bawat case ng edge na maaari naming maisip.

Ang isa pang hamon, na nabigo naming malutas sa oras ng pagsusulat ng itinuturo na ito, ay upang magdagdag ng isang IR blaster na magpapahintulot sa amin na patayin ang AC mula sa interface ng Blynk. Ano ang point sa pag-alam na nakalimutan mo ang AC nang walang posibilidad na i-off? (mabuti … maaari mong tanungin ang sinuman kung nasa bahay sila).

Sa kasamaang palad, nagkaroon kami ng ilang mga kahirapan sa pag-replay ng mga signal na naitala namin mula sa remote control, pabalik sa AC gamit ang ESP8266. Pinamahalaan namin ang AC ng isang Arduino Uno, na sinusundan ang itinuturo na ito:

www.instructables.com/id/How-to-control-th…

Susubukan naming muli sa lalong madaling panahon, at i-update ang itinuturo sa aming mga natuklasan, at sana mga tagubilin sa kung paano idagdag ang kakayahang iyon.

Ang isa pang limitasyon na nakikita namin ay ang katotohanan na kailangan namin upang ikonekta ang isang sensor sa labas ng window, na maaaring hindi posible sa ilang mga sitwasyon, at nangangahulugan din ng isang mahabang cable na kailangang lumabas. Ang isang solusyon ay maaaring upang makuha ang data ng panahon ng iyong lokasyon mula sa internet. Gayundin, ang electret sensor na tumatakbo mula sa AC ay maaaring mapalitan ng IR receiver na inilarawan namin sa itaas, para sa mga modelo ng AC na mas kilala o madaling ma-decode ang mga IR code.

Ang proyekto ay maaaring mapalawak sa maraming paraan. Tulad ng sinabi sa itaas, susubukan naming makahanap ng isang paraan upang maisama ang kontrol ng IR sa AC, na magbubukas ng isang bagong bagong mundo ng mga pagkakataon upang i-on at i-off ang AC mula sa kahit saan sa mundo, o itakda at patayin ang mga oras sa pamamagitan ng Blynk app, bilang isa pang halimbawa. Matapos malaman ang mga kahirapan sa teknikal na IR, ang pagdaragdag ng code ay medyo simple at prangka, at hindi dapat magtagal.

Kung nais talaga nating managinip ng malaki … Ang proyekto ay maaaring gawing isang kumpletong module na gumagawa ng anumang AC isang matalinong AC. At hindi ito nangangailangan ng higit pa kaysa sa ginawa namin. Mas maraming code, mas maraming paggamit ng IR, at kung nais namin itong makagawa ng masa, siguro siguraduhing makuha ang data ng panahon ayon sa lokasyon, maaari nating mailagay ang buong bagay sa isang maliit na maliit na kahon.

Talagang, ang kailangan lang namin ay isang sensor ng temperatura para sa temperatura sa loob, isang sensor ng PIR upang makita ang paggalaw, at IR LED bilang isang blaster, at isang IR receiver upang "makinig" sa komunikasyon sa pagitan ng AC at ng remote na ginagamit namin.

Nagbibigay ang Blynk ng lahat ng mga kakayahan na kailangan namin upang makontrol ang kahon ng mahika, sa isang napaka-simple at maaasahang paraan.

Ang paggawa ng gayong buong proyekto ay magtatagal, lalo na mula sa pananaw ng paggawa nito na sapat na maraming nalalaman upang mai-configure ang sarili nito at awtomatikong makita at maunawaan ang karamihan sa mga AC.

Ngunit ginagawa ito para sa iyong sarili, mabuti, kung gagawin mo ito sa iyong bakanteng oras, tinatantiya namin na hindi dapat tumagal ng higit sa isang linggo o dalawa. Nakasalalay sa kung magkano ang ekstrang oras mayroon ka … Ang pangunahing hamon dito ay upang mai-save ang lahat ng iba't ibang mga signal na maaaring ipadala ng AC remote, at magkaroon ng kahulugan sa kanila. (Bagaman ang pag-replay lamang sa kanila ay dapat na mas madali).

Inirerekumendang: