Obsah:

IDC2018IOT Povedzte mi, kedy vypnúť AC: 7 krokov
IDC2018IOT Povedzte mi, kedy vypnúť AC: 7 krokov

Video: IDC2018IOT Povedzte mi, kedy vypnúť AC: 7 krokov

Video: IDC2018IOT Povedzte mi, kedy vypnúť AC: 7 krokov
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, Júl
Anonim
Image
Image

Mnoho z nás, najmä v letnom období, používa klimatizáciu takmer nepretržite, keď v skutočnosti v určitých časoch dňa môžeme len otvoriť okno a užívať si príjemný vánok. Osobne sme si tiež všimli, že niekedy dokonca len zabúdame vypnúť klimatizáciu pri odchode z miestnosti, pričom plytváme energiou a peniazmi.

Riešenie, ktoré vybudujeme, bude porovnávať vnútornú teplotu s vonkajším a keď budú dostatočne blízko, upozorní nás prostredníctvom služby Facebook Messanger, že je čas otvoriť okno a nechať klimatizáciu trochu odpočinúť.

Tiež urobíme ďalší mechanizmus, ktorý nás upozorní, keď sme zabudli zapnúť AC a opustiť miestnosť.

Krok 1: Trochu viac podrobností

Zhromažďujeme údaje zo 4 rôznych senzorov:

  • Dva snímače DHT zaznamenávajú teplotu vo vnútri domu a mimo domu.
  • Jeden PIR senzor detekuje pohyb v miestnosti.
  • Jeden elektretový mikrofón sa používa na detekciu vetra vychádzajúceho z vetracieho otvoru striedavého prúdu, čo je jednoduchý a spoľahlivý spôsob, ako zistiť, či je striedavý prúd zapnutý.

Údaje pochádzajúce zo senzorov budú spracované a odoslané do Blynku, kde budú zobrazené v rozhraní, ktoré vytvoríme. Tiež budeme spúšťať udalosti IFTTT, aby sme užívateľa upozornili, kedy môže namiesto AC otvoriť okno a kedy zabudol AC a opustil miestnosť na vopred definovanú dobu.

Rozhranie Blynk nám tiež poskytne spôsob, ako zmeniť relevantné nastavenia podľa preferencií používateľov, o ktorých budeme podrobnejšie diskutovať neskôr.

Požadované diely:

  1. WiFi modul - ESP8266
  2. PIR senzor.
  3. Teplotné snímače DHT11/DHT22 x2.
  4. Rezistory 10k/4,7k (DHT11 - 4,7k, DHT22 - 10k, PIR - 10k).
  5. Elektretový mikrofón.
  6. Svetre.
  7. Dlhé káble (skvelú prácu urobí telefónny drôt).

Kompletný kód projektu je priložený na konci s komentármi v celom kóde.

Logicky má niekoľko rôznych vrstiev funkcií:

  • Údaje zo senzorov sa čítajú v intervaloch 3 sekundy, pretože ukazujú, že sú presnejšie a nie je potrebné nič viac.
  • Jednou časťou kódu je sledovanie stavu AC pomocou hodnôt pochádzajúcich z elektretového mikrofónu, ktorý je umiestnený nad otvorom AC.
  • Ďalšou časťou je sledovanie hodnôt pochádzajúcich z teplotných senzorov a rozdielu v použití, ktoré je definované ako prijateľné na vypnutie striedavého prúdu a otvorenie okna. Hľadáme moment, kedy sa teploty dostatočne priblížia.
  • Treťou časťou je sledovanie pohybu v miestnosti. Ak nezistí žiadny zásadný pohyb (spôsob kontroly majority bude vysvetlený čoskoro) počas časového rámca definovaného používateľom a stav striedavého prúdu je ZAPNUTÝ, používateľovi bude odoslané upozornenie.
  • Oznámenia sa spracúvajú prostredníctvom spúšťania IFTTT Webhooks, ktoré odosielajú preddefinované správy používateľovi prostredníctvom služby Facebook Messenger
  • Posledná časť, ktorá stojí za zmienku, je časť, ktorá sa zaoberá rozhraním Blynk, a to tak, že používateľ získa zmeny v premenných, a na druhej strane - tlačí údaje do rozhrania Blynk, aby ich používateľ videl.

Krok 2: Oveľa viac podrobností - senzory

Oveľa viac podrobností - senzory
Oveľa viac podrobností - senzory
Oveľa viac podrobností - senzory
Oveľa viac podrobností - senzory

Začnime.

Najprv sa musíme uistiť, že oba naše senzory DHT čítajú rovnakú teplotu, keď sú umiestnené na rovnakom mieste. Na to sme urobili jednoduchý náčrt priložený na konci tejto časti (CompareSensors.ino). Pripojte oba senzory a uistite sa, že v skici zmeníte typ senzorov DHT podľa tých, ktoré máte (predvolený je jeden DHT11 a jeden DHT22, aby ste videli, ako sú v kóde spracované oba). Otvorte sériový monitor a nechajte ich chvíľu pracovať, najmä ak používate senzory DHT11, pretože prispôsobenie sa teplotným zmenám zvyčajne trvá dlhšie.

Všimnite si rozdielu medzi snímačmi a vložte ho neskôr do hlavného kódu do premennej „offset“.

Umiestnenie senzorov:

Jeden snímač DHT by mal byť umiestnený na vonkajšej stene domu, pripojte ho teda k dlhým káblom, ktoré sú dostatočne dlhé na to, aby sa dostali k vášmu ESP8266 v miestnosti, a umiestnite ho von (dá sa to ľahko urobiť cez okno). Druhý snímač DHT by mal byť umiestnený na doske, vo vnútri miestnosti, v ktorej používame striedavý prúd.

Elektretový mikrofón by mal byť tiež pripojený k dostatočne dlhým káblom a umiestnený na mieste, kde naň bude zasahovať vietor vychádzajúci zo striedavého prúdu.

Nakoniec by mal byť PIR senzor umiestnený na mieste tvárou v tvár stredu miestnosti, aby zachytával každý pohyb v miestnosti. Všimnite si toho, že senzor má dva malé gombíky, jeden ovláda oneskorenie (ako dlho je VYSOKÝ signál detekcie pohybu udržiavaný VYSOKÝ) a druhý ovláda citlivosť (pozri obrázok).

Možno sa s tým budete musieť pohrať, kým si neprečítate, s čím ste spokojní. Pre nás bolo najlepším výsledkom oneskorenie úplne doľava (najnižšia hodnota) a citlivosť priamo v strede. Kód poskytuje sériové výtlačky, ktoré obsahujú údaje zo všetkých senzorov, čo výrazne zjednoduší ladenie takýchto problémov.

Pripojenie senzorov:

Čísla pinov, ktoré sme použili, sú nasledujúce (a dajú sa zmeniť v hlavnom kóde):

Vonkajší snímač DHT - D2.

Vnútorný snímač DHT - D3.

Elektret - A0 (analógový kolík).

PIR - D5.

Schémy prepojenia každého z nich je možné ľahko nájsť pomocou vyhľadávania obrázkov Google s niečím v zmysle „PIR rezistor Arduino schematic“(nechceli by sme ich sem skopírovať a prekročiť všetky riadky autorských práv:)).

Pripájali sme aj obrázok nášho breadboardu, asi je ťažké skutočne sledovať súvislosti, ale môže to pre nás vytvoriť dobrý pocit.

Ako asi viete, veci len zriedka, ak vôbec, fungujú pri prvom spojení. Preto sme vytvorili funkciu, ktorá odčítava údaje zo senzorov ľahko čitateľným spôsobom, aby ste si ich mohli ladiť tak, aby fungovali. Ak nechcete, aby sa kód pokúšal pripojiť k Blynku počas ladenia, zadajte komentár „Blynk.begin (auth, ssid, pass);“z časti nastavenia kódu, spustite ho a otvorte sériový monitor, aby ste videli výtlačky. Pripojili sme aj obrázok výtlačkov.

Krok 3: Oveľa viac podrobností - sekvencia IFTTT

Oveľa viac podrobností - sekvencia IFTTT
Oveľa viac podrobností - sekvencia IFTTT

Chceme teda dostávať upozornenia v dvoch scenároch:

1. Vonkajšia teplota je dostatočne blízka tej, ktorú máme vo vnútri, pričom pracuje striedavý prúd.

2. Opustili sme miestnosť na dlhší čas a klimatizácia stále funguje.

IFTTT nám umožňuje veľmi jednoduchým spôsobom prepojiť mnoho rôznych služieb, ktoré zvyčajne medzi sebou nereagujú. V našom prípade nám to umožňuje veľmi jednoducho odosielať oznámenia prostredníctvom mnohých služieb. Vybrali sme si Facebook Messanger, ale potom, čo bude fungovať s Facebook Messangerom, ho budete môcť ľahko zmeniť na akúkoľvek inú službu podľa vášho výberu.

Proces:

Na webových stránkach IFTTT kliknite na svoje používateľské meno (v pravom hornom rohu) a potom na „Nový aplet“zvoľte ako spúšťač „Webhooks“(„toto“) a zvoľte „Prijať webovú žiadosť“. Nastavte názov udalosti (napr. Empty_room).

V prípade spustenej služby vykonajte akciu („to“), vyberte položku Facebook Messenger> Odoslať správu a zadajte správu, ktorú chcete dostať, keď sa táto udalosť stane (napr. „Ahoj, zdá sa, že si zabudol AC zapnuté: ).

Kým sme tu, mali by ste nájsť aj svoj tajný kľúč, ktorý budete musieť vložiť na príslušné miesto v kóde.

Ak chcete nájsť svoj tajný kľúč, navštívte stránku https://ifttt.com/services/maker_webhooks/settings Tam nájdete adresu URL s kľúčom v nasledujúcom formáte:

Krok 4: Oveľa viac podrobností - Blynk

Image
Image
Oveľa viac podrobností - Blynk
Oveľa viac podrobností - Blynk
Oveľa viac podrobností - Blynk
Oveľa viac podrobností - Blynk

Chceme tiež rozhranie, ktoré bude mať nasledujúce funkcie:

1. Schopnosť nastaviť, ako dlho by mala byť miestnosť prázdna, keď bude AC pracovať, než dostaneme upozornenie

2. Schopnosť zvoliť, ako blízko by mala byť vonkajšia teplota k vnútornej.

3. Displej pre hodnoty zo snímačov teploty

4. LED dióda udávajúca stav AC (zapnuté/vypnuté).

5. A čo je najdôležitejšie, displej, ktorý ukazuje, koľko sme $$$ a energie ušetrili.

Ako vytvoriť rozhranie Blynk:

Ak aplikáciu Blynk ešte nemáte, stiahnite si ju do telefónu. Keď otvoríte aplikáciu a vytvoríte nový projekt, vyberte správne zariadenie (napr. ESP8266).

Dostanete e -mail s autentifikačným tokenom, ktorý vložíte do kódu na príslušnom mieste (môžete si ho tiež v prípade straty neskôr znova poslať z nastavení).

Umiestnite nové miniaplikácie na obrazovku, kliknite na znamienko + v hornej časti. Vyberte miniaplikácie a potom kliknutím na miniaplikáciu zadajte jej nastavenia. Pre vašu referenciu sme pridali obrázky nastavení pre všetky widgety, ktoré sme použili.

Keď s aplikáciou skončíte a keď ju nakoniec budete chcieť používať, spustite aplikáciu Blynk jednoducho kliknutím na ikonu „hrať“v pravom hornom rohu. Budete tiež môcť vidieť, kedy sa váš ESP8266 pripojí.

Poznámka - tlačidlo „aktualizovať“sa používa na načítanie teploty a stavu klimatizácie, ktoré môžeme v aplikácii vidieť. Pri zmene nastavení (napríklad teplotného rozdielu) sa nevyžaduje, pretože sa tlačia automaticky.

Krok 5: Kód

Vyvinuli sme veľké úsilie, aby sme každú časť kódu zdokumentovali tak, aby bolo jeho porozumenie čo najľahšie.

Po častiach kódu, ktoré musíte pred použitím zmeniť (ako autorizačný kľúč pre Blynk, vaše SSID a heslo wifi, atď …), nasleduje komentár //* zmena*, aby ste ich mohli ľahko vyhľadať.

Budete potrebovať knižnice použité v kóde, môžete ich nainštalovať prostredníctvom Arduino IDE kliknutím na Sketch> Include Libraries> Manage Libraries. Tam môžete vyhľadať názov knižnice a nainštalovať ho. Nezabudnite tiež vložiť súbor generic8266_ifttt.h na rovnaké miesto ako ACsaver.ino.

Jedna časť kódu, ktorú tu vysvetlíme, pretože sme nechceli zaplniť kód, je to, ako sa rozhodneme, kedy zmeníme stav AC z zapnutého na vypnuté a stav miestnosti z prázdnej do prázdnej.

Čítame zo senzorov každé 3 sekundy, ale keďže senzory nie sú 100% presné, nechceme, aby jediné čítanie zmenilo stav, o ktorom sa domnievame, že sa teraz nachádza v miestnosti. Aby kód vyriešil to, čo kód robí, je, že máme počítadlo, ktoré ++, keď dostaneme čítanie v prospech „AC je zapnuté“, a - inak. Potom, keď sa dostaneme na hodnotu definovanú v SWITCHAFTER (predvolené nastavenie je 4), zmeníme stav na „AC is on“, keď sa dostaneme na -SWITCHAFTER (záporná rovnaká hodnota), zmeníme stav na „AC je vypnuté “.

Vplyv na čas potrebný na zmenu je zanedbateľný a považujeme ho za veľmi spoľahlivý pri zisťovaní iba správnych zmien.

Krok 6: Dajte to všetko dohromady

Ok, takže všetky senzory sú na svojom mieste a fungujú správne. Rozhranie Blynk je nastavené (so správnymi virtuálnymi pinmi!). A udalosti IFTTT čakajú na náš spúšťač.

Do kódu ste vložili tajný kľúč IFTTT, autorizačný kľúč od Blynka, SSID vášho WiFi a heslo a dokonca ste skontrolovali, či sú snímače DHT kalibrované, a ak nie, podľa toho ste zmenili ofset (napríklad náš mimo DHT čítať teploty vyššie o 1 stupeň Celzia, že to, čo by mal mať, tak sme použili ofset = -1).

Uistite sa, že je vaše Wi -Fi zapnuté, spustite aplikáciu Blynk a načítajte kód do svojho ESP8266.

To je všetko. Ak bolo všetko urobené správne, môžete sa teraz hrať a vidieť to v akcii.

A ak to chcete vidieť v akcii bez problémov dať všetko dohromady … Nuž … Posuňte sa hore a pozrite si video. (Sledujte s titulkami! Žiadny hlasový prenos)

Krok 7: Myšlienky

Mali sme tu dve hlavné výzvy.

Po prvé, ako zistíme, že je zapnutý AC? Skúsili sme použiť IR prijímač, ktorý bude „počúvať“komunikáciu medzi AC a diaľkovým ovládaním. Zdá sa, že je to príliš komplikované, pretože údaje boli veľmi chaotické a neboli dostatočne konzistentné, aby pochopili „dobre, toto je signál ZAPNUTÝ“. Hľadali sme teda iné cesty. Jednou z myšlienok bolo použiť malú vrtuľu, ktorá bude generovať malý prúd pri pohyboch vetra striedavého prúdu. Ďalšou myšlienkou, ktorú sme vyskúšali, bolo nechať akcelerometer zmerať uhol rotujúcich krídel na vetracích otvoroch a detekovať ich pohyb z polohy VYPNUTÉ.

Nakoniec sme si uvedomili, že najjednoduchší spôsob je to pomocou elektretového mikrofónu, ktorý veľmi spoľahlivo detekuje vietor vychádzajúci z elektrickej siete.

Uvedenie senzorov DHT do prevádzky bolo hračkou;), ale až neskôr sme si uvedomili, že jeden z nich je trochu mimo skutočnej teploty. PIR senzor tiež vyžadoval určité úpravy, ako bolo popísané vyššie.

Druhou výzvou bolo zjednodušenie a spoľahlivosť celého riešenia. V zmysle, že používanie by malo byť nepríjemné, malo by tam byť a šťuchnúť, keď potrebujete. V opačnom prípade by sme to asi prestali používať my sami.

Zamysleli sme sa teda nad tým, čo by malo byť v rozhraní Blynk, a pokúsili sme sa zaistiť, aby bol kód čo najspoľahlivejší, a to tak, že sa postaráme o každý prípad Edge, s ktorým by sme mohli prísť.

Ďalšou výzvou, ktorú sme do doby písania tohto návodu nedokázali vyriešiť, bolo pridať IR blaster, ktorý nám umožní vypnúť AC z rozhrania Blynk. Aký zmysel má vedieť, že ste zabudli zapnúť klimatizáciu bez možnosti vypnúť? (dobre … môžete sa niekoho spýtať, či je doma).

Nanešťastie sme mali problémy s prehrávaním signálov, ktoré sme nahrali z diaľkového ovládača, späť do AC pomocou ESP8266. Podarilo sa nám ovládať AC pomocou Arduino Uno podľa tohto návodu:

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

Čoskoro to skúsime znova a aktualizujeme pokyny podľa našich zistení a dúfajme, že aj pokyny, ako túto funkciu pridať.

Ďalším obmedzením, ktoré vidíme, je skutočnosť, že potrebujeme pripojiť snímač mimo okna, čo v určitých situáciách nemusí byť možné, a tiež to znamená, že musíte ísť von dlhý kábel. Riešením môže byť načítanie údajov o počasí vašej polohy z internetu. Elektretový snímač, ktorý pracuje zo striedavého prúdu, môže byť tiež nahradený infračerveným prijímačom, ktorý sme opísali vyššie, pre modely striedavého prúdu so známejšími alebo ľahko dekódovateľnými IR kódmi.

Projekt je možné rozšíriť mnohými spôsobmi. Ako bolo uvedené vyššie, pokúsime sa nájsť spôsob, ako zahrnúť IR ovládanie AC, čo potom otvára úplne nový svet príležitostí zapnúť a vypnúť AC odkiaľkoľvek na svete alebo nastaviť časy zapínania a vypínania prostredníctvom Blynku. aplikácia, ako ďalší príklad. Po zistení technických ťažkostí s IR je pridanie kódu pomerne jednoduché a jednoduché a nemalo by trvať dlho.

Ak naozaj chceme snívať vo veľkom … Z projektu je možné urobiť kompletný modul, vďaka ktorému bude každý striedavý prúd inteligentným striedavým prúdom. A nepotrebuje oveľa viac ako my. Stačí viac kódu, viac využitia IR a ak chceme, aby bol sériovo vyrábaný, možno sa postaráme o načítanie údajov o počasí podľa miesta, potom to celé môžeme dať do malého boxu.

Skutočne všetko, čo potrebujeme, je snímač teploty vnútornej teploty, snímač PIR na detekciu pohybu a infračervená LED dióda ako blaster a infračervený prijímač na „počúvanie“komunikácie medzi AC a diaľkovým ovládaním, ktoré používame.

Blynk poskytuje všetky možnosti, ktoré potrebujeme na ovládanie magického boxu, veľmi jednoduchým a spoľahlivým spôsobom.

Vytvorenie takého úplného projektu bude nejaký čas trvať, najmä z hľadiska toho, aby bol dostatočne univerzálny na to, aby sa nakonfiguroval a automaticky zistil a porozumel väčšine AC.

Ale aby ste si to urobili sami, ak to robíte vo svojom voľnom čase, odhadujeme, že by to nemalo trvať dlhšie ako týždeň alebo dva. Záleží na tom, koľko voľného času máte … Hlavnou výzvou by tu bolo zachrániť všetky rôzne signály, ktoré môže diaľkový ovládač striedavého prúdu vysielať, a dávať im zmysel. (Aj keď len ich prehranie by malo byť ešte jednoduchšie).

Odporúča: