{"id":37423,"date":"2019-10-31T22:17:33","date_gmt":"2019-10-31T19:17:33","guid":{"rendered":"https:\/\/prohoster.info\/blog\/shiotiny-ventilyatsiya-vlazhnogo-pomeshheniya-proekt-primer\/"},"modified":"2019-10-31T22:17:33","modified_gmt":"2019-10-31T19:17:33","slug":"shiotiny-ventilyatsiya-vlazhnogo-pomeshheniya-proekt-primer","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/shiotiny-ventilyatsiya-vlazhnogo-pomeshheniya-proekt-primer","title":{"rendered":"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/a6e9c8239a90c713bd1b3b21891cbc13.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h4>Hlavn\u00ed body nebo o \u010dem je tento \u010dl\u00e1nek<\/h4>\n<p>\nPokra\u010dujeme v cyklu \u010dl\u00e1nk\u016f o <b>ShIoTiny<\/b> \u2014 vizu\u00e1ln\u011b programovateln\u00e9m ovlada\u010di zalo\u017een\u00e9m na \u010dipu <b>ESP8266<\/b>.<\/p>\n<p>V tomto \u010dl\u00e1nku je uk\u00e1z\u00e1no na p\u0159\u00edkladu projektu \u0159\u00edzen\u00ed ventilace v koupeln\u011b nebo jin\u00e9m prostoru s vysokou vlhkost\u00ed, jak se tvo\u0159\u00ed program pro <b>ShIoTiny<\/b>.<\/p>\n<h4>P\u0159edchoz\u00ed \u010dl\u00e1nky t\u00e9to s\u00e9rie.<\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463107\/\">ShIoTiny: mal\u00e1 automatizace, internet v\u011bc\u00ed nebo \u201ep\u016fl roku p\u0159ed dovolenou\u201c<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463285\/\">ShIoTiny: uzly, vazby a ud\u00e1losti nebo rysy kreslen\u00ed program\u016f<\/a><\/noindex><\/p>\n<h4>Odkazy<\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/shiotiny\/ShIoTinyBin\">Bin\u00e1rn\u00ed firmware, sch\u00e9ma ovlada\u010de a dokumentace<\/a><\/noindex> <br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/shiotiny\/ShIoTinyBin\/blob\/master\/doc\/ShIoT-esp8266-01_obzor.pdf\">N\u00e1vod a popis uzl\u016f<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/esppower.ru\/mqtt-android\/\">Nastaven\u00ed MQTT brokeru cloudmqtt.com<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/393277\/\">Ovl\u00e1dac\u00ed panel MQTT dashboard pro Android<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>\u00davod<\/h4>\n<p>\nPorozum\u011bn\u00ed bez zku\u0161enosti neexistuje. To je pravda, kterou potvrzuje \u010das a generace. Proto nen\u00ed nic lep\u0161\u00edho pro od\u010den\u00ed praktick\u00fdch dovednost\u00ed, ne\u017e se pokusit n\u011bco ud\u011blat samostatn\u011b. A p\u0159\u00edklady, kter\u00e9 ukazuj\u00ed, co lze a co nen\u00ed dobr\u00e9 zkou\u0161et, jsou opravdu pot\u0159ebn\u00e9. Chybami druh\u00fdch sice nelze p\u0159edej\u00edt vlastn\u00edm chyb\u00e1m, ale mohou pomoci sn\u00ed\u017eit jejich po\u010det.<\/p>\n<p>Dotazy a dopisy \u010dten\u00e1\u0159\u016f p\u0159edchoz\u00edch \u010dl\u00e1nk\u016f m\u011b podn\u00edtily k vytvo\u0159en\u00ed mal\u00e9ho projektn\u00edho p\u0159\u00edkladu \u0159\u00edzen\u00ed ventilace, abych uk\u00e1zal, jak funguj\u00ed uzly ShIoTiny.<\/p>\n<p>P\u016fvodn\u00ed my\u0161lenka, na jej\u00edm\u017e z\u00e1klad\u011b ovlada\u010d vznikl, <b>ShIoTiny<\/b> \u2014 \u010derpac\u00ed a zavla\u017eovac\u00ed stanice \u2014 zdaleka nen\u00ed pro ka\u017ed\u00e9ho a nebude zaj\u00edmat ka\u017ed\u00e9ho. Proto jsem vzal v\u0161eobecn\u011b pochopiteln\u00fd a pro mnoh\u00e9 u\u017eite\u010dn\u00fd syst\u00e9m \u0159\u00edzen\u00ed ventilace jako p\u0159\u00edklad.<\/p>\n<p>\u0158eknu, \u017ee my\u0161lenka projektu nen\u00ed moje, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/masterkit\/blog\/385281\/\">inspiraci jsem z\u00edskal zde<\/a><\/noindex> a pot\u00e9 ji p\u0159izp\u016fsobil k <b>ShIoTiny<\/b>.<\/p>\n<h4>Nejprve pochop, co chce\u0161<\/h4>\n<p>\nProces zlep\u0161ov\u00e1n\u00ed je nekone\u010dn\u00fd. A pr\u00e1v\u011b tato vlastnost poh\u0159bila mnoho dobr\u00fdch my\u0161lenek a projekt\u016f. V\u00fdvoj\u00e1\u0159 m\u00edsto toho, aby vydal i nep\u0159esn\u00fd, ale funk\u010dn\u00ed produkt \u2014 st\u00e1le jej vylep\u0161oval. A vylep\u0161oval, dokud ho konkurenti nep\u0159edstihli, vyd\u00e1vaj\u00edc\u00ed i nep\u0159esn\u00e9 (a \u010dasto zoufale nedokonal\u00e9), ale funk\u010dn\u00ed \u0159e\u0161en\u00ed.<\/p>\n<p>Proto je velmi d\u016fle\u017eit\u00e9 v\u011bd\u011bt, kde v projektu stanovit c\u00edl. Jin\u00fdmi slovy, mus\u00edme ur\u010dit, co chceme na konci projektu z\u00edskat na z\u00e1klad\u011b toho, co m\u00e1me na za\u010d\u00e1tku. V \u010de\u0161tin\u011b existuje skv\u011bl\u00e9 kr\u00e1tk\u00e9 a v\u00fdsti\u017en\u00e9 slovo \u201epl\u00e1n\u201c, kter\u00e9 n\u011bkte\u0159\u00ed nezku\u0161en\u00e9 p\u0159ekladatel\u00e9 a vady mana\u017ee\u0159i v posledn\u00ed dob\u011b za\u010dali nepochopiteln\u011b naz\u00fdvat \u201ed\u00e1lnicov\u00e1 mapa\u201c. Ale to u\u017e nechme b\u00fdt.<\/p>\n<p>N\u00e1\u0161 pl\u00e1n bude n\u00e1sleduj\u00edc\u00ed. P\u0159edpokl\u00e1dejme, \u017ee m\u00e1me prostor, jeho\u017e vlhkost m\u016f\u017ee ob\u010das v\u00fdrazn\u011b vzr\u016fst. Nap\u0159\u00edklad takov\u00fd, jako je koupelna nebo kuchy\u0148. Vlhkost je otravn\u00e1 v\u011bc a prost\u0159edek k jej\u00edmu odstran\u011bn\u00ed je tak star\u00fd jako sv\u011bt: v\u011btr\u00e1n\u00ed prostoru. Existuje mnoho zp\u016fsob\u016f v\u011btr\u00e1n\u00ed. Ale asi se z\u0159\u00edk\u00e1me exoti\u010dt\u011bj\u0161\u00edch a zastaral\u00fdch metod, jako jsou \u010dern\u00ed lid\u00e9 s m\u00e1vaj\u00edc\u00edmi v\u011bj\u00ed\u0159i, a zastav\u00edme se u b\u011b\u017en\u00e9ho ventil\u00e1toru. Ventil\u00e1tory jsou levn\u011bj\u0161\u00ed a tak\u00e9 je snaz\u0161\u00ed je u n\u00e1s naj\u00edt.<\/p>\n<p>Jin\u00fdmi slovy, chceme \u0159\u00eddit ventil\u00e1tor: zap\u00ednat ho a samoz\u0159ejm\u011b vyp\u00ednat. P\u0159esn\u011bji \u0159e\u010deno, chceme, aby se s\u00e1m zap\u00ednal a vyp\u00ednal, kdy\u017e je to pot\u0159eba.<\/p>\n<p>Zb\u00fdv\u00e1 ur\u010dit: za jak\u00fdch podm\u00ednek by se m\u011bl ventil\u00e1tor zap\u00ednat a za jak\u00fdch podm\u00ednek vyp\u00ednat.<\/p>\n<p>Zde je to jasn\u00e9: pokud je vlhkost nad ur\u010ditou nastavenou hranic\u00ed, ventil\u00e1tor se zapne a odv\u00e1d\u00ed vzduch; pokud se vlhkost vr\u00e1t\u00ed do norm\u00e1lu, ventil\u00e1tor se vypne.<\/p>\n<p>Pozorn\u00fd \u010dten\u00e1\u0159 se okam\u017eit\u011b chyt\u00ed za slovo \u201enastaven\u00e9\u201c. K\u00fdm nastaven\u00e9? Jak nastaven\u00e9?<\/p>\n<p>Prahovou vlhkost lze nastavit n\u011bkolika zp\u016fsoby. Prozkoum\u00e1me dva z nich: prvn\u00ed je pomoc\u00ed prom\u011bnn\u00e9ho odporu a druh\u00fd je prost\u0159ednictv\u00edm s\u00edt\u011b pomoc\u00ed protokolu MQTT. Ka\u017ed\u00e1 z t\u011bchto metod m\u00e1 sv\u00e9 v\u00fdhody a nev\u00fdhody, kter\u00e9 budou podrobn\u011bji prozkoum\u00e1ny pozd\u011bji.<\/p>\n<p>Pro ty, kdo nepochopili, vysv\u011btl\u00edm, \u017ee \u201eprahov\u00e1 vlhkost\u201c je \u00farove\u0148 vlhkosti, p\u0159i jej\u00edm\u017e p\u0159ekro\u010den\u00ed je nutn\u00e9 ventil\u00e1tor zapnout.<\/p>\n<p>Dal\u0161\u00ed ot\u00e1zka: d\u00e1me u\u017eivateli mo\u017enost zapnout ventil\u00e1tor p\u0159\u00edmo? To znamen\u00e1, nez\u00e1visle na \u00farovni vlhkosti, stisknut\u00edm tla\u010d\u00edtka? Tuto mo\u017enost pl\u00e1nujeme. Ventil\u00e1tor m\u016f\u017ee b\u00fdt pot\u0159ebn\u00fd nejen p\u0159i zv\u00fd\u0161en\u00e9 vlhkosti, ale tak\u00e9 pro odstran\u011bn\u00ed nep\u0159\u00edjemn\u00e9ho z\u00e1pachu z m\u00edstnosti, obvykle naz\u00fdvan\u00e9ho \"smrad\".<\/p>\n<p>Tak\u017ee v\u00edme, co chceme, a dokonce i trochu, jak to bude fungovat. Stru\u010dn\u011b shrneme v\u0161echny funkce na\u0161eho syst\u00e9mu \u0159\u00edzen\u00ed v\u011btr\u00e1n\u00ed:<\/p>\n<ul>\n<li> nastaven\u00ed prahov\u00e9 \u00farovn\u011b vlhkosti (dva varianty);<\/li>\n<li> m\u011b\u0159en\u00ed \u00farovn\u011b vlhkosti;<\/li>\n<li> automatick\u00e9 zapnut\u00ed ventil\u00e1toru;<\/li>\n<li> automatick\u00e9 vypnut\u00ed ventil\u00e1toru;<\/li>\n<li> manu\u00e1ln\u00ed zapnut\u00ed ventil\u00e1toru (stisknut\u00edm tla\u010d\u00edtka).<\/li>\n<\/ul>\n<p>\nTak\u017ee pl\u00e1n je jasn\u00fd. Je nutn\u00e9 realizovat v\u0161echny v\u00fd\u0161e uveden\u00e9 funkce v na\u0161em programu. Na z\u00e1klad\u011b tohoto \"pl\u00e1nu\" budeme postupovat. Nejprve nakresl\u00edme strukturovan\u00fd sch\u00e9mat za\u0159\u00edzen\u00ed.<\/p>\n<h4>Strukturovan\u00e9 sch\u00e9ma za\u0159\u00edzen\u00ed<\/h4>\n<p>\nVlastn\u011b budeme m\u00edt dv\u011b takov\u00e9 sch\u00e9my. Prvn\u00ed \u2014 pro variantu, ve kter\u00e9 je prahov\u00e1 \u00farove\u0148 vlhkosti nastavena prom\u011bnn\u00fdm odporem. Druh\u00e1 sch\u00e9ma \u2014 pro variantu, ve kter\u00e9 je prahov\u00e1 \u00farove\u0148 vlhkosti nastavena prost\u0159ednictv\u00edm s\u00edt\u011b p\u0159es protokol MQTT.<\/p>\n<p>Ale jeliko\u017e se tyto sch\u00e9my budou li\u0161it pouze o jeden prvek \u2014 prom\u011bnn\u00fd rezistor \"nastaven\u00ed prahov\u00e9 \u00farovn\u011b vlhkosti\", nakresl\u00edme pouze jedno strukturovan\u00e9 sch\u00e9ma. Samoz\u0159ejm\u011b, strukturovan\u00e9 sch\u00e9ma podle GOST vypad\u00e1 jinak. Ale my se neorientujeme na in\u017een\u00fdrsk\u00e9 \"zuby\", ale na mladou generaci. Proto je n\u00e1zornost d\u016fle\u017eit\u011bj\u0161\u00ed.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/519f40496a8e459c22d69e7f0eaeee1d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTak\u017ee, co vid\u00edme na obr\u00e1zku? Ventil\u00e1tor je p\u0159ipojen k rel\u00e9 <b>Relay1<\/b> \u0159adi\u010de <b>ShIoTiny<\/b>. Upozor\u0148uji na to, \u017ee ventil\u00e1tor je za\u0159\u00edzen\u00ed, kter\u00e9 se nach\u00e1z\u00ed pod vysok\u00fdm nap\u011bt\u00edm. Proto, pokud si n\u011bkdo chce tuto v\u011bc ud\u011blat s\u00e1m, bu\u010fte opatrn\u00ed. To znamen\u00e1, alespo\u0148 p\u0159ed t\u00edm, ne\u017e str\u010d\u00edte sv\u00e9 prsty nebo m\u011b\u0159\u00edc\u00ed p\u0159\u00edstroje do sch\u00e9matu \u2014 odpojte alespo\u0148 ventil\u00e1tor. A druh\u00e1 pozn\u00e1mka. Pokud je v\u00e1\u0161 ventil\u00e1tor v\u00fdkonn\u011bj\u0161\u00ed ne\u017e <b>250W<\/b>, nem\u011bli byste ho p\u0159ipojovat p\u0159\u00edmo k <b>ShIoTiny<\/b> \u2014 pouze prost\u0159ednictv\u00edm spou\u0161t\u011b\u010de.<\/p>\n<p>S ventil\u00e1torem jsme se srozum\u011bli. Te\u010f tla\u010d\u00edtko \"manu\u00e1ln\u00ed zapnut\u00ed\" ventil\u00e1toru. Je p\u0159ipojeno k vstupu <b>Input1<\/b>. Tady nen\u00ed co v\u00edce vysv\u011btlovat.<\/p>\n<p>Senzor teploty a \u00farovn\u011b vlhkosti <b>DHT-11<\/b> (nebo <b>DHT-22<\/b> nebo jejich ekvivalent\u016f). Pro jeho p\u0159ipojen\u00ed je na \u0159\u00eddic\u00edm modulu k dispozici speci\u00e1ln\u00ed vstup <b>ShIoTiny<\/b>. Jak je vid\u011bt na obr\u00e1zku, p\u0159ipojen\u00ed takov\u00e9ho senzoru tak\u00e9 nep\u0159edstavuje probl\u00e9m.<\/p>\n<p>A nakonec prom\u011bnn\u00e9 odpor, kter\u00fd nastavuje prahovou \u00farove\u0148 vlhkosti. P\u0159esn\u011bji \u0159e\u010deno, d\u011bl\u00edc\u00ed obvod, skl\u00e1daj\u00edc\u00ed se z prom\u011bnn\u00e9ho a st\u00e1l\u00e9ho odporu. S jeho p\u0159ipojen\u00edm nejsou \u017e\u00e1dn\u00e9 probl\u00e9my, ale dovolte mi vysv\u011btlit, \u017ee vestav\u011bn\u00fd ADC na <b>ESP8266<\/b> je ur\u010den maxim\u00e1ln\u011b na 1 Volt. Proto je pot\u0159eba d\u011bli\u010d nap\u011bt\u00ed p\u0159ibli\u017en\u011b 5kr\u00e1t.<\/p>\n<p>A znovu p\u0159ipom\u00edn\u00e1m, \u017ee tento d\u011bli\u010d nen\u00ed pot\u0159eba, pokud je prahov\u00e1 \u00farove\u0148 vlhkosti nastavena prost\u0159ednictv\u00edm s\u00edt\u011b pomoc\u00ed protokolu MQTT.<\/p>\n<p>Za\u010dn\u011bme vytv\u00e1\u0159et algoritmus \u010dinnosti za\u0159\u00edzen\u00ed v editoru ElDraw ShIoTiny. Jak se tam dostat, m\u016f\u017eete p\u0159e\u010d\u00edst v p\u0159edchoz\u00edch \u010dl\u00e1nc\u00edch nebo v n\u00e1vodu, jeho\u017e odkaz je na za\u010d\u00e1tku \u010dl\u00e1nku.<\/p>\n<h4>Prvn\u00ed varianta je nejjednodu\u0161\u0161\u00ed<\/h4>\n<p>\nZa\u010dn\u011bme s jednoduch\u00fdm: zap\u00edn\u00e1n\u00edm rel\u00e9 <b>Relay1<\/b> p\u0159i p\u0159ekro\u010den\u00ed prahov\u00e9 \u00farovn\u011b vlhkosti na danou dobu.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/e9f8d30627cf7cdbebccf863c2b2f808.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJak vid\u00edme, nic slo\u017eit\u00e9ho: pouze \u010dty\u0159i uzly, nepo\u010d\u00edtaje komentuj\u00edc\u00ed uzly. <b>DHT11<\/b> \u2014 to je samotn\u00fd senzor teploty a vlhkosti (m\u016f\u017eete jej zm\u011bnit na <b>DHT22<\/b>).<\/p>\n<p>Konstanta <b>CONST<\/b> \u2014 prahov\u00e1 \u00farove\u0148 vlhkosti v procentech.<\/p>\n<p>Kompar\u00e1tor \u2014 uzel porovn\u00e1vaj\u00edc\u00ed dv\u011b \u010d\u00edsla a na v\u00fdstupu nastavuj\u00edc\u00ed 1, pokud je zadan\u00e1 podm\u00ednka spln\u011bna, a 0, pokud podm\u00ednka spln\u011bna nen\u00ed.<\/p>\n<p>V na\u0161em p\u0159\u00edpad\u011b bude takovou podm\u00ednkou <b>A&gt;B<\/b>, kde <b>A<\/b> \u2014 nam\u011b\u0159en\u00e1 \u00farove\u0148 vlhkosti senzorem, a <b>B<\/b> \u2014 prahov\u00e1 \u00farove\u0148 t\u00e9\u017ee vlhkosti.<\/p>\n<p>Jakmile nam\u011b\u0159en\u00e1 \u00farove\u0148 vlhkosti (<b>A<\/b>) p\u0159ekro\u010d\u00ed prahovou \u00farove\u0148 vlhkosti (<b>B<\/b>), na v\u00fdstupu kompar\u00e1toru <b>A&gt;B<\/b> se objev\u00ed 1 a rel\u00e9 se zapne. A naopak, jakmile \u00farove\u0148 vlhkosti op\u011bt dos\u00e1hne normy (tedy <b>A&lt;=B<\/b>), na v\u00fdstupu kompar\u00e1toru <b>A&gt;B<\/b> se objev\u00ed 0 a rel\u00e9 se vypne.<\/p>\n<p>V\u0161echno jasn\u00e9? Kdo to moc nech\u00e1pe \u2014 p\u0159e\u010dt\u011bte si to je\u0161t\u011b jednou nebo nahl\u00e9dn\u011bte do popisu pr\u00e1ce uzl\u016f v n\u00e1vodu.<\/p>\n<p>Upozor\u0148uji, \u017ee data ze senzoru <b>DHT11<\/b> se aktualizuj\u00ed p\u0159ibli\u017en\u011b jednou za 10 sekund. Proto rel\u00e9 nem\u016f\u017ee b\u00fdt zap\u00edn\u00e1no a vyp\u00edn\u00e1no \u010dast\u011bji ne\u017e jednou za 10 sekund.<\/p>\n<p>V\u0161echno by bylo v po\u0159\u00e1dku, ale cht\u011bli bychom nastavit prahovou \u00farove\u0148 vlhkosti pomoc\u00ed prom\u011bnn\u00e9ho rezistoru. Nen\u00ed nic snaz\u0161\u00edho!<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/3042bda4fe16e3fbad2d3f46f0beccb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJednodu\u0161e nahrad\u00edme uzel-konstanta uzlem ADC. V\u017edy\u0165 pr\u00e1v\u011b k ADC jsme p\u0159ipojili d\u011bl\u00edc\u00ed obvod s prom\u011bnn\u00fdm rezistorem.<\/p>\n<p>Nap\u011bt\u00ed na vstupu ADC se m\u011bn\u00ed od 0 do 1 Volt. Ale vlhkost na v\u00fdstupu senzoru se m\u011bn\u00ed od 0 do 100 %. Jak je tedy srovn\u00e1v\u00e1me? Je to jednoduch\u00e9. Uzlu ADC1 <b>ShIoTiny<\/b> nejen m\u011b\u0159\u00ed nap\u011bt\u00ed na vstupu, ale dok\u00e1\u017ee ho <i><b>\u0161k\u00e1lovat a posouvat.<\/b><\/i>.<\/p>\n<p>To znamen\u00e1, \u017ee na v\u00fdstupu uzlu ADC1 bude hodnota <b>X<\/b>, vypo\u010d\u00edtan\u00e1 podle vzorce <\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/d01bc0ff4e6962252fced695d3894d32.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>, kde <img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/ac0bf727edb4c759d12268376ec6ad9b.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 nap\u011bt\u00ed na vstupu ADC (od 0 do 1V); <b>k<\/b> \u2014 rozsah (ADC range) a <b>b<\/b>- offset (ADC offset). Tak\u017ee pokud nastav\u00edme <b>k=100<\/b> a <b>b=0<\/b>, pak p\u0159i zm\u011bn\u011b <img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/0afbeb2e49d5a107bc54d6bbd87ba23c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> v rozsahu od 0 do 1, hodnota <b>X<\/b> na v\u00fdstupu uzlu ADC se bude m\u011bnit v rozsahu od 0 do 100. To znamen\u00e1, \u017ee numericky se rovn\u00e1 rozsahu zm\u011bny vlhkosti od 0 do 100 %.<\/p>\n<p>Jednodu\u0161e \u0159e\u010deno, ot\u00e1\u010den\u00edm potenciometru lze nastavit prahovou hladinu vlhkosti od 0 do 100. Jedin\u00fdm nepohodl\u00edm je, \u017ee neexistuj\u00ed \u017e\u00e1dn\u00e9 zobrazovac\u00ed za\u0159\u00edzen\u00ed. Ale v praxi, pokud ud\u011bl\u00e1te 6 d\u011blen\u00ed 0%, 20%, 40%, 60%, 80%, 100% \u2014 to sta\u010d\u00ed k nastaven\u00ed prahov\u00e9 hladiny vlhkosti.<\/p>\n<p>Jak n\u00e1m nastavit koeficienty <b>k<\/b> \u2014 rozsah (ADC range) a <b>b<\/b>- offset (ADC offset)? Nen\u00ed to nic slo\u017eit\u00e9ho! Klikn\u011bte ukazatelem my\u0161i na uzel <b>ADC1<\/b> a okam\u017eit\u011b se v\u00e1m objev\u00ed nastaven\u00ed okno. V n\u011bm si m\u016f\u017eete nastavit v\u0161echno, co pot\u0159ebujete. Pro n\u00e1\u0161 p\u0159\u00edpad to bude takov\u00e9 okno, jak\u00e9 je na obr\u00e1zku.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/ff81992b4fe236f5de6d17ca6bf8187c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTak\u017ee m\u00e1me jednoduch\u00e9 pracovn\u00ed \u0159e\u0161en\u00ed. Za\u010dn\u011bme ho vylep\u0161ovat.<br \/>\nMimochodem, nejjednodu\u0161\u0161\u00ed \u0159e\u0161en\u00ed m\u00e1 jednu v\u00fdhodu \u2014 nepot\u0159ebuje internet. Je pln\u011b autonomn\u00ed.<\/p>\n<h4>Druh\u00e1 varianta, p\u0159ipoj\u00edme tla\u010d\u00edtko.<\/h4>\n<p>\nV\u0161echno funguje a v\u0161ichni jsou spokojeni. Ale probl\u00e9m je, \u017ee nem\u016f\u017eeme nucen\u011b zapnout ventilaci. U\u017e jsme se dohodli, \u017ee k vstupu <b>Input1<\/b> budeme p\u0159ipojeni tla\u010d\u00edtko, kter\u00e9 bude ventil\u00e1tor zap\u00ednat a vyp\u00ednat bez ohledu na senzor vlhkosti.<br \/>\nNyn\u00ed je \u010das zpracovat toto tla\u010d\u00edtko v na\u0161\u00ed sch\u00e9matu-programu.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/673c274a5be680ce7c3ef1f9572f93fa.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBlok zpracov\u00e1n\u00ed stisku tla\u010d\u00edtka je zv\u00fdrazn\u011bn oran\u017eovou \u010d\u00e1rou. P\u0159edstavuje to \u010d\u00edta\u010d stisk\u016f tla\u010d\u00edtka, kter\u00fd se resetuje na nulu, kdy\u017e hodnota na jeho v\u00fdstupu p\u0159ekro\u010d\u00ed jedni\u010dku (zelen\u00e1 \u010d\u00e1ra, v\u00fdstup uzlu <b>CT.<\/b>).<\/p>\n<p>V\u0161echny zde funguje tak jednodu\u0161e, jak tomu bylo d\u0159\u00edve: \u010d\u00edta\u010d <b>CT.<\/b> po\u010d\u00edt\u00e1 stisky tla\u010d\u00edtka p\u0159ipojen\u00e9ho k vstupu. <b>Input1<\/b>To znamen\u00e1, \u017ee hodnota na v\u00fdstupu tohoto \u010d\u00edta\u010de se s ka\u017ed\u00fdm stisknut\u00edm tla\u010d\u00edtka zvy\u0161uje o 1.<\/p>\n<p>Jakmile se tato hodnota rovn\u00e1 dv\u011bma (to znamen\u00e1 v\u00edce ne\u017e 1), okam\u017eit\u011b na v\u00fdstupu kompar\u00e1toru. <b>A&gt;B<\/b> objev\u00ed se 1. A tento 1 vyresetuje \u010d\u00edta\u010d <b>CT.<\/b> na nul. Mysl\u00edme t\u00edm kompar\u00e1tor, doln\u00ed podle sch\u00e9matu!<\/p>\n<p>T\u00edmto m\u00e1me pro na\u0161e tla\u010d\u00edtko dva stavy \u2013 0 a 1. Kdybychom pot\u0159ebovali v\u00edce stav\u016f (3 nebo 4 nebo je\u0161t\u011b v\u00edce) \u2013 sta\u010dilo by zm\u011bnit konstantu <b>CONST<\/b> z jedni\u010dky na jinou hodnotu.<\/p>\n<p>Tak\u017ee m\u00e1me dv\u011b podm\u00ednky pro zapnut\u00ed ventil\u00e1toru: p\u0159ekro\u010den\u00ed stanoven\u00e9 \u00farovn\u011b vlhkosti a jednor\u00e1zov\u00e9 stisknut\u00ed tla\u010d\u00edtka. P\u0159i spln\u011bn\u00ed jak\u00e9koliv z podm\u00ednek se ventil\u00e1tor zapne. A bude fungovat, dokud se tla\u010d\u00edtko znovu nestiskne <b>A<\/b> \u00farove\u0148 vlhkosti se nevr\u00e1t\u00ed do norm\u00e1lu.<\/p>\n<p>Samoz\u0159ejm\u011b, m\u016f\u017eeme algoritmus d\u00e1le komplikovat, ale to d\u011blat nebudeme \u2013 ponech\u00e1me prostor pro kreativitu pro z\u00e1jemce.<\/p>\n<h4>T\u0159et\u00ed varianta, p\u0159ipoj\u00edme se k internetu<\/h4>\n<p>\nV\u0161e, co jsme popsali \u2013 je pln\u011b funk\u010dn\u00ed. A co tedy styl? Ka\u017ed\u00fd pubert\u00e1ln\u00ed hipster-hacker-cracker se vysm\u00edv\u00e1 t\u011bm, kte\u0159\u00ed to\u010d\u00ed knofl\u00edk a stisknou tla\u010d\u00edtko, m\u00edsto aby to ovl\u00e1dali p\u0159es smartphone! To\u010dit knofl\u00edkem \u2013 je \"out\". Ale posouvat prstem po smartphonu a\u017e do krve \u2013 to je to, co si hipster-hacker-cracker p\u0159eje (nikdy jsem je nedok\u00e1zal rozli\u0161it \u2013 tak se, pokud jsem se m\u00fdlil, omlouv\u00e1m).<\/p>\n<p>Ale budeme shov\u00edvav\u00ed k t\u011bmto osobnostem. Ovl\u00e1d\u00e1n\u00ed p\u0159es internet m\u00e1 i sv\u00e9 skute\u010dn\u00e9 v\u00fdhody. Za prv\u00e9, je to n\u00e1zornost. Existuje spousta aplikac\u00ed pro v\u0161echny platformy, kter\u00e9 umo\u017e\u0148uj\u00ed n\u011bkolika kliknut\u00edmi vytvo\u0159it dokonale pou\u017eiteln\u00fd ovl\u00e1dac\u00ed panel na\u0161eho \u0159\u00eddic\u00edho za\u0159\u00edzen\u00ed. Za druh\u00e9, to je mo\u017enost vzd\u00e1len\u00e9ho sledov\u00e1n\u00ed stavu vlhkosti v m\u00edstnosti. A za t\u0159et\u00ed, m\u016f\u017eete vid\u011bt nejen to, co d\u011bl\u00e1 ventil\u00e1tor \u2013 to\u010d\u00ed se nebo ne, ale i to, jak\u00e1 prahov\u00e1 \u00farove\u0148 vlhkosti je nastavena. A to \u2013 zda se ventil\u00e1tor automaticky zapnul nebo ru\u010dn\u011b. Zkr\u00e1tka v\u0161e, co si p\u0159ejete.<\/p>\n<p>Samoz\u0159ejm\u011b, pro n\u011bjak\u00fd ventil\u00e1tor je tolik pozornosti p\u0159\u00edli\u0161. Ale to je jen p\u0159\u00edklad.<\/p>\n<p>Tak\u017ee pro p\u0159ipojen\u00ed k internetu budeme pou\u017e\u00edvat technologii <b>MQTT<\/b> a stejnojmenn\u00fd protokol.<br \/>\nAbychom mohli tuto technologii vyu\u017e\u00edt, pot\u0159ebujeme <b>MQTT broker<\/b>. To je speci\u00e1ln\u00ed server, kter\u00fd obsluhuje <b>MQTT klienty<\/b>, nap\u0159\u00edklad <b>ShIoTIny<\/b> a v\u00e1\u0161 smartphone.<\/p>\n<p>Podstata technologie <b>MQTT<\/b> spo\u010d\u00edv\u00e1 v tom, \u017ee ka\u017ed\u00fd z klient\u016f publikuje na MQTT brokeru (serveru) libovoln\u00e1 data pod ur\u010dit\u00fdm n\u00e1zvem (naz\u00fdvan\u00fdm <b>topic<\/b> v terminologii <b>MQTT<\/b>). Jin\u00ed klienti se mohou p\u0159ihl\u00e1sit k libovoln\u00fdm dat\u016fm podle jejich n\u00e1zvu (<b>topic<\/b>) a z\u00edsk\u00e1vat nov\u011b publikovan\u00e1 data. V\u0161echny v\u00fdm\u011bny dat prob\u00edhaj\u00ed na principu klient-broker-klient.<\/p>\n<p>J\u00e1 <i><b>nebudu<\/b><\/i> zd\u016fraz\u0148ovat podrobnosti. Na internetu je spousta \u010dl\u00e1nk\u016f a n\u00e1vod\u016f, jak to funguje <b>MQTT<\/b> a jak\u00e9 existuj\u00ed programy pro vytv\u00e1\u0159en\u00ed ovl\u00e1dac\u00edch panel\u016f. Jen uk\u00e1\u017eu, jak p\u0159ij\u00edmat a publikovat data prost\u0159ednictv\u00edm <b>ShIoTiny<\/b>.<\/p>\n<p>Jako broker jsem pou\u017eil <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloudmqtt.com\/\">www.cloudmqtt.com<\/a><\/noindex>, ale princip je v\u0161ude stejn\u00fd.<\/p>\n<p>Tak\u017ee budeme p\u0159edpokl\u00e1dat, \u017ee jste se zaregistrovali na <b>MQTT-brokeru<\/b>. Obecn\u011b broker poskytne (nebo vy\u017eaduje vymyslet) u\u017eivatelsk\u00e9 jm\u00e9no a heslo (pro autorizaci), stejn\u011b jako port pro p\u0159ipojen\u00ed. P\u0159ipojit se k <b>ShIoTiny<\/b> k <b>MQTT-brokeru<\/b> lze dv\u011bma zp\u016fsoby \u2014 b\u011b\u017en\u00fdm p\u0159ipojen\u00edm a p\u0159es <b>TLS<\/b> (<b>SSL<\/b>).<\/p>\n<p>V\u0161echny tyto parametry se <b>ShIoTiny<\/b> zad\u00e1vaj\u00ed na kart\u011b <b>S\u00ed\u0165ov\u00e1n\u00ed<\/b>, sekce <b>MQTT Connection to server<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/3a16cbd07a64428568e7c03f178e87ef.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPokud v\u00e1\u0161 <b>MQTT broker<\/b> nevy\u017eaduje autorizaci \u2014 nezad\u00e1vejte p\u0159ihla\u0161ovac\u00ed jm\u00e9no a heslo (nechte tato pole pr\u00e1zdn\u00e1).<\/p>\n<p>Parameter <b>MQTT topic prefix<\/b> vy\u017eaduje samostatn\u00e9 vysv\u011btlen\u00ed.<\/p>\n<p>P\u0159edpona MQTT-parametr\u016f \u2014 to je \u0159et\u011bzec, kter\u00fd se p\u0159id\u00e1v\u00e1 k n\u00e1zvu t\u00e9matu (<b>topic<\/b>) p\u0159i publikaci a p\u0159ihl\u00e1\u0161en\u00ed na MQTT-brokeru. Chcete-li nastavit <b>MQTT-p\u0159edponu<\/b> pro v\u00e1\u0161 ovlada\u010d, sta\u010d\u00ed ji zadat do pole \"<b>P\u0159edpona t\u00e9matu MQTT<\/b>\u00bb (\u00ab<b>MQTT topic prefix<\/b>\"). P\u0159edpona v\u017edy za\u010d\u00edn\u00e1 lom\u00edtkem (<b>\u00ab\/\u00bb<\/b>)! Pokud do pole pro zad\u00e1n\u00ed nezad\u00e1te lom\u00edtko \u2014 p\u0159id\u00e1 se automaticky. V p\u0159edpon\u011b nelze pou\u017e\u00edvat znaky <b>\u00ab#\u00bb<\/b> a <b>\u00ab+\u00bb<\/b>. Jin\u00e1 omezen\u00ed neexistuj\u00ed.<\/p>\n<p>Nap\u0159\u00edklad pokud publikujete parametr \"<b>status<\/b>\" (nebo se na n\u011bj p\u0159ihla\u0161ujete), a va\u0161e p\u0159edpona je nastavena na \"<b>\/shiotiny\/<\/b>\", pak na brokeru bude tento parametr publikov\u00e1n pod n\u00e1zvem \"<b>\/shiotiny\/status<\/b>\". Pokud m\u00e1te pr\u00e1zdnou p\u0159edponu, budou v\u0161echna data na brokeru za\u010d\u00ednat lom\u00edtkem (<b>\u00ab\/\u00bb<\/b>): \u00ab<b>status<\/b>\" bude publikov\u00e1no jako \"<b>\/status<\/b>\u00bb.<\/p>\n<p>Tak\u017ee budeme p\u0159edpokl\u00e1dat, \u017ee jste se zaregistrovali na <b>MQTT-brokeru<\/b> a z\u00edskali p\u0159ihla\u0161ovac\u00ed jm\u00e9no, heslo a port. Pot\u00e9 jste tyto parametry zadali na kart\u011b <b>S\u00ed\u0165ov\u00e1n\u00ed<\/b>, sekce <b>MQTT Connection to server<\/b> \u0159adi\u010de <b>ShIoTiny<\/b>.<\/p>\n<p>P\u0159edpokl\u00e1d\u00e1me, \u017ee p\u0159edpona je nastavena na \"<b>\/room\/<\/b>\u00bb.<\/p>\n<p>Za\u010dn\u011bme t\u00edm, \u017ee publikujeme stav v\u0161ech kl\u00ed\u010dov\u00fdch parametr\u016f: rel\u00e9 <b>Realay1<\/b>, stav ru\u010dn\u00edho zapnut\u00ed, stav automatick\u00e9ho zapnut\u00ed a nakonec prahov\u00e1 a aktu\u00e1ln\u00ed \u00farove\u0148 vlhkosti. A jako bonus \u2014 teplotu v m\u00edstnosti. Jak to ud\u011blat, vid\u00edte na obr\u00e1zku.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/ed016ae37bb0cb1197e2e4fd649a7c4f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJak vid\u00edme, rozd\u00edl od p\u0159edchoz\u00ed varianty je pouze v uzlech \"<b>MQTT Publish<\/b>\". S ohledem na p\u0159edponu se publikuj\u00ed n\u00e1sleduj\u00edc\u00ed parametry:<br \/>\n<img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/34b67dd1932f30de777a680802f71c59.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJak vid\u00edme, v\u0161echny informace o stavu syst\u00e9mu m\u00e1me jako na dlani!<\/p>\n<p>Ale chceme nejen vid\u011bt, ale tak\u00e9 \u0159\u00eddit. Co s t\u00edm? Velmi jednodu\u0161e. Vzd\u00e1me se nastavov\u00e1n\u00ed prahov\u00e9 \u00farovn\u011b vlhkosti pomoc\u00ed <b>ADC<\/b> a prom\u011bnn\u00e9 rezistoru a budeme nastavovat tuto prahovou \u00farove\u0148 vlhkosti p\u0159\u00edmo <b>MQTT<\/b> ze smartphonu!<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilace vlhk\u00fdch prostor (projektn\u00ed p\u0159\u00edklad)\" src=\"\/wp-content\/uploads\/2019\/08\/c32d9ec2c1a082e0a1ead0b04526eba5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOdstra\u0148ujeme uzel ADC ze sch\u00e9matu a p\u0159ipojujeme tam t\u0159i nov\u00e9 uzly: <b>FLASH store<\/b>, <b>FLASH restore<\/b> a <b>MQTT describe<\/b>.<\/p>\n<p>Funkce uzlu <b>MQTT describe<\/b> je z\u0159ejm\u00e1: p\u0159ij\u00edm\u00e1 parametr <b>\/room\/trigHset<\/b> (prahov\u00e1 \u00farove\u0148 vlhkosti) od <b>MQTT brokera<\/b>. Ale co d\u00e1le d\u011bl\u00e1 s daty? Jen je p\u0159ed\u00e1v\u00e1 uzlu <b>FLASH store<\/b>, kter\u00fd je naopak ukl\u00e1d\u00e1 do nevolatiln\u00ed pam\u011bti pod n\u00e1zvem <b>trigH<\/b>. Pot\u00e9 uzel <b>FLASH restore<\/b> \u010dte z nevolatiln\u00ed pam\u011bti data pod n\u00e1zvem <b>trigH<\/b> a co se stane d\u00e1l, ji\u017e v\u00edme.<\/p>\n<p>Pro\u010d takov\u00e9 slo\u017eitosti? Pro\u010d nelze okam\u017eit\u011b p\u0159edat z\u00edskan\u00e1 data na vstup kompar\u00e1toru? <\/p>\n<p>Jak \u0159\u00edkal soudruh \u0160. Holmes \u2014 <i>to je element\u00e1rn\u00ed<\/i>! Nikdo nezaru\u010duje, \u017ee po zapnut\u00ed va\u0161eho za\u0159\u00edzen\u00ed se p\u0159ipoj\u00ed k <b>MQTT-brokeru<\/b>. A vlhkost se m\u011b\u0159it mus\u00ed. A ventil\u00e1tor je pot\u0159eba zapnout. Ale bez informace o prahov\u00e9 \u00farovni vlhkosti to nen\u00ed mo\u017en\u00e9! Proto na\u0161e za\u0159\u00edzen\u00ed p\u0159i zapnut\u00ed z\u00edsk\u00e1v\u00e1 d\u0159\u00edve ulo\u017eenou prahovou \u00farove\u0148 vlhkosti z nevolatiln\u00ed pam\u011bti a pou\u017e\u00edv\u00e1 ji k rozhodov\u00e1n\u00ed. A a\u017e se nav\u00e1\u017ee spojen\u00ed s <b>MQTT brokerem<\/b> a n\u011bkdo zve\u0159ejn\u00ed novou hodnotu <b>\/room\/trigHset<\/b>, pak se pou\u017eije tato nov\u00e1 hodnota.<\/p>\n<p>D\u00e1le si m\u016f\u017eete vym\u00fd\u0161let, co chcete. Nap\u0159\u00edklad vedle vlhkosti zav\u00e9st tak\u00e9 sledov\u00e1n\u00ed teploty. Nebo p\u0159idat \u201einteligentn\u00ed\u201c ovl\u00e1d\u00e1n\u00ed osv\u011btlen\u00ed (m\u00e1me je\u0161t\u011b dv\u011b rel\u00e9 a dva vstupy nevyu\u017eit\u00e9). V\u0161echno je ve va\u0161ich rukou!<\/p>\n<h4>Z\u00e1v\u011br<\/h4>\n<p>\nT\u00edmto jsme si pro\u0161li n\u011bkolik p\u0159\u00edklad\u016f realizace v podstat\u011b nejjednodu\u0161\u0161\u00edho kontrol\u00e9ru na z\u00e1klad\u011b ShIoTiny. Mo\u017en\u00e1 to bude n\u011bkomu u\u017eite\u010dn\u00e9.<\/p>\n<p>Jak v\u017edy, n\u00e1vrhy, p\u0159\u00e1n\u00ed, dotazy, p\u0159eklepy a dal\u0161\u00ed \u2014 na e-mail: <b>shiotiny@yandex.ru<\/b><br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464485\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0437\u0438\u0441\u044b \u0438\u043b\u0438 \u043e \u0447\u0435\u043c \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u0441\u0442\u0430\u0442\u0435\u0439 \u043e ShIoTiny \u2014 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0447\u0438\u043f\u0430 ESP8266. \u0412 \u044d\u0442\u043e\u0442 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 \u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043d\u0430\u0442\u0435 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u043c \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0441 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u043e\u0439 \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f ShIoTiny. \u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u0435\u0440\u0438\u0438. ShIoTiny: \u043c\u0430\u043b\u0430\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f, \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0432\u0435\u0449\u0435\u0439 \u0438\u043b\u0438 \u00ab\u0437\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28079,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37423","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0437\u0438\u0441\u044b \u0438\u043b\u0438 \u043e \u0447\u0435\u043c \u044d\u0442\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/shiotiny-ventilyatsiya-vlazhnogo-pomeshheniya-proekt-primer\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47ShIoTiny: \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u044f \u0432\u043b\u0430\u0436\u043d\u043e\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f (\u043f\u0440\u043e\u0435\u043a\u0442-\u043f\u0440\u0438\u043c\u0435\u0440) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0437\u0438\u0441\u044b \u0438\u043b\u0438 \u043e \u0447\u0435\u043c \u044d\u0442\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/shiotiny-ventilyatsiya-vlazhnogo-pomeshheniya-proekt-primer\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:17:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:17:33+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47ShIoTiny: ventilace vlhk\u00e9ho prostoru (projekt-p\u0159\u00edklad) | ProHoster","description":"Hlavn\u00ed my\u0161lenky nebo o \u010dem je to.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/shiotiny-ventilyatsiya-vlazhnogo-pomeshheniya-proekt-primer","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47ShIoTiny: \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u044f \u0432\u043b\u0430\u0436\u043d\u043e\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f (\u043f\u0440\u043e\u0435\u043a\u0442-\u043f\u0440\u0438\u043c\u0435\u0440) | ProHoster","og:description":"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0437\u0438\u0441\u044b \u0438\u043b\u0438 \u043e \u0447\u0435\u043c \u044d\u0442\u0430.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/shiotiny-ventilyatsiya-vlazhnogo-pomeshheniya-proekt-primer","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:17:33+00:00","article:modified_time":"2019-10-31T19:17:33+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37423","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 17:45:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:27:24","updated":"2026-01-23 17:45:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/37423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=37423"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/37423\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/28079"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=37423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=37423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=37423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}