Obsah:

IDC2018IOT Řekněte mi, kdy vypnout AC: 7 kroků
IDC2018IOT Řekněte mi, kdy vypnout AC: 7 kroků

Video: IDC2018IOT Řekněte mi, kdy vypnout AC: 7 kroků

Video: IDC2018IOT Řekněte mi, kdy vypnout AC: 7 kroků
Video: Přišel mi nový míč ⚽️ z LaLigy 22/23 🇪🇸 ze Španělska! 2024, Listopad
Anonim
Image
Image

Mnoho z nás, zejména v létě, používá AC téměř nepřetržitě, když ve skutečnosti v určitých denních dobách můžeme jen otevřít okno a užívat si příjemný vánek. Také jsme si osobně všimli, že někdy dokonce zapomínáme vypnout AC při odchodu z místnosti, plýtváme energií a penězi.

Řešení, které postavíme, bude porovnávat vnitřní teplotu s vnějším, a až budou dostatečně blízko, upozorní nás přes Facebook Messanger, že je čas otevřít okno a dát AC odpočinout.

Také uděláme další mechanismus, který nás upozorní, když jsme zapomněli AC a odešli z místnosti.

Krok 1: Trochu více podrobností

Shromažďujeme data ze 4 různých senzorů:

  • Dva senzory DHT shromažďují teplotu uvnitř domu i mimo něj.
  • Jeden PIR senzor detekuje pohyb v místnosti.
  • Jeden elektretový mikrofon slouží k detekci větru vycházejícího z větracího otvoru střídavého proudu, což je jednoduchý a spolehlivý způsob, jak zjistit, zda je střídavý proud zapnutý.

Data pocházející ze senzorů budou zpracována a odeslána do Blynku, kde budou zobrazena v rozhraní, které vytvoříme. Také spustíme události IFTTT, abychom uživatele upozornili, kdy může místo AC otevřít okno a kdy zapomněl zapnout AC a na předem definovanou dobu opustil místnost.

Rozhraní Blynk nám také poskytne způsob, jak změnit relevantní nastavení podle preferencí uživatele, jak budeme podrobněji diskutovat později.

Požadované díly:

  1. WiFi modul - ESP8266
  2. PIR senzor.
  3. Teplotní čidla DHT11/DHT22 x2.
  4. Rezistory 10k/4,7k (DHT11 - 4,7k, DHT22 - 10k, PIR - 10k).
  5. Elektretový mikrofon.
  6. Svetry.
  7. Dlouhé kabely (telefonní kabel odvede skvělou práci).

Kompletní kód projektu je připojen na konci s komentáři v celém kódu.

Logicky má několik různých vrstev funkcí:

  • Data ze senzorů jsou odečítána v intervalech 3 sekund, protože ukazují, že jsou přesnější a víc než to není potřeba.
  • Jedna část kódu sleduje stav AC pomocí hodnot pocházejících z elektretového mikrofonu, který je umístěn nad otvorem AC.
  • Další část je sledování odečtů pocházejících z teplotních senzorů a rozdílu v používání, které je definováno jako přijatelné pro zapnutí střídavého proudu a otevření okna. Hledáme okamžik, kdy se teploty dostatečně přiblíží.
  • Třetí částí je sledování pohybu v místnosti. Pokud nezjistí žádný větší pohyb (způsob kontroly major bude vysvětlen brzy) po dobu definovanou uživatelem a stav AC je ZAPNUT, bude uživateli zasláno oznámení.
  • Oznámení jsou zpracovávána prostřednictvím spouštění IFTTT Webhooks, které uživateli odesílají předdefinované zprávy prostřednictvím aplikace Facebook Messenger
  • Poslední část, která stojí za zmínku, je část, která zpracovává rozhraní Blynk, a to jak změnami, které uživatel provádí v proměnných, tak na druhé straně - tlačením dat do rozhraní Blynk, aby je uživatel viděl.

Krok 2: Mnohem více podrobností - senzory

Mnohem více podrobností - senzory
Mnohem více podrobností - senzory
Mnohem více podrobností - senzory
Mnohem více podrobností - senzory

Začněme.

Nejprve se musíme ujistit, že oba naše senzory DHT čtou stejnou teplotu, když jsou umístěny na stejném místě. Za tímto účelem jsme vytvořili jednoduchý náčrt připojený na konci této části (CompareSensors.ino). Připojte oba senzory a ujistěte se, že v náčrtu změníte typ senzorů DHT podle těch, které máte (výchozí je jeden DHT11 a jeden DHT22, abyste viděli, jak jsou oba zpracovány v kódu). Otevřete sériový monitor a nechte je chvíli pracovat, zvláště pokud používáte senzory DHT11, protože jejich přizpůsobení teplotním změnám obvykle trvá déle.

Všimněte si rozdílu mezi senzory a vložte jej později do hlavního kódu do proměnné „offset“.

Umístění senzorů:

Jeden snímač DHT by měl být umístěn na vnější stěně domu, připojte jej tedy k nějakým dlouhým kabelům, dostatečně dlouhým, aby dosáhly na váš ESP8266 uvnitř místnosti, a umístěte jej ven (lze snadno provést oknem). Druhý snímač DHT by měl být umístěn na prkénku, uvnitř místnosti, ve které používáme střídavý proud.

Elektretový mikrofon by měl být také připojen k dostatečně dlouhým kabelům a umístěn na místo, kde jej zasáhne vítr vycházející ze střídavého proudu.

Nakonec by měl být PIR senzor umístěn na místo obrácené ke středu místnosti, aby zachytilo každý pohyb v místnosti. Všimněte si, že senzor má dva malé knoflíky, jeden ovládající zpoždění (jak dlouho je udržován VYSOKÝ signál detekce pohybu VYSOKÝ) a druhý ovládá citlivost (viz obrázek).

Možná si s tím budete muset pohrát, dokud si nepřečtete, s čím jste spokojeni. Pro nás bylo nejlepším výsledkem zpoždění úplně doleva (nejnižší hodnota) a citlivost přímo uprostřed. Kód poskytuje sériové výtisky, které zahrnují čtení ze všech senzorů, což výrazně usnadní ladění takových problémů.

Připojení senzorů:

Čísla pinů, která jsme použili, jsou následující (a lze je změnit v hlavním kódu):

Venkovní snímač DHT - D2.

Uvnitř snímač DHT - D3.

Electret - A0 (analogový pin).

PIR - D5.

Schémata pro připojení každého z nich lze snadno najít pomocí vyhledávání obrázků Google pomocí něčeho v duchu „PIR rezistor Arduino schematic“(nechtěli bychom je zde kopírovat a překračovat jakékoli řádky autorských práv:)).

Připojili jsme také obrázek našeho prkénka, je asi těžké opravdu sledovat souvislosti, ale může to dát dobrý pocit.

Jak pravděpodobně víte, věci zřídka, pokud vůbec, fungují při prvním připojení. Proto jsme vytvořili funkci, která tiskne hodnoty ze senzorů snadno čitelným způsobem, abyste si mohli ladit cestu, aby fungovaly. Pokud nechcete, aby se kód při ladění pokoušel připojit k Blynku, napište do komentáře „Blynk.begin (auth, ssid, pass);“z části nastavení kódu, spusťte jej a otevřete sériový monitor, abyste viděli výtisky. Připojili jsme také obrázek tisků.

Krok 3: Mnohem více podrobností - sekvence IFTTT

Mnohem více podrobností - sekvence IFTTT
Mnohem více podrobností - sekvence IFTTT

Chceme tedy dostávat oznámení ve dvou scénářích:

1. Venkovní teplota je dostatečně blízko té, kterou máme uvnitř, když pracuje AC.

2. Opustili jsme místnost na delší dobu a AC stále funguje.

IFTTT nám umožňuje velmi jednoduchým způsobem propojit mnoho různých služeb, které obvykle neinteragují. V našem případě nám to umožňuje velmi snadno odesílat oznámení prostřednictvím mnoha služeb. Vybrali jsme si Facebook Messanger, ale poté, co bude fungovat s Facebook Messanger, jej budete moci snadno změnit na jakoukoli jinou službu podle vašeho výběru.

Proces:

Na webu IFTTT klikněte na své uživatelské jméno (v pravém horním rohu) a poté na „Nový aplet“vyberte jako spouštěcí tlačítko „Webhooks“(dále jen „toto“) a zvolte „Přijmout webový požadavek“. Nastavte název události (např. Empty_room).

U spuštěné služby akci („to“), vyberte Facebook Messenger> Odeslat zprávu a zadejte zprávu, kterou chcete obdržet, když k této události dojde (např. „Ahoj, zdá se, že jsi zapomněl AC na:).

Když jsme tady, měli byste také najít svůj tajný klíč, který budete muset vložit na příslušné místo v kódu.

Chcete -li najít svůj tajný klíč, přejděte na https://ifttt.com/services/maker_webhooks/settings Zde najdete adresu URL s klíčem v následujícím formátu:

Krok 4: Mnohem více podrobností - Blynk

Image
Image
Mnohem více podrobností - Blynk
Mnohem více podrobností - Blynk
Mnohem více podrobností - Blynk
Mnohem více podrobností - Blynk

Chceme také rozhraní, které bude mít následující funkce:

1. Schopnost nastavit, jak dlouho by měla být místnost prázdná, když AC pracuje, než dostaneme oznámení

2. Schopnost zvolit, jak blízko by měla být venkovní teplota vnitřku.

3. Displej pro odečty ze snímačů teploty

4. LED dioda informující o stavu AC (zapnuto/vypnuto).

5. A co je nejdůležitější, displej, který ukazuje, kolik jsme $$$ a energie ušetřili.

Jak vytvořit rozhraní Blynk:

Pokud aplikaci Blynk ještě nemáte, stáhněte si ji do telefonu. Když otevřete aplikaci a vytvoříte nový projekt, nezapomeňte vybrat příslušné zařízení (např. ESP8266).

Obdržíte e -mail s ověřovacím tokenem, který vložíte do kódu na příslušném místě (můžete si jej také znovu poslat z nastavení později, pokud jej ztratíte).

Umístěte nové widgety na obrazovku, klikněte na znaménko + v horní části. Vyberte widgety a poté kliknutím na widget zadejte jeho nastavení. Pro vaši informaci jsme přidali obrázky nastavení pro všechny widgety, které jsme použili.

Poté, co s aplikací skončíte a až ji nakonec budete chtít používat, spustíte aplikaci Blynk jednoduše kliknutím na ikonu „přehrát“v pravém horním rohu. Budete také moci vidět, kdy se váš ESP8266 připojí.

Poznámka - tlačítko „aktualizovat“slouží k načtení teploty a stavu AC, které můžeme v aplikaci vidět. Při změně nastavení (například teplotního rozdílu) to není nutné, protože se automaticky tlačí.

Krok 5: Kód

Vyvinuli jsme velké úsilí, abychom zdokumentovali každou část kódu způsobem, který by jeho porozumění co nejvíce usnadnil.

Po částech kódu, které musíte před použitím změnit (jako ověřovací klíč pro Blynk, vaše SSID SSID a heslo atd.), Následuje komentář //* změna*, abyste je mohli snadno vyhledat.

Budete muset mít knihovny použité v kódu, můžete je nainstalovat pomocí Arduino IDE kliknutím na Sketch> Include Libraries> Manage Libraries. Zde můžete vyhledat název knihovny a nainstalovat jej. Nezapomeňte také umístit soubor generic8266_ifttt.h na stejné místo jako ACsaver.ino.

Jedna část kódu, kterou zde vysvětlíme, protože jsme nechtěli zaplnit kód, spočívá v tom, jak se rozhodneme, kdy změnit stav AC ze zapnuto na vypnuto, a stav místnosti z prázdného do prázdného.

Čteme ze senzorů každé 3 sekundy, ale protože senzory nejsou 100% přesné, nechceme, aby jediné čtení změnilo stav, o kterém se domníváme, že je nyní v místnosti. Abychom to vyřešili, kód dělá to, že máme počítadlo, které ++, když dostaneme čtení ve prospěch „AC je zapnuto“, a - jinak. Poté, když se dostaneme na hodnotu definovanou v SWITCHAFTER (výchozí hodnota 4), změníme stav na „AC is on“, když se dostaneme na -SWITCHAFTER (záporná stejná hodnota), změníme stav na „AC is off.

Dopad na dobu potřebnou k přepnutí je zanedbatelný a shledáváme jej velmi spolehlivým při detekci pouze správných změn.

Krok 6: Dát to všechno dohromady

Dobře, takže všechna čidla jsou na svém místě a fungují správně. Rozhraní Blynk je nastaveno (se správnými virtuálními piny!). A události IFTTT čekají na naši spoušť.

Do kódu jste vložili tajný klíč IFTTT, autorizační klíč od Blynka, SSID vašeho WiFi a heslo a dokonce jste zkontrolovali, zda jsou snímače DHT kalibrovány, a pokud ne, změnili odpovídajícím způsobem ofset (například náš mimo DHT číst teploty vyšší o 1 stupeň Celsia, že co by měl mít, tak jsme použili offset = -1).

Ujistěte se, že je vaše WiFi aktivní, spusťte aplikaci Blynk a nahrajte kód do svého ESP8266.

A je to. Pokud bylo vše provedeno správně, můžete si nyní hrát a vidět to v akci.

A pokud to chcete jen vidět v akci, aniž byste měli problém to všechno skloubit … No … posuňte se nahoru a sledujte video. (Sledujte s titulky! Žádný hlas)

Krok 7: Myšlenky

Zde jsme měli dvě hlavní výzvy.

Za prvé, jak poznáme, že je AC zapnuté? Zkusili jsme použít IR přijímač, který bude „poslouchat“komunikaci mezi AC a dálkovým ovladačem. Zdálo se to být příliš komplikované, protože data byla velmi chaotická a nebyla dostatečně konzistentní, aby pochopila „ok, toto je signál ON“. Hledali jsme tedy jiné způsoby. Jednou z myšlenek bylo použít malou vrtuli, která bude generovat malý proud při pohybu z větru střídavého proudu. Další myšlenkou, kterou jsme vyzkoušeli, bylo nechat akcelerometr měřit úhel rotujících křídel na větracích otvorech a detekovat jejich pohyb z polohy VYPNUTO.

Nakonec jsme si uvědomili, že nejjednodušší způsob, jak to udělat, je elektretový mikrofon, který velmi spolehlivě detekuje vítr vycházející z AC

Uvedení senzorů DHT do provozu bylo hračkou;), ale až později jsme si uvědomili, že jeden z nich je trochu mimo skutečnou teplotu. Čidlo PIR také vyžadovalo určité úpravy, jak bylo popsáno výše.

Druhou výzvou bylo zjednodušení a spolehlivost celého řešení. V jistém smyslu by mělo být používání nepříjemné, mělo by tam být a šťouchnout, když potřebujete. Jinak bychom to asi sami přestali používat.

Zamysleli jsme se tedy nad tím, co by mělo být v rozhraní Blynku, a pokusili jsme se zajistit, aby byl kód co nejspolehlivější tím, že se postaráme o každý okrajový případ, na který bychom mohli přijít.

Další výzvou, kterou jsme do doby psaní tohoto pokynu nedokázali vyřešit, bylo přidání IR blasteru, který nám umožní vypnout AC z rozhraní Blynk. Jaký má smysl vědět, že jste zapomněli AC bez možnosti vypnout? (no … můžete se někoho zeptat, jestli je doma).

Bohužel jsme měli potíže s přehráváním signálů, které jsme zaznamenali z dálkového ovladače, zpět do AC pomocí ESP8266. Podařilo se nám ovládat AC pomocí Arduino Uno podle tohoto instrukce:

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

Brzy to zkusíme znovu a aktualizujeme pokyny pomocí našich zjištění a doufejme, že pokyny, jak tuto schopnost přidat.

Další omezení, které vidíme, je skutečnost, že potřebujeme připojit snímač mimo okno, což v určitých situacích nemusí být možné, a také to znamená, že je třeba jít ven dlouhý kabel. Řešením může být načtení údajů o počasí vaší polohy z internetu. Elektretový senzor, který běží ze střídavého proudu, lze také nahradit infračerveným přijímačem, který jsme popsali výše, u modelů střídavého proudu se známějšími nebo snadno dekódovatelnými IR kódy.

Projekt lze rozšířit mnoha způsoby. Jak již bylo řečeno výše, pokusíme se najít způsob, jak zahrnout IR ovládání AC, což pak otevře zcela nový svět příležitostí k zapnutí a vypnutí AC odkudkoli na světě nebo nastavení časů zapnutí a vypnutí prostřednictvím Blynk aplikace, jako další příklad. Po zjištění technických potíží s IR je přidání kódu poměrně jednoduché a přímočaré a nemělo by trvat dlouho.

Pokud opravdu chceme snít ve velkém… Projekt lze proměnit v kompletní modul, který z jakéhokoli AC udělá inteligentní AC. A nepotřebuje o moc víc než my. Jen více kódu, více využití IR, a pokud chceme, aby to bylo hromadně vyráběno, možná se ujistěte, že načtete data o počasí podle místa, pak můžeme celou věc dát do malé krabičky.

Opravdu vše, co potřebujeme, je teplotní senzor pro vnitřní teplotu, PIR senzor pro detekci pohybu a IR LED jako blaster a IR přijímač k „poslechu“komunikace mezi AC a dálkovým ovladačem, který používáme.

Blynk poskytuje všechny možnosti, které potřebujeme k ovládání magického boxu, velmi jednoduchým a spolehlivým způsobem.

Vytvoření tak úplného projektu bude nějakou dobu trvat, zejména z hlediska toho, že bude dostatečně univerzální, aby se sám nakonfiguroval a automaticky detekoval a porozuměl většině AC.

Ale dělat to pro sebe, no, pokud to děláte ve svém volném čase, odhadujeme, že by to nemělo trvat déle než týden nebo dva. Záleží na tom, kolik volného času máte … Hlavní výzvou by zde bylo zachránit všechny různé signály, které může dálkový ovladač AC vysílat, a dávat jim smysl. (I když jen jejich přehrání by mělo být ještě jednodušší).

Doporučuje: