ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Hlavné body alebo o čom je tento článok

Pokračujeme v sérii článkov o ShioTiny - vizuálne programovateľný ovládač na báze čipu ESP8266.

Tento článok popisuje na príklade projektu riadenia ventilácie v kúpeľni alebo inej miestnosti s vysokou vlhkosťou, ako je vytvorený program pre ShioTiny.

Predchádzajúce články zo série.

ShioTiny: malá automatizácia, internet vecí alebo „šesť mesiacov pred dovolenkou“
ShioTiny: uzly, spojenia a udalosti alebo funkcie programov na kreslenie

referencie

Binárny firmvér, obvod regulátora a dokumentácia
Návod a popis komponentov
Nastavenie brokera MQTT cloudmqtt.com
Informačný panel MQTT pre Android

Úvod

Bez skúsenosti niet porozumenia. Toto je pravda preverená časom a generáciami. Preto nie je nič lepšie na osvojenie si praktických zručností, ako skúsiť niečo urobiť sami. A tu sa vám budú hodiť príklady, ktoré ukazujú, čo dokážete a čo by ste nemali ani skúšať. Chyby iných ľudí samozrejme nedokážu zabrániť vzniku vašich vlastných chýb, ale môžu pomôcť znížiť počet tých druhých.

Otázky a listy od čitateľov predchádzajúcich článkov ma podnietili urobiť malý projekt – príklad ovládania ventilácie, aby som ukázal, ako fungujú uzly ShIoTiny.

Prvotná myšlienka, z ktorej sa ovládač zrodil ShioTiny - čerpacia a zavlažovacia stanica - nie je vhodná pre každého a nebude každého zaujímať. Preto som si ako príklad zobral systém ovládania ventilácie, ktorý je pre mnohých zrozumiteľný a užitočný.

Poviem, že myšlienka projektu nie je moja, ale Mám to odtiaľto a potom sa prispôsobiť ShioTiny.

Najprv pochopte, čo chcete

Proces zlepšovania je nekonečný. A práve táto nehnuteľnosť pokazila mnoho dobrých nápadov a projektov. Vývojár namiesto toho, aby vydal niečo, čo nebolo dokonalé, no stále fungovalo, pokračoval v jeho vylepšovaní. A vylepšoval ho, až kým ho konkurenti neobišli a uvoľnili fungujúce riešenie, aj keď nie ideálne (a často úplne zlé), ale fungujúce.

Preto je veľmi dôležité vedieť, kde projekt ukončiť. Alebo inými slovami, musíme si určiť, čo chceme na konci projektu získať z toho, čo máme na začiatku. V ruštine je pre dokument, ktorý je zostavený presne s cieľom opísať cestu k vytvoreniu niečoho, úžasné krátke a výstižné slovo „plán“, ktoré mentálne retardovaní prekladatelia a defektní manažéri nedávno z nejakého dôvodu začali nazývať „cesta“. mapa“. No, Boh ich žehnaj.

Náš plán bude takýto. Predpokladajme, že existuje miestnosť, v ktorej môže vlhkosť občas výrazne stúpať. Napríklad v kúpeľni alebo kuchyni. Vlhkosť je nepríjemná vec a spôsob boja proti nej je starý ako svet: vetrať miestnosť. Spôsobov vetrania je pomerne veľa. Ale možno opustíme exotické a staromódne metódy, ako sú černosi s vejármi a zostaneme pri obyčajnom vejári. Ventilátory sú v našej oblasti lacnejšie a ľahšie dostupné.

Jedným slovom chceme ovládať ventilátor: zapnite ho a podľa toho ho vypnite. Presnejšie povedané, chceme, aby sa zapínal a vypínal v prípade potreby.

Zostáva určiť: za akých podmienok by sa mal ventilátor zapnúť a za akých podmienok by sa mal vypnúť.

Tu je všetko zrejmé: ak je vlhkosť nad určitou hranicou, ventilátor sa zapne a vytiahne vzduch; Vlhkosť sa vrátila do normálu - ventilátor sa vypne.

Pozornému čitateľovi okamžite padne do oka slovo „dané“. Dané kým? Ako je uvedené?

Prahovú vlhkosť môžete nastaviť niekoľkými spôsobmi. Pozrieme sa na dva z nich: prvý – s premenlivým odporom a druhý – cez sieť cez protokol MQTT. Každá z týchto metód má výhody a nevýhody, o ktorých sa bude diskutovať neskôr.

Pre tých, ktorí nerozumejú, vysvetlím, že „prahová vlhkosť“ je úroveň vlhkosti, nad ktorou musí byť ventilátor zapnutý.

Ďalšia otázka znie: má mať používateľ právo zapnúť ventilátor priamo? Teda, bez ohľadu na úroveň vlhkosti, stlačením tlačidla? Takúto možnosť zabezpečíme. Koniec koncov, ventilátor môže byť potrebný nielen pri vysokej vlhkosti, ale aj na odstránenie z miestnosti napríklad nepríjemného zápachu, ľudovo nazývaného „smrad“.

Takže chápeme, čo chceme, a dokonca aj trochu, ako to bude fungovať. Stručne vymenujeme všetky funkcie nášho systému riadenia ventilácie:

  • nastavenie prahovej úrovne vlhkosti (dve možnosti);
  • meranie úrovne vlhkosti;
  • automatické zapnutie ventilátora;
  • automatické vypnutie ventilátora;
  • manuálna aktivácia ventilátora (stlačením tlačidla).

Plán je teda jasný. V našom programe je potrebné implementovať všetky vyššie uvedené funkcie. Budeme konať na základe tohto „plánu“. Najprv si nakreslíme blokovú schému zariadenia.

Bloková schéma zariadenia

Vo všeobecnosti budeme mať dve takéto schémy. Prvý je pre možnosť, v ktorej je prahová úroveň vlhkosti nastavená premenlivým odporom. Druhá schéma je pre možnosť, v ktorej sa prahová úroveň vlhkosti nastavuje cez sieť cez protokol MQTT.

Keďže sa však tieto obvody budú líšiť iba jedným prvkom - premenlivým odporom „nastavujúcim prahovú úroveň vlhkosti“, nakreslíme iba jednu blokovú schému. Samozrejme, bloková schéma podľa GOST vyzerá inak. Ale nezameriavame sa na inžinierov bizónov, ale na mladšiu generáciu. Viditeľnosť je preto dôležitejšia.

ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Čo teda vidíme na obrázku? Ventilátor je pripojený k relé Relay1 ovládač ShioTiny. Upozorňujeme, že ventilátor je vysokonapäťové zariadenie. Preto, ak to niekto robí sám, buďte opatrní. Teda minimálne predtým, než do obvodu strčíte prsty alebo meracie prístroje, aspoň vypnite napájanie ventilátora. A druhá poznámka. Ak je váš ventilátor výkonnejší ako 250Vta potom ho pripojte priamo k ShioTiny nestojí za to - iba cez štartér.

Vyriešili sme ventilátor. Teraz stlačte tlačidlo „ručne zapnúť“ ventilátor. Je pripojený na vstup Vstup1. Tu už nie je čo vysvetľovať.

Senzor teploty a vlhkosti DHT-11 (Alebo DHT-22 alebo ich analógy). Na jeho pripojenie je na ovládači špeciálny vstup. ShioTiny. Ako môžete vidieť na obrázku, pripojenie takéhoto snímača tiež nie je problém.

A nakoniec premenlivý odpor, ktorý nastavuje prahovú úroveň vlhkosti. Presnejšie, delič pozostávajúci z premenných a konštantných odporov. S jeho pripojením nie sú žiadne problémy, ale dovoľte mi vysvetliť, že vstavaný ADC áno ESP8266 navrhnuté pre maximálne 1 volt. Preto je potrebný delič napätia asi 5-krát.

A dovoľte mi ešte raz pripomenúť, že tento delič nie je potrebný, ak je prahová úroveň vlhkosti nastavená cez sieť pomocou protokolu MQTT.

Začnime vytvárať algoritmus pre zariadenie v editore ElDraw ShIoTiny. Ako sa tam dostať, do tohto editora, sa dočítate v skorších článkoch alebo v návode, ktorého odkaz je na začiatku článku.

Možnosť jedna, najjednoduchšia

Začnime niečím jednoduchým: zapnutím relé Relay1 keď je prahová úroveň vlhkosti prekročená počas stanoveného času.

ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Ako vidíte, nič zložité: iba štyri uzly, nepočítajúc uzly komentárov. DHT11 - toto je samotný snímač teploty a vlhkosti (možno ho nahradiť DHT22).

Neustále KONST — prahová úroveň vlhkosti v percentách.

Komparátor - uzol, ktorý porovnáva dve čísla a vypíše 1, ak je splnená daná podmienka a 0, ak podmienka nie je splnená.

V našom prípade táto podmienka bude A>BKde A je úroveň vlhkosti nameraná snímačom a B — prahová úroveň rovnakej vlhkosti.

Hneď ako sa nameraná úroveň vlhkosti (A) prekročí prahovú úroveň vlhkosti (B), priamo na výstupe komparátora A>B 1 sa objaví a relé sa zapne. Naopak, akonáhle sa úroveň vlhkosti vráti do normálu (t.j. A<=B), priamo na výstupe komparátora A>B Zobrazí sa 0 a relé sa vypne.

Všetko jasné? Pre tých, ktorí nie sú veľmi pohodlní, prečítajte si to znova alebo si pozrite popis činnosti jednotiek v návode.

Všimnite si, že údaje zo snímača DHT11 aktualizované približne raz za 10 sekúnd. Preto sa relé nebude môcť zapínať a vypínať častejšie ako raz za 10 sekúnd.

Všetko by bolo v poriadku, ale chceli by sme nastaviť prahovú úroveň vlhkosti pomocou variabilného odporu. Nič nemôže byť jednoduchšie!

ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Len nahraďme konštantný uzol uzlom ADC. Koniec koncov, k ADC sme pripojili delič napätia s premenlivým odporom.

Napätie na vstupe ADC sa pohybuje od 0 do 1 voltu. Ale vlhkosť na výstupe senzora sa pohybuje od 0 do 100%. Ako ich porovnávame? Je to jednoduché. Uzol ADC v ShioTiny nielen meria vstupné napätie, ale vie aj ako na to mierka a posun.

To znamená, že výstup uzla ADC1 (ADC) bude mať hodnotu X, vypočítané podľa vzorca

ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Kde ShioTiny: vetranie mokrej miestnosti (príkladový projekt) — napätie na vstupe ADC (od 0 do 1V); k - rozsah (rozsah ADC) a b-offset (ADC offset). Ak teda nastavíte k = 100 и b = 0, potom pri zmene ShioTiny: vetranie mokrej miestnosti (príkladový projekt) v rozsahu od 0 do 1, hodnota X na výstupe uzla ADC sa bude meniť v rozsahu od 0 do 100. To znamená, že sa číselne rovná rozsahu zmien vlhkosti od 0 do 100%.

Alebo jednoducho otáčaním posúvača s premenlivým odporom môžete nastaviť prahovú úroveň vlhkosti od 0 do 100. Jedinou nevýhodou je, že neexistujú žiadne zobrazovacie zariadenia. Ale v praxi, ak urobíte 6 dielikov motora s premenlivým odporom (0%, 20%, 40%, 60%, 80%, 100%) - potom to stačí na nastavenie prahovej úrovne vlhkosti.

Ako nastavujeme kurzy? k - rozsah (rozsah ADC) a b-offset (ADC offset)? Áno, jednoduchšie ako dusená repa! Ukážte kurzorom myši na uzol ADC1 a okamžite uvidíte okno nastavení. Dá sa do nej dať všetko potrebné. V našom prípade to bude okno ako na obrázku.

ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Máme teda najjednoduchšie fungujúce riešenie. Začnime to zlepšovať.
Mimochodom, najjednoduchšie riešenie má jednu výhodu – nevyžaduje internet. Je úplne autonómny.

Možnosť dva, pripojte tlačidlo

Všetko funguje a všetci sú spokojní. Ale smola, ventiláciu nemôžeme zapnúť nasilu. To sme sa dohodli už pri vchode Vstup1 budeme mať pripojené tlačidlo, ktoré nasilu zapne a vypne ventilátor bez ohľadu na snímač vlhkosti.
Je čas spracovať toto tlačidlo v našej schéme programu.

ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Blok spracovania kliknutí na tlačidlo je zvýraznený oranžovou čiarou. Ide o počítadlo stlačenia tlačidla, ktoré sa vynuluje, keď hodnota na jeho výstupe presiahne jednu (zelená čiara, výstup uzla CT).

Všetko tu funguje rovnako jednoducho ako predtým: počítadlo CT počíta stlačenia tlačidla pripojeného k vstupu Vstup1. To znamená, že hodnota na výstupe tohto počítadla sa každým stlačením tlačidla zvýši o 1.

Akonáhle sa táto hodnota rovná dvom (t. j. väčšia ako 1), okamžite na výstupe komparátora A>B Objaví sa 1. A táto 1 vynuluje počítadlo CT na nulu. To znamená komparátor, ten spodný v diagrame!

Naše tlačidlo má teda dva stavy - 0 a 1. Ak by sme potrebovali viac stavov (3 alebo 4 alebo aj viac) - stačilo by zmeniť konštantu KONST z jednej hodnoty na druhú.

Máme teda dve podmienky na zapnutie ventilátora: prekročenie danej úrovne vlhkosti a jedno stlačenie tlačidla. Ak je splnená niektorá z podmienok, ventilátor sa zapne. A bude fungovať až do opätovného stlačenia tlačidla И úroveň vlhkosti sa nevráti do normálu.

Algoritmus môžete samozrejme skomplikovať ešte viac, ale my to neurobíme - necháme priestor na kreativitu tým, ktorí si to želajú.

Tretia možnosť, pripojenie k internetu

Všetko, čo sme opísali, je celkom funkčné. A čo predvádzanie sa? Koniec koncov, každý pipinák hipster cracker hacker sa bude smiať niekomu, kto otočí gombíkom a stlačí tlačidlo namiesto toho, aby ho ovládal zo smartfónu! Krútenie rukoväte nie je „módne“. Ale plaziť sa prstom po smartfóne, drieť si prst do krvi – to je vrchol túžob hipstera-hackera-crackera (nikdy som ich nedokázal všetky rozlíšiť – takže ak som sa mýlil, prepáčte).

Buďme však k týmto jednotlivcom zhovievaví. Správa cez internet má skutočné výhody. V prvom rade je to viditeľnosť. Existuje množstvo aplikácií pre všetky platformy, ktoré vám umožňujú vytvoriť úplne použiteľný ovládací panel pre náš ovládač Carlson s niekoľkými vylepšeniami. Po druhé, je to možnosť na diaľku sledovať stav vlhkosti v miestnosti. A po tretie, môžete vidieť nielen to, čo ventilátor robí - či sa točí alebo nie, ale aj to, aká prahová úroveň vlhkosti je nastavená. A potom sa ventilátor zapol automaticky alebo manuálne. Vo všeobecnosti všetko, čo chcete.

Samozrejme, pre niektorého fanúšika je veľkou cťou dostať toľko pozornosti. Ale toto je len príklad.

Takže na pripojenie k internetu použijeme technológiu MQTT a protokol s rovnakým názvom.
Aby sme mohli využiť túto technológiu, potrebujeme Sprostredkovateľ MQTT. Toto je špeciálny server, ktorý slúži Klienti MQTTNapr ShioTiny a váš smartfón.

Podstata technológie MQTT spočíva v tom, že ktorýkoľvek z klientov zverejňuje ľubovoľné údaje brokerovi (serveru) MQTT pod konkrétnym názvom (tzv. aktuálne v terminológii MQTT). Ostatní klienti sa môžu prihlásiť na odber ľubovoľných údajov pomocou svojho mena (aktuálne) a prijímať novo zverejnené údaje. To znamená, že všetka výmena údajov sa riadi princípom klient – ​​maklér – klient.

Я nebudem zamerať sa na detaily. Na internete je množstvo článkov a návodov, ako to funguje. MQTT a aké programy existujú na vytváranie ovládacích panelov. Ukážem vám, ako môžeme prijímať a zverejňovať údaje pomocou ShioTiny.

Ako makléra som použil www.cloudmqtt.com, ale princíp je všade rovnaký.

Budeme teda predpokladať, že ste sa zaregistrovali Sprostredkovateľ MQTT. Vo všeobecnosti vám maklér dá (alebo vyžaduje, aby ste prišli s) používateľské meno a heslo (na autorizáciu), ako aj port na pripojenie. Pripojiť ShioTiny к Sprostredkovateľ MQTT možné dvoma spôsobmi - bežným pripojením a cez TLS (SSL).

Všetky tieto parametre v ShioTiny zadané na karte networking, kapitola MQTT Pripojenie k serveru.

ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Ak tvoj Sprostredkovateľ MQTT nevyžaduje autorizáciu - nezadávajte svoje prihlasovacie meno a heslo (tieto polia nechajte prázdne).

Parameter Predpona témy MQTT vyžaduje samostatné vysvetlenie.

Predpona parametrov MQTT je reťazec pripojený k názvu témy (aktuálne) pri publikovaní a prihlásení na odber MQTT brokera. inštalovať Predpona MQTT pre váš ovládač ho stačí zadať do vstupného poľa "Predpona témy MQTT"("Predpona témy MQTT"). Predpona vždy začína lomkou ("/")! Ak do vstupného poľa nezadáte lomku, doplní sa automaticky. V predpone nemôžete použiť symboly „#“ и "+". Neexistujú žiadne iné obmedzenia.

Ak napríklad zverejníte parameter "postavenie" (alebo sa prihláste na odber) a vaša predpona je nastavená na "/shiotiny/", potom bude tento parameter zverejnený u brokera pod názvom "/shiotiny/stav" Ak máte prázdnu predponu, všetky parametre makléra začnú lomkou ("/"): "postavenie"bude zverejnené ako"/postavenie".

Veríme teda, že ste sa zaregistrovali Sprostredkovateľ MQTT a dostali prihlasovacie meno, heslo a port. Potom ste zadali tieto parametre na karte networking, kapitola MQTT Pripojenie k serveru ovládač ShioTiny.

Predpokladáme, že predpona je nastavená na "/izba/".

Začnime zverejnením stavu všetkých kľúčových parametrov: relé Realay1, manuálne spínacie stavy, automatické spínacie stavy a nakoniec prahové a aktuálne úrovne vlhkosti. No a bonusom je teplota v miestnosti. Ako to urobiť, pozri obrázok.

ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Ako vidíte, rozdiel oproti predchádzajúcej verzii sú iba uzly "Zverejnenie MQTT" S prihliadnutím na predponu sa zverejňujú tieto parametre:
ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Ako vidíte, celý stav systému máme ako na dlani!

My však chceme nielen vidieť, ale aj ovládať. Čo mám robiť? Veľmi jednoduché. Odmietneme nastaviť prahovú úroveň vlhkosti pomocou ADC a premenlivý odpor a práve túto prahovú úroveň vlhkosti nastavíme podľa MQTT priamo z vášho smartfónu!

ShioTiny: vetranie mokrej miestnosti (príkladový projekt)

Odstránime uzol ADC z okruhu a zahrnieme tam tri nové uzly: FLASH obchod, Obnovenie FLASH и MQTT opísať.

Funkcia uzla MQTT opísať zrejmé: dostane parameter /room/trigHset (prahová úroveň vlhkosti) s Sprostredkovateľ MQTT. Čo to však urobí s údajmi ďalej? Len ich dáva do uzla FLASH obchod, ktorý zase tieto dáta ukladá do energeticky nezávislej pamäte pod názvom trigH. Po tomto uzol Obnovenie FLASH načítava údaje z energeticky nezávislej pamäte pod menom trigH a už vieme, čo bude ďalej.

Prečo také ťažkosti? Prečo sa prijaté údaje nedajú okamžite odoslať na vstup komparátora?

Ako hovorieval súdruh S. Holmes - je to elementárne! Nikto nezaručuje, že po zapnutí vášho zariadenia sa pripojí Sprostredkovateľ MQTT. A treba merať vlhkosť. A ventilátor musí byť zapnutý. Ale bez informácií o prahovej úrovni vlhkosti to nie je možné! Preto po zapnutí naše zariadenie získa predtým uloženú prahovú úroveň vlhkosti z energeticky nezávislej pamäte a použije ju na rozhodovanie. A keď sa nadviaže spojenie s Sprostredkovateľ MQTT a niekto uverejní novú hodnotu /room/trigHset, potom sa použije táto nová hodnota.

Potom môžete prísť s čím len chcete. Zaveďte napríklad okrem vlhkosti aj účtovanie teploty. Alebo pridajte „inteligentné“ ovládanie osvetlenia (ešte stále máme nevyužité dve relé a dva vstupy). Všetko vo vašich rukách!

Záver

Pozreli sme sa teda na niekoľko príkladov implementácie v podstate jednoduchého ovládača založeného na ShIoTiny. Možno to bude niekomu užitočné.

Ako vždy, návrhy, priania, otázky, preklepy atď. - e-mailom: [chránené e-mailom]

Zdroj: hab.com

Pridať komentár