{"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\/sv\/blog\/administrirovanie\/shiotiny-ventilyatsiya-vlazhnogo-pomeshheniya-proekt-primer","title":{"rendered":"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/a6e9c8239a90c713bd1b3b21891cbc13.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h4>Huvudpunkter eller vad denna artikel handlar om<\/h4>\n<p>\nVi forts\u00e4tter artikelserien om <b>ShIoTiny<\/b> \u2014 den visuellt programmerbara kontroller baserad p\u00e5 chipet <b>ESP8266<\/b>.<\/p>\n<p>I denna artikel diskuteras, med exempel fr\u00e5n ett projekt f\u00f6r att kontrollera ventilationen i ett badrum eller en annan plats med h\u00f6g luftfuktighet, hur programmet byggs f\u00f6r <b>ShIoTiny<\/b>.<\/p>\n<h4>Tidigare artiklar i serien.<\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463107\/\">ShIoTiny: liten automatisering, internet of things eller 'sex m\u00e5nader innan semestern'<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463285\/\">ShIoTiny: noder, relationer och h\u00e4ndelser eller egenskaper f\u00f6r programritning<\/a><\/noindex><\/p>\n<h4>L\u00e4nkar<\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/shiotiny\/ShIoTinyBin\">Bin\u00e4r firmware, kopplingsschema och dokumentation<\/a><\/noindex> <br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/shiotiny\/ShIoTinyBin\/blob\/master\/doc\/ShIoT-esp8266-01_obzor.pdf\">Instruktion och beskrivning av enheterna<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/esppower.ru\/mqtt-android\/\">Inst\u00e4llning av MQTT-brokern cloudmqtt.com<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/393277\/\">MQTT dashboard f\u00f6r Android<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Introduktion<\/h4>\n<p>\nF\u00f6rst\u00e5else finns inte utan erfarenhet. Det \u00e4r en sanning som bevisats av tid och generationer. D\u00e4rf\u00f6r finns det inget b\u00e4ttre f\u00f6r att l\u00e4ra sig praktiska f\u00e4rdigheter \u00e4n att f\u00f6rs\u00f6ka g\u00f6ra n\u00e5got sj\u00e4lv. Exempel som visar vad man kan g\u00f6ra och vad man b\u00f6r undvika att prova kommer h\u00e4r att vara till stor hj\u00e4lp. Andras misstag kan f\u00f6rst\u00e5s inte f\u00f6rhindra att egna misstag uppst\u00e5r, men de kan hj\u00e4lpa till att minska antalet.<\/p>\n<p>Fr\u00e5gor och brev fr\u00e5n l\u00e4sare av tidigare artiklar motiverade mig att g\u00f6ra ett litet exempelprojekt f\u00f6r att visa hur ShIoTiny-enheterna fungerar.<\/p>\n<p>Den ursprungliga id\u00e9n, p\u00e5 vilken kontrollern baserades <b>ShIoTiny<\/b> \u2014 en pump- och bevattningsstation \u2014 passar inte alla och \u00e4r kanske inte av intresse f\u00f6r m\u00e5nga. D\u00e4rf\u00f6r valde jag ett allm\u00e4nt begripligt och nyttigt ventilationssystem som exempel.<\/p>\n<p>Jag kan s\u00e4ga att projektid\u00e9n inte \u00e4r min, utan <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/masterkit\/blog\/385281\/\">jag fick den h\u00e4rifr\u00e5n<\/a><\/noindex> och sedan anpassade jag den till <b>ShIoTiny<\/b>.<\/p>\n<h4>F\u00f6rst f\u00f6rst\u00e5 vad du vill<\/h4>\n<p>\nProcessen f\u00f6r f\u00f6rb\u00e4ttring \u00e4r o\u00e4ndlig. Och detta drag har d\u00f6dat m\u00e5nga bra id\u00e9er och projekt. Utvecklaren fortsatte att f\u00f6rb\u00e4ttra sin id\u00e9 ist\u00e4llet f\u00f6r att sl\u00e4ppa n\u00e5got som, om \u00e4n inte perfekt, var anv\u00e4ndbart \u2014 och fortsatte att f\u00f6rb\u00e4ttra tills konkurrenterna \u00f6vertr\u00e4ffade honom med n\u00e5got som, \u00e4ven om det inte var perfekt (och ofta rent av d\u00e5ligt), \u00e4nd\u00e5 var funktionellt.<\/p>\n<p>D\u00e4rf\u00f6r \u00e4r det mycket viktigt att veta var man ska s\u00e4tta punkten i projektet. Med andra ord, vi m\u00e5ste best\u00e4mma vad vi vill uppn\u00e5 i slutet av projektet utifr\u00e5n det vi har i b\u00f6rjan. P\u00e5 ryska finns det ett utm\u00e4rkt kort och koncist ord f\u00f6r ett dokument som g\u00f6rs just f\u00f6r att beskriva v\u00e4gen till skapandet av n\u00e5got, n\u00e4mligen \"plan\", vilket dumma \u00f6vers\u00e4ttare och bristf\u00e4lliga chefer p\u00e5 sistone m\u00e4rkligt nog har b\u00f6rjat kalla f\u00f6r \"f\u00e4rdplan\". Men de kan vara.<\/p>\n<p>V\u00e5r plan kommer att se ut s\u00e5 h\u00e4r. L\u00e5t oss anta att vi har ett rum d\u00e4r fuktigheten ibland kan \u00f6ka kraftigt. Till exempel ett s\u00e5dant rum som ett badrum eller k\u00f6k. Fuktighet \u00e4r otrevligt och s\u00e4ttet att bek\u00e4mpa den har funnits sedan urminnes tider: att lufta rummet. Det finns m\u00e5nga s\u00e4tt att lufta. Men vi v\u00e4ljer nog att avst\u00e5 fr\u00e5n exotiska och gammaldags metoder som svarta med fl\u00e4ktar och ist\u00e4llet fokusera p\u00e5 en vanlig fl\u00e4kt. Fl\u00e4ktar \u00e4r billigare och l\u00e4ttare att hitta h\u00e4r.<\/p>\n<p>Kort sagt, vi vill styra fl\u00e4kten: sl\u00e5 p\u00e5 den och, som konsekvens, st\u00e4nga av den. Mer korrekt vill vi att den automatiskt ska s\u00e4ttas p\u00e5 och av n\u00e4r det beh\u00f6vs.<\/p>\n<p>Det \u00e5terst\u00e5r att fastst\u00e4lla: under vilka f\u00f6rh\u00e5llanden fl\u00e4kten ska sl\u00e5 p\u00e5 och under vilka f\u00f6rh\u00e5llanden den ska st\u00e4ngas av.<\/p>\n<p>H\u00e4r \u00e4r allt tydligt: om fuktigheten \u00f6verstiger ett visst angivet gr\u00e4nsv\u00e4rde - fl\u00e4kten sl\u00e5r p\u00e5 och sug ut luft; fuktigheten har \u00e5terg\u00e5tt till det normala - fl\u00e4kten st\u00e4ngs av.<\/p>\n<p>Den uppm\u00e4rksamma l\u00e4saren kommer genast att f\u00e4sta blicken vid ordet \"angivet\". Av vem angivet? Hur angivet?<\/p>\n<p>Tr\u00f6skelfukten kan st\u00e4llas in p\u00e5 flera s\u00e4tt. Vi kommer att titta p\u00e5 tv\u00e5 av dem: den f\u00f6rsta - med hj\u00e4lp av en variabel resistor och den andra - via n\u00e4tverket genom protokollet MQTT. Varje metod har sina f\u00f6rdelar och nackdelar som kommer att diskuteras vidare.<\/p>\n<p>F\u00f6r dem som inte f\u00f6rstod, l\u00e5t mig f\u00f6rklara att \"tr\u00f6skelfuktighet\" \u00e4r den niv\u00e5 av fuktighet som, n\u00e4r den \u00f6verskrids, kr\u00e4ver att fl\u00e4kten s\u00e4tts p\u00e5.<\/p>\n<p>N\u00e4sta fr\u00e5ga: ska anv\u00e4ndaren ha r\u00e4tt att sl\u00e5 p\u00e5 fl\u00e4ktarna direkt? Det vill s\u00e4ga oavsett fuktighetsniv\u00e5, med ett knapptryck? Vi kommer att inkludera en s\u00e5dan m\u00f6jlighet. Fl\u00e4kten kan beh\u00f6vas inte bara vid h\u00f6g fuktighet, utan ocks\u00e5 f\u00f6r att ta bort obehagliga lukter fr\u00e5n rummet, som folk kallar \"stank\".<\/p>\n<p>S\u00e5, vi har f\u00f6rst\u00e5tt vad vi vill och ocks\u00e5 lite om hur det kommer att fungera. L\u00e5t oss kort lista alla funktioner i v\u00e5rt ventilationssystem:<\/p>\n<ul>\n<li> inst\u00e4llning av en tr\u00f6skelniv\u00e5 f\u00f6r fuktighet (tv\u00e5 alternativ);<\/li>\n<li> m\u00e4tning av fuktighetsniv\u00e5;<\/li>\n<li> automatisk aktivering av fl\u00e4kten;<\/li>\n<li> automatisk avst\u00e4ngning av fl\u00e4kten;<\/li>\n<li> manuell aktivering av fl\u00e4kten (med ett knapptryck).<\/li>\n<\/ul>\n<p>\nS\u00e5, planen \u00e4r tydlig. Vi m\u00e5ste implementera alla ovan n\u00e4mnda funktioner i v\u00e5rt program. Baserat p\u00e5 denna \"plan\" kommer vi att agera. F\u00f6rst ska vi rita ett strukturellt schema f\u00f6r enheten.<\/p>\n<h4>Strukturellt schema f\u00f6r enheten<\/h4>\n<p>\n\u00d6verlag kommer vi att ha tv\u00e5 s\u00e5dana scheman. Det f\u00f6rsta \u2013 f\u00f6r alternativet d\u00e4r tr\u00f6skelniv\u00e5n f\u00f6r fuktighet anges med ett variabelmotst\u00e5nd. Det andra schemat \u2013 f\u00f6r alternativet d\u00e4r tr\u00f6skelniv\u00e5n f\u00f6r fuktighet anges via n\u00e4tverket genom protokollet MQTT.<\/p>\n<p>Men eftersom dessa scheman endast kommer att skilja sig \u00e5t med ett enda element \u2013 det variabla motst\u00e5ndet \"inst\u00e4llning av tr\u00f6skelniv\u00e5 f\u00f6r fuktighet\", ritar vi bara ett strukturellt schema. Sj\u00e4lvklart ser det strukturella schemat ut p\u00e5 ett annat s\u00e4tt enligt GOST. Men vi riktar oss inte till ingenj\u00f6rsproffs utan till den yngre generationen. D\u00e4rf\u00f6r \u00e4r tydlighet viktigare.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/519f40496a8e459c22d69e7f0eaeee1d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS\u00e5, vad ser vi p\u00e5 bilden? Fl\u00e4kten \u00e4r kopplad till rel\u00e4et <b>Relay1<\/b> av kontrolleraren. <b>ShIoTiny<\/b>Jag vill p\u00e5peka att fl\u00e4kten \u00e4r en apparat som arbetar med h\u00f6g sp\u00e4nning. S\u00e5 om n\u00e5gon g\u00f6r detta sj\u00e4lv \u2013 var f\u00f6rsiktig. Det betyder att, \u00e5tminstone, innan du stoppar fingrar eller m\u00e4tinstrument i kretsen \u2013 koppla bort str\u00f6mmen fr\u00e5n fl\u00e4kten. Och en andra p\u00e5minnelse. Om din fl\u00e4kt \u00e4r kraftigare \u00e4n <b>250W<\/b>, b\u00f6r du inte ansluta den direkt till <b>ShIoTiny<\/b> utan endast via en kontaktor.<\/p>\n<p>Nu har vi g\u00e5tt igenom fl\u00e4kten. Nu knappen \"manuell aktivering\" av fl\u00e4kten. Den \u00e4r kopplad till ing\u00e5ngen <b>Input1<\/b>. H\u00e4r finns det inte mycket mer att f\u00f6rklara.<\/p>\n<p>Temperatur- och fuktighetsgivare <b>DHT-11<\/b> (eller <b>DHT-22<\/b> eller dess motsvarigheter). F\u00f6r att ansluta det finns en speciell ing\u00e5ng p\u00e5 kontrollern. <b>ShIoTiny<\/b>. Som man kan se p\u00e5 bilden \u2014 anslutningen av en s\u00e5dan sensor \u00e4r inte heller n\u00e5got problem.<\/p>\n<p>Och slutligen, ett variabelt motst\u00e5nd som st\u00e4ller in tr\u00f6skelniv\u00e5n f\u00f6r fuktighet. Mer exakt \u2014 en delare som best\u00e5r av ett variabelt och ett konstant motst\u00e5nd. Det finns inga problem med att ansluta det, men jag ska f\u00f6rklara att den inbyggda ADC:n \u00e4r <b>ESP8266<\/b> ber\u00e4knad max p\u00e5 1 Volt. D\u00e4rf\u00f6r beh\u00f6vs en sp\u00e4nningsdelare som \u00e4r ungef\u00e4r 5 g\u00e5nger.<\/p>\n<p>Och jag p\u00e5minner \u00e4nnu en g\u00e5ng om att denna delare inte beh\u00f6vs om tr\u00f6skelniv\u00e5n f\u00f6r fuktighet st\u00e4lls in via n\u00e4tverket med hj\u00e4lp av MQTT-protokollet.<\/p>\n<p>L\u00e5t oss b\u00f6rja skriva algoritmen f\u00f6r enhetens arbete i ElDraw ShIoTiny-editorn. Hur man kommer dit, kan man l\u00e4sa i tidigare artiklar eller i bruksanvisningen, som det finns en l\u00e4nk till i b\u00f6rjan av artikeln.<\/p>\n<h4>F\u00f6rsta alternativet, det enklaste.<\/h4>\n<p>\nVi b\u00f6rjar med det enkla: att aktivera rel\u00e4et <b>Relay1<\/b> vid \u00f6verskridande av tr\u00f6skelniv\u00e5er f\u00f6r fuktighet under en angiven tid.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/e9f8d30627cf7cdbebccf863c2b2f808.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom vi ser \u00e4r det inget komplicerat: bara fyra noder, f\u00f6rutom kommentar noder. <b>DHT11<\/b> \u2014 det \u00e4r sj\u00e4lva sensorn f\u00f6r temperatur och fuktighet (kan bytas ut mot <b>DHT22<\/b>).<\/p>\n<p>Konstanten <b>CONST<\/b> \u2014 tr\u00f6skelniv\u00e5n f\u00f6r fuktighet, i procent.<\/p>\n<p>Komparatorn \u2014 en nod som j\u00e4mf\u00f6r tv\u00e5 tal och s\u00e4tter 1 p\u00e5 utg\u00e5ngen om det givna villkoret \u00e4r uppfyllt och 0 om villkoret inte \u00e4r uppfyllt.<\/p>\n<p>I v\u00e5rt fall kommer s\u00e5dant villkor att vara <b>A&gt;B<\/b>, d\u00e4r <b>A<\/b> \u2014 den fuktighetsniv\u00e5 som m\u00e4ts av sensorn, och <b>B<\/b> \u2014 tr\u00f6skelniv\u00e5n f\u00f6r samma fuktighet.<\/p>\n<p>S\u00e5 snart den uppm\u00e4tta fuktighetsniv\u00e5n (<b>A<\/b>) \u00f6verstiger tr\u00f6skelniv\u00e5n f\u00f6r fuktighet (<b>B<\/b>), kommer 1 att visas p\u00e5 komparatorns utg\u00e5ng och rel\u00e4et kommer att aktiveras. Och omv\u00e4nt, s\u00e5 snart fuktighetsniv\u00e5n \u00e5terg\u00e5r till normal (det vill s\u00e4ga <b>A&gt;B<\/b> A&lt;=B <b>kommer 0 att visa och rel\u00e4et kommer att st\u00e4ngas av.<\/b>), kommer 1 att visas p\u00e5 komparatorns utg\u00e5ng och rel\u00e4et kommer att aktiveras. Och omv\u00e4nt, s\u00e5 snart fuktighetsniv\u00e5n \u00e5terg\u00e5r till normal (det vill s\u00e4ga <b>A&gt;B<\/b> F\u00f6rst\u00e5s? De som inte riktigt g\u00f6r det \u2014 l\u00e4s igen eller kolla beskrivningen av nodernas arbete i manualen.<\/p>\n<p>Jag vill p\u00e5peka att data fr\u00e5n sensorn<\/p>\n<p>uppdateras ungef\u00e4r en g\u00e5ng var 10:e sekund. D\u00e4rf\u00f6r kan rel\u00e4et inte aktiveras och st\u00e4ngas av oftare \u00e4n en g\u00e5ng var 10:e sekund. <b>DHT11<\/b> Det skulle vara okej, men vi skulle vilja st\u00e4lla in tr\u00f6skelniv\u00e5n f\u00f6r fuktighet med hj\u00e4lp av en potentiometer. Det kan inte vara enklare!<\/p>\n<p>Vi byter helt enkelt ut konstantnoden mot ADC-noden. Det \u00e4r ju till ADC:n som vi har anslutit sp\u00e4nningsdelaren med det variabla motst\u00e5ndet.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/3042bda4fe16e3fbad2d3f46f0beccb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVi byter helt enkelt ut konstantnodet mot en ADC-nod. F\u00f6r det var just till ADC:n som vi kopplade sp\u00e4nningsdelaren med variabel resistor.<\/p>\n<p>Sp\u00e4nningen vid ADC-ing\u00e5ngen varierar fr\u00e5n 0 till 1 Volt. Men fuktigheten vid sensorutg\u00e5ngen varierar fr\u00e5n 0 till 100 %. Hur j\u00e4mf\u00f6r vi dem? Det \u00e4r enkelt. ADC-noden i <b>ShIoTiny<\/b> m\u00e4ter inte bara sp\u00e4nningen vid ing\u00e5ngen, utan kan ocks\u00e5 <i><b>skala och f\u00f6rskjuta<\/b><\/i>.<\/p>\n<p>Det vill s\u00e4ga att v\u00e4rdet fr\u00e5n ADC1-noden (ADC) kommer att vara <b>X<\/b>, ber\u00e4knat enligt formeln <\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/d01bc0ff4e6962252fced695d3894d32.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>, d\u00e4r <img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/ac0bf727edb4c759d12268376ec6ad9b.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 sp\u00e4nningen vid ADC-ing\u00e5ngen (fr\u00e5n 0 till 1 V); <b>v\u00e5gvektor<\/b> \u2014 omr\u00e5det (ADC range) och <b>b<\/b>\u2014 f\u00f6rskjutning (ADC offset). S\u00e5 om vi st\u00e4ller in <b>k=100<\/b> och <b>b=0<\/b>, d\u00e5 n\u00e4r vi \u00e4ndrar <img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/0afbeb2e49d5a107bc54d6bbd87ba23c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> inom intervallet fr\u00e5n 0 till 1, kommer v\u00e4rdet <b>X<\/b> vid ADC-nodens utg\u00e5ng att variera fr\u00e5n 0 till 100. Det vill s\u00e4ga, numeriskt lika med fuktighetsvariationen fr\u00e5n 0 till 100%.<\/p>\n<p>Eller, enklare sagt, genom att vrida p\u00e5 den variabla motst\u00e5ndsratten kan vi st\u00e4lla in en tr\u00f6skelniv\u00e5 f\u00f6r fuktigheten fr\u00e5n 0 till 100. Den enda nackdelen \u00e4r att det inte finns n\u00e5gra displayenheter. Men i praktiken, om vi s\u00e4tter 6 indelningar p\u00e5 motorn f\u00f6r det variabla motst\u00e5ndet 0%, 20%, 40%, 60%, 80%, 100%) \u2014 s\u00e5 r\u00e4cker det f\u00f6r att st\u00e4lla in tr\u00f6skelniv\u00e5n f\u00f6r fuktigheten.<\/p>\n<p>Hur st\u00e4ller vi in koefficienterna <b>v\u00e5gvektor<\/b> \u2014 omr\u00e5det (ADC range) och <b>b<\/b>\u2014 f\u00f6rskjutning (ADC offset)? Det \u00e4r enklare \u00e4n att skala \u00e4pplen! Klicka med muspekaren p\u00e5 noden <b>ADC1<\/b> och f\u00f6nstret f\u00f6r inst\u00e4llningar visas direkt. H\u00e4r kan du st\u00e4lla in allt du beh\u00f6ver. I v\u00e5rt fall kommer det att vara ett s\u00e5dant f\u00f6nster som p\u00e5 bilden.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/ff81992b4fe236f5de6d17ca6bf8187c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS\u00e5 vi har en enkel arbetsl\u00f6sning. L\u00e5t oss b\u00f6rja f\u00f6rb\u00e4ttra den.<br \/>\nF\u00f6rresten, den enklaste l\u00f6sningen har en f\u00f6rdel \u2014 den beh\u00f6ver ingen internetuppkoppling. Den \u00e4r helt autonom.<\/p>\n<h4>Alternativ tv\u00e5, vi kopplar in en knapp<\/h4>\n<p>\nAllt fungerar och alla \u00e4r glada. Men ett problem, vi kan inte sl\u00e5 p\u00e5 ventilationen manuellt. Vi har redan kommit \u00f6verens om att en knapp kommer att kopplas till ing\u00e5ngen <b>Input1<\/b> som kommer att sl\u00e5 p\u00e5 och st\u00e4nga av fl\u00e4kten manuellt, oavsett fuktighetsgivaren.<br \/>\nDet \u00e4r dags att hantera denna knapp i v\u00e5rt schema-program.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/673c274a5be680ce7c3ef1f9572f93fa.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBlocket f\u00f6r knapptryckning \u00e4r markerat med en orange linje. Det \u00e4r en r\u00e4knare f\u00f6r knapptryckningar som \u00e5terst\u00e4lls till noll n\u00e4r v\u00e4rdet p\u00e5 dess utg\u00e5ng \u00f6verstiger ett (gr\u00f6n linje, utg\u00e5ngen fr\u00e5n noden <b>CT<\/b>).<\/p>\n<p>Det fungerar h\u00e4r precis s\u00e5 enkelt som tidigare: r\u00e4knaren <b>CT<\/b> r\u00e4knar knapptryckningar kopplade till ing\u00e5ngen. <b>Input1<\/b>Det vill s\u00e4ga v\u00e4rdet p\u00e5 utg\u00e5ngen av denna r\u00e4knare \u00f6kar med 1 f\u00f6r varje knapptryckning.<\/p>\n<p>S\u00e5 snart detta v\u00e4rde blir tv\u00e5 (det vill s\u00e4ga mer \u00e4n 1), kommer det omedelbart p\u00e5 komparators utg\u00e5ng. <b>A&gt;B<\/b> En 1. Och denna 1 kommer att nollst\u00e4lla r\u00e4knaren <b>CT<\/b> till noll. Det handlar om komparatorn, den l\u00e4gre i schemat!<\/p>\n<p>S\u00e5ledes har v\u00e5r knapp tv\u00e5 tillst\u00e5nd \u2013 0 och 1. Om vi beh\u00f6vde fler tillst\u00e5nd (3 eller 4 eller fler) skulle det r\u00e4cka med att \u00e4ndra konstanten <b>CONST<\/b> fr\u00e5n ett till ett annat v\u00e4rde.<\/p>\n<p>S\u00e5 vi har tv\u00e5 villkor f\u00f6r att sl\u00e5 p\u00e5 fl\u00e4kten: \u00f6verskridande av den angivna fuktniv\u00e5n och ett enkelt tryck p\u00e5 knappen. N\u00e4r n\u00e5got av villkoren \u00e4r uppfyllt, sl\u00e5s fl\u00e4kten p\u00e5. Och den kommer att fungera tills knappen trycks ner igen <b>Och<\/b> fuktniv\u00e5n \u00e5terv\u00e4nder till det normala.<\/p>\n<p>Man kan sj\u00e4lvklart g\u00f6ra algoritmen \u00e4nnu mer komplicerad, men vi kommer inte att g\u00f6ra det \u2013 vi l\u00e4mnar utrymme f\u00f6r kreativitet f\u00f6r dem som vill.<\/p>\n<h4>Alternativ tre, vi kopplar upp oss mot internet<\/h4>\n<p>\nAllt vi har beskrivit \u00e4r fullt fungerande. Men vad s\u00e4gs om att vara cool? Vem som helst, en spritt spr\u00e5ngande hipster-hacker-knepare, kommer att skratta \u00e5t den som vrider p\u00e5 en ratt och trycker p\u00e5 en knapp ist\u00e4llet f\u00f6r att styra med sin smartphone! Att vrida p\u00e5 en ratt \u00e4r \u201cinte trendigt\u201d. Men att svepa med fingret \u00f6ver sin smartphone, och slita detta finger till blods \u2013 det \u00e4r hipster-hacker-kneparens h\u00f6gsta \u00f6nskan (jag har aldrig kunnat s\u00e4rskilja dem \u2013 s\u00e5 ber om urs\u00e4kt om jag g\u00f6r fel).<\/p>\n<p>Men l\u00e5t oss vara milda mot dessa personer. Att styra via internet har \u00e4ven verkliga f\u00f6rdelar. F\u00f6r det f\u00f6rsta, det \u00e4r tydligt. Det finns massor av appar f\u00f6r alla plattformar som l\u00e5ter dig med ett par tryck skapa en helt anv\u00e4ndbar kontrollpanel f\u00f6r v\u00e5r styrmodul-Karlsson. F\u00f6r det andra, det finns m\u00f6jlighet att p\u00e5 distans \u00f6vervaka fuktniv\u00e5n i rummet. Och f\u00f6r det tredje kan man se inte bara vad fl\u00e4kten g\u00f6r \u2013 snurrar den eller inte, utan ocks\u00e5 vilket tr\u00f6skelv\u00e4rde f\u00f6r fukt som \u00e4r inst\u00e4llt. Och om fl\u00e4kten har slagits p\u00e5 automatiskt eller manuellt. I allm\u00e4nhet, vad du \u00f6nskar.<\/p>\n<p>Sj\u00e4lvklart \u00e4r det f\u00f6r en fl\u00e4kt \u00f6verdrivet \u2013 s\u00e5 mycket uppm\u00e4rksamhet. Men det \u00e4r bara ett exempel.<\/p>\n<p>S\u00e5 f\u00f6r att koppla upp oss mot internet kommer vi att anv\u00e4nda teknologin <b>MQTT<\/b> och den namngivna protokollet.<br \/>\nF\u00f6r att kunna anv\u00e4nda denna teknologi beh\u00f6ver vi en <b>MQTT-broker<\/b>. Det \u00e4r en speciell server som betj\u00e4nar <b>MQTT-kunder<\/b>, till exempel <b>ShIoTIny<\/b> och din smartphone.<\/p>\n<p>Essensen av teknologin <b>MQTT<\/b> \u00e4r att varje klient publicerar godtycklig data p\u00e5 MQTT-brokern (servern) under ett specifikt namn (som kallas <b>topic<\/b> i terminologin <b>MQTT<\/b>). Andra kunder kan prenumerera p\u00e5 godtyckliga data med deras namn (<b>topic<\/b>) och ta emot nyligen publicerade data. S\u00e5 hela databytealet sker enligt principen kund-m\u00e4klare-kund.<\/p>\n<p>Jag <i><b>jag vill inte<\/b><\/i> fokusera p\u00e5 detaljer. Det finns massor av artiklar och guider p\u00e5 internet om hur <b>MQTT<\/b> och vilka program som finns f\u00f6r att skapa kontrollpaneler. Jag ska bara visa hur vi tar emot och publicerar data via <b>ShIoTiny<\/b>.<\/p>\n<p>Som m\u00e4klare anv\u00e4nde jag <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloudmqtt.com\/\">www.cloudmqtt.com<\/a><\/noindex>, men principen \u00e4r densamma \u00f6verallt.<\/p>\n<p>S\u00e5 vi antar att du har registrerat dig p\u00e5 <b>MQTT-m\u00e4klare<\/b>. I allm\u00e4nhet kommer m\u00e4klaren att ge dig (eller kr\u00e4va att du ska hitta p\u00e5) ett anv\u00e4ndarnamn och l\u00f6senord (f\u00f6r autentisering), samt en port f\u00f6r anslutning. Att ansluta <b>ShIoTiny<\/b> till <b>till MQTT-m\u00e4klare<\/b> kan g\u00f6ras p\u00e5 tv\u00e5 s\u00e4tt - vanlig anslutning och genom <b>TLS<\/b> (<b>SSL<\/b>).<\/p>\n<p>Alla dessa parametrar i <b>ShIoTiny<\/b> anges p\u00e5 fliken <b>N\u00e4tverkande<\/b>, avsnittet <b>MQTT Connection to server<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/3a16cbd07a64428568e7c03f178e87ef.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOm din <b>MQTT-broker<\/b> inte kr\u00e4ver autentisering \u2013 l\u00e4mna anv\u00e4ndarnamn och l\u00f6senord tomma (l\u00e4mna dessa f\u00e4lt tomma).<\/p>\n<p>Parameter <b>MQTT topic prefix<\/b> kr\u00e4ver en separat f\u00f6rklaring.<\/p>\n<p>MQTT-parametrarnas prefix \u00e4r en str\u00e4ng som l\u00e4ggs till namnet p\u00e5 \u00e4mnet (<b>topic<\/b>) vid publicering och prenumeration p\u00e5 MQTT-m\u00e4klare. F\u00f6r att st\u00e4lla in <b>MQTT-prefixet<\/b> f\u00f6r din kontroller m\u00e5ste det helt enkelt anges i inmatningsf\u00e4ltet \"<b>MQTT topic prefix<\/b>\u00bb (\u00ab<b>MQTT topic prefix<\/b>\". Prefixet b\u00f6rjar alltid med en snedstreck (<b>\u00ab\/\u00bb<\/b>)! Om du inte anger snedstrecken i inmatningsf\u00e4ltet \u2013 l\u00e4ggs den automatiskt till. Prefixet f\u00e5r inte inneh\u00e5lla tecken <b>\u00ab#\u00bb<\/b> och <b>\u00ab+\u00bb<\/b>. Det finns inga andra begr\u00e4nsningar.<\/p>\n<p>Till exempel, om du publicerar parametern \"<b>status<\/b>\" (eller prenumerar p\u00e5 den), och ditt prefix anges som \"<b>\/shiotiny\/<\/b>\", s\u00e5 kommer denna parameter att publiceras p\u00e5 m\u00e4klaren med namnet \"<b>\/shiotiny\/status<\/b>\". Om du har ett tomt prefix kommer alla parametrar p\u00e5 m\u00e4klaren att b\u00f6rja med en snedstreck (<b>\u00ab\/\u00bb<\/b>): \u00ab<b>status<\/b>\" kommer publiceras som \"<b>\/status<\/b>\u00bb.<\/p>\n<p>S\u00e5, l\u00e5t oss anta att du har registrerat dig p\u00e5 <b>MQTT-m\u00e4klare<\/b> och f\u00e5tt anv\u00e4ndarnamn, l\u00f6senord och port. Sedan har du angett dessa parametrar p\u00e5 fliken <b>N\u00e4tverkande<\/b>, avsnittet <b>MQTT Connection to server<\/b> av kontrolleraren. <b>ShIoTiny<\/b>.<\/p>\n<p>L\u00e5t oss anta att prefixet \u00e4r inst\u00e4llt p\u00e5 \"<b>\/room\/<\/b>\u00bb.<\/p>\n<p>L\u00e5t oss b\u00f6rja med att publicera tillst\u00e5ndet f\u00f6r alla nyckelparametrar: rel\u00e4 <b>Realay1<\/b>, manuellt l\u00e4ge, automatiskt l\u00e4ge och till sist, tr\u00f6skel- och aktuella fuktighetsniv\u00e5er. Som bonus \u2013 temperaturen i rummet. F\u00f6r att g\u00f6ra detta, se bilden.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/ed016ae37bb0cb1197e2e4fd649a7c4f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom vi ser, skillnaden fr\u00e5n f\u00f6reg\u00e5ende alternativ \u00e4r endast noderna \"<b>MQTT Publish<\/b>\". Med h\u00e4nsyn till prefixet publiceras f\u00f6ljande parametrar:<br \/>\n<img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/34b67dd1932f30de777a680802f71c59.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom vi ser har vi full insyn i systemets tillst\u00e5nd!<\/p>\n<p>Men vi vill inte bara se, utan ocks\u00e5 styra. Vad g\u00f6r vi? Mycket enkelt. Vi avst\u00e5r fr\u00e5n att s\u00e4tta en tr\u00f6skelniv\u00e5 f\u00f6r fuktighet med hj\u00e4lp av <b>ADC<\/b> och ett variabelt motst\u00e5nd och kommer att st\u00e4lla in just den tr\u00f6skelniv\u00e5n f\u00f6r fuktighet direkt fr\u00e5n <b>MQTT<\/b> smartphonen!<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: ventilation av fuktiga utrymmen (exempelprojekt)\" src=\"\/wp-content\/uploads\/2019\/08\/c32d9ec2c1a082e0a1ead0b04526eba5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVi tar bort ADC-enheten fr\u00e5n kretsen och l\u00e4gger till tre nya enheter: <b>FLASH-lagring<\/b>, <b>FLASH-\u00e5terst\u00e4llning<\/b> och <b>MQTT-beskrivning<\/b>.<\/p>\n<p>Funktionen f\u00f6r enheten <b>MQTT-beskrivning<\/b> \u00e4r uppenbar: den tar emot parametern <b>\/room\/trigHset<\/b> (tr\u00f6skelniv\u00e5n f\u00f6r fuktighet) fr\u00e5n <b>MQTT-brokern<\/b>. Men vad g\u00f6r den med datan d\u00e4refter? Den skickar helt enkelt vidare den till enheten <b>FLASH-lagring<\/b>, som i sin tur sparar dessa data i icke-flyktigt minne under namnet <b>trigH<\/b>. Efter det l\u00e4ser enheten <b>FLASH-\u00e5terst\u00e4llning<\/b> av data fr\u00e5n det icke-flyktiga minnet under namnet <b>trigH<\/b> och vad som h\u00e4nder h\u00e4rn\u00e4st vet vi redan.<\/p>\n<p>Varf\u00f6r s\u00e5dana komplikationer? Varf\u00f6r kan vi inte bara ge den mottagna datan direkt till komparatorn? <\/p>\n<p>Som v\u00e4n av S. Holmes sa \u2014 <i>det \u00e4r element\u00e4rt!<\/i>! Ingen garanterar att efter att enheten \u00e4r p\u00e5slagen kommer den att ansluta till <b>till MQTT-m\u00e4klare<\/b>. Men fuktigheten m\u00e5ste m\u00e4tas. Och fl\u00e4kten m\u00e5ste sl\u00e5s p\u00e5. Men utan information om tr\u00f6skelniv\u00e5n f\u00f6r fuktighet \u00e4r detta om\u00f6jligt! D\u00e4rf\u00f6r h\u00e4mtar v\u00e5r enhet tr\u00f6skelniv\u00e5n f\u00f6r fuktighet fr\u00e5n det icke-flyktiga minnet vid uppstart och anv\u00e4nder den f\u00f6r att fatta beslut. Och n\u00e4r anslutningen till <b>MQTT-brokern<\/b> \u00e4r etablerad och n\u00e5gon publicerar ett nytt v\u00e4rde <b>\/room\/trigHset<\/b>, d\u00e5 kommer detta nya v\u00e4rde att anv\u00e4ndas.<\/p>\n<p>Vidare kan du hitta p\u00e5 allt du vill. Till exempel, ut\u00f6ver fukt kan vi ocks\u00e5 h\u00e5lla reda p\u00e5 temperaturen. Eller l\u00e4gga till \"smart\" belysningskontroll (vi har fortfarande tv\u00e5 rel\u00e4er och tv\u00e5 ing\u00e5ngar oanv\u00e4nda). Allt ligger i dina h\u00e4nder!<\/p>\n<h4>Slutsats<\/h4>\n<p>\nVi har nu sett n\u00e5gra exempel p\u00e5 hur man implementerar en grundl\u00e4ggande controller baserad p\u00e5 ShIoTiny. Kanske kan detta vara till hj\u00e4lp f\u00f6r n\u00e5gon.<\/p>\n<p>Som alltid, f\u00f6rslag, \u00f6nskem\u00e5l, fr\u00e5gor, tryckfel och s\u00e5 vidare \u2014 till mejl: <b>shiotiny@yandex.ru<\/b><br \/>\n<br \/>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/shiotiny-ventilyatsiya-vlazhnogo-pomeshheniya-proekt-primer\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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: ventilation av fuktiga utrymmen (exempelprojekt) | ProHoster","description":"Huvudpunkterna eller vad detta handlar om.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/shiotiny-ventilyatsiya-vlazhnogo-pomeshheniya-proekt-primer","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/37423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=37423"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/37423\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/28079"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=37423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=37423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=37423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}