{"id":37422,"date":"2019-10-31T22:17:33","date_gmt":"2019-10-31T19:17:33","guid":{"rendered":"https:\/\/prohoster.info\/blog\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm\/"},"modified":"2019-10-31T22:17:33","modified_gmt":"2019-10-31T19:17:33","slug":"shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm","title":{"rendered":"ShIoTiny: s\u00f5lmed, sidemed ja s\u00fcndmused v\u00f5i programmide joonistamise erip\u00e4rad","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ShIoTiny: s\u00f5lmed, sidemed ja s\u00fcndmused v\u00f5i programmide joonistamise erip\u00e4rad\" src=\"\/wp-content\/uploads\/2019\/08\/e5d6a9f6ca0fc445f705a645e5319c06.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Peamised punktid v\u00f5i millest on see artikkel<\/h4>\n<p>\nArtikli teema on visuaalne programmeerimine PLC-dele <b>ShIoTiny<\/b> nutika kodu jaoks, millest siin r\u00e4\u00e4gitakse: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463107\/\">ShIoTiny: v\u00e4ike automatiseerimine, asjade internet v\u00f5i \u00abkuus kuud enne puhkust\u00bb<\/a><\/noindex>.<\/p>\n<p><b>V\u00e4ga l\u00fchidalt<\/b> on k\u00e4sitletud selliseid m\u00f5isted nagu <b>s\u00f5lmed<\/b>, <b>seosed<\/b>, <b>s\u00fcndmused<\/b>, samuti visuaalse programmi laadimise ja k\u00e4itamise erip\u00e4rad <b>ESP8266<\/b>, mis on PLC aluseks <b>ShIoTiny<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Sissejuhatus v\u00f5i paar korralduslikku k\u00fcsimust<\/h4>\n<p>\nEelmises artiklis oma arenduse kohta tegin ma l\u00fchikese \u00fclevaate kontrollere v\u00f5imalustest <b>ShIoTiny<\/b>.<\/p>\n<p>Ometi avaldas avalikkus \u00fcsna suurt huvi ja esitas mulle palju k\u00fcsimusi. M\u00f5ned inimesed pakkusid isegi kohe, et ostavad minult kontrolleri. Ei, mulle ei ole vastuk\u00e4ivate j\u00f5ududega raha teenimise vastu, kuid s\u00fcdametunnistus ei luba mul m\u00fc\u00fca veel v\u00e4ga toore programmilaadi seadet.<\/p>\n<p>Seet\u00f5ttu jagasin GitHubis v\u00e4lja binarid, tarkvarajuhendi ja seadme skeemi: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/shiotiny\/ShIoTinyBin\">tarkvara + l\u00fchike juhend + skeem + n\u00e4idised<\/a><\/noindex>.<\/p>\n<p>N\u00fc\u00fcd v\u00f5ib iga\u00fcks ESP-07 \u00e4ra programmeerida ja iseseisvalt tarkvaraga katsetada. Kui keegi tahab t\u00f5eliselt sellist plaati nagu pildil \u2014 siis mul on neid paar t\u00fckki. Kirjuta mulle e-mailile <b>shiotiny@yandex.ru<\/b>. Kuid nagu \u00fctles unustamatu Ogurtcov: \u00abMa ei vastuta mitte millegi eest!\u00bb.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0441\u0443\u0442\u0438: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 &#171;<b>s\u00f5lm<\/b>&#187; (\u043d\u043e\u0434\u0430) \u0438 &#171;<b>s\u00fcndmus<\/b>&#171;? \u041a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430?<\/p>\n<p>Kuidas tavaliselt \u2014 alustame j\u00e4rjekorras: programmi laadimisest.<\/p>\n<h4>Kuidas programm laaditakse<\/h4>\n<p>\nAlustame sellest, mis juhtub, kui me vajutame nuppu <b>Laadi \u00fcles<\/b> redaktoris <b>ElDraw<\/b> ja meie skeem-programm, mis koosneb ilusatest ruutudest, saadetakse seadmesse.<\/p>\n<p>Esiteks, meie joonistatud skeemi p\u00f5hjal luuakse selle tekstiline kirjeldus.<br \/>\nTeiseks, kontrollitakse \u2014 kas k\u00f5ik s\u00f5lmede sisendid on \u00fchendatud v\u00e4ljunditega. \u00abRippuvaid\u00bb sisendeid ei tohiks olla. Kui selline sisend avastatakse, ei laetud skeem ShIoT\u00fdnisse, ja redaktor kuvab vastava hoiatuse.<\/p>\n<p>Kui k\u00f5ik on sujunud, saadab redaktor ShIoTiny'le skeemi tekstilise kirjelduse \u00fche s\u00f5lme kaupa. Loomulikult eemaldatakse enne see olemasolev skeem ShIoTiny's. Saadud tekstiline kirjeldus salvestatakse FLASH-m\u00e4lusse.<\/p>\n<p>Muide, kui soovite skeemi seadmest kustutada, laadige lihtsalt sisse t\u00fchi skeem (mis ei sisalda \u00fchtegi element-s\u00f5lme).<\/p>\n<p>Kui kogu skeemi programm on laaditud ShIoTiny PLC-sse, hakkab see \"t\u00f6\u00f6tama\". Mida see t\u00e4hendab?<\/p>\n<p>Oluline on m\u00e4rkida, et skeemi laadimise protsess FLASH-m\u00e4lust sisse l\u00fclitamisel ja toimetamisel redaktorist on identne.<\/p>\n<p>Esmalt luuakse s\u00f5lmede objektid, tuginedes nende kirjeldustele.<br \/>\nSeej\u00e4rel paigutatakse s\u00f5lmede vahelised seosed. See t\u00e4hendab, et genereeritakse v\u00e4ljundite lingid sisenditele ja sisendite lingid v\u00e4ljunditele.<\/p>\n<p>Ja alles p\u00e4rast seda k\u00e4ivitatakse programmi peamine t\u00f6\u00f6ts\u00fckkel.<\/p>\n<p>Kirjutasin pikalt, kuid kogu protsess - skeemi laadimisest FLASH-m\u00e4lust kuni peamise ts\u00fckli k\u00e4ivitamiseni - v\u00f5tab 60-80 s\u00f5lmega skeemi puhul aega murdosa sekundist.<\/p>\n<p>Kuidas peamine ts\u00fckkel t\u00f6\u00f6tab? V\u00e4ga lihtsalt. Esiteks ootab see s\u00fcndmuse tekkimist <b>s\u00fcndmused<\/b> m\u00f5nes s\u00f5lmes ja seej\u00e4rel t\u00f6\u00f6tleb seda s\u00fcndmust. Ja nii l\u00f5pmatult. V\u00f5i v\u00e4hemalt kuni ShIoTiny-sse laaditakse uus skeem.<\/p>\n<p>Olen juba mitmeid kordi maininud selliseid asju nagu <b>s\u00fcndmused<\/b>, <b>s\u00f5lmed<\/b> ja <b>seosed<\/b>. Aga mis see programmivaates t\u00e4hendab? Sellest r\u00e4\u00e4gime t\u00e4na.<\/p>\n<h4>S\u00f5lmed, seosed ja s\u00fcndmused<\/h4>\n<p>\nPiisab, kui vaadata skeemi n\u00e4iteid <b>ShIoTiny<\/b>, et m\u00f5ista, et skeem koosneb kahest olulisest entiteedist \u2014 s\u00f5lmedest (v\u00f5i elementidest) ja nendevahelistest seostest.<\/p>\n<p><b>S\u00f5lm<\/b>, <b>node<\/b> v\u00f5i <b>skeemi element<\/b> \u2014 see on virtuaalne esitus mingist <b>tegevused<\/b> andmete kohta. See v\u00f5ib olla aritmeetiline operatsioon, loogiline operatsioon v\u00f5i mis tahes muu operatsioon, mis meie p\u00e4he tuleb. Peamine on see, et s\u00f5lm on varustatud sisendiga ja v\u00e4ljundiga.<\/p>\n<p><b>Sissep\u00e4\u00e4s<\/b> \u2014 see on koht, kuhu s\u00f5lm saab andmeid. Sisendite pildid on punktid, mis asuvad alati s\u00f5lme vasakul k\u00fcljel.<\/p>\n<p><b>V\u00e4ljund<\/b> \u2014 see on koht, kust saadakse s\u00f5lme t\u00f6\u00f6 tulemused. V\u00e4ljundite pildid on punktid, mis asuvad alati s\u00f5lme paremal k\u00fcljel.<\/p>\n<p>M\u00f5nel s\u00f5lmel ei ole sisendeid. Sellised s\u00f5lmed genereerivad tulemuse enda sees. N\u00e4iteks konstandi s\u00f5lm v\u00f5i anduris\u00f5lm: neile ei ole vaja teistelt s\u00f5lmedelt andmeid, et tulemusi edastada.<\/p>\n<p>Teistel s\u00f5lmedel aga ei ole v\u00e4ljundeid. Need s\u00f5lmed kujutavad n\u00e4iteks t\u00e4itmisseadmeid (releed v\u00f5i midagi muud sarnast). Nad v\u00f5tavad andmeid, kuid ei genera tulemust, mis oleks teistele s\u00f5lmedele kergesti k\u00e4tte saadav.<\/p>\n<p>Lisaks on olemas veel ainulaadne kommentaaris\u00f5lm. See ei tee midagi, tal ei ole ei s\u00f5lmi ei v\u00e4ljundeid. Selle eesm\u00e4rk on olla skeemil selgituseks.<\/p>\n<p>Mis on \"<b>s\u00fcndmus<\/b>\u00bb? <b>S\u00fcndmus<\/b> \u2014 see new data emerging in any node. For example, events include: a change in the state of an input (node <b>Sisend<\/b>), receiving data from another device (nodes <b>MQTT<\/b> ja <b>UDP<\/b>), the expiration of a specified time interval (nodes <b>Timer<\/b> ja <b>Delay<\/b>) and so on.<\/p>\n<p>What are events for? They are needed to determine which node new data has emerged at and which node states need to be changed as a result of receiving new data. The event 'travels' through the chain of nodes until it goes through all the nodes whose states need to be checked and changed.<\/p>\n<p>All nodes can be divided into two categories. <br \/>\nNodes that can generate events will be called '<b>active nodes<\/b>\u00bb.<br \/>\nNodes that cannot generate events will be called '<b>passive nodes<\/b>\u00bb.<\/p>\n<p>When a node generates an event (that is, new data appears at its output), the state of the entire chain of nodes connected to the output of the event-generating node generally changes.<\/p>\n<p>To make it clear, let\u2019s look at an example in the illustration.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: s\u00f5lmed, sidemed ja s\u00fcndmused v\u00f5i programmide joonistamise erip\u00e4rad\" src=\"\/wp-content\/uploads\/2019\/08\/41b53ae925e85c3f272adec876ab3151.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nActive nodes here are \u2014 Input1, Input2 and Input3. The other nodes are passive. Let's examine what happens when one of the inputs is closed. The results are conveniently summarized in a table.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: s\u00f5lmed, sidemed ja s\u00fcndmused v\u00f5i programmide joonistamise erip\u00e4rad\" src=\"\/wp-content\/uploads\/2019\/08\/0a8435184f85e919f763048120e6e780.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAs we can see, when an event occurs, a chain is built from the source node of the event to the endpoint node. The state of those nodes not included in the chain remains unchanged.<\/p>\n<p>A legitimate question arises: what happens when two or even several events occur simultaneously?<\/p>\n<p>As a fan of Gleb Anfilov's creativity, I am tempted to send the curious inquirer to his book 'Escape from Wonders'. It's a kind of 'theory of relativity for the very young', which explains well what 'simultaneously' means and how to live with it.<\/p>\n<p>But practically speaking, everything is much simpler: when two or even several events occur, all chains from each event source are built and processed sequentially, and no miracles happen.<\/p>\n<p>J\u00e4rgmine t\u00e4iesti seaduslik k\u00fcsimus uudishimuliku lugeja poolt on: mis juhtub, kui siduda s\u00f5lmed r\u00f5ngaks? V\u00f5i nagu need targad \u00fctlevad \u2014 luua tagasiside. See t\u00e4hendab, et siduda \u00fche s\u00f5lme v\u00e4ljund eelneva s\u00f5lme sisendiga nii, et selle s\u00f5lme v\u00e4ljundi seisund m\u00f5jutab tema enda sisendi seisundit. Otse\u00fchendust s\u00f5lme v\u00e4ljundi ja tema enda sisendi vahel ei luba toimetaja. <b>ElDraw<\/b>. Kuid kaudselt, nagu alloleval joonisel \u2014 seda on v\u00f5imalik teha.<\/p>\n<p>N\u00fc\u00fcd, mis siis juhtub sellisel juhul? Vastus on v\u00e4ga \"konkreetne\": olenevalt sellest, millised s\u00f5lmed. Vaadakem pilti.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: s\u00f5lmed, sidemed ja s\u00fcndmused v\u00f5i programmide joonistamise erip\u00e4rad\" src=\"\/wp-content\/uploads\/2019\/08\/7a640c3abfd4868b87f415bce93e4918.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKui sisendi Input1 kontaktid on avatud s\u00f5lme A \u00fclemises sisendis \u2014 0. S\u00f5lme A v\u00e4ljundis on samuti 0. S\u00f5lme B v\u00e4ljundis on 1. Ja l\u00f5puks, s\u00f5lme A alumises sisendis \u2014 1. K\u00f5ik on selge. Kui kellelgi ei ole selge \u2014 vaadake allpool, kuidas t\u00f6\u00f6tavad s\u00f5lmed \"JA\" ja \"EI\".<\/p>\n<p>N\u00fc\u00fcd sulgeme sisendi Input1 kontaktid, ehk toome \u00fclemisse sisendisse s\u00f5lme A \u00fche. Need, kes tunnevad elektroonikat, teavad, et tegelikult saame klassikalise loogiliste elementide generaatoriskeemi. Ja idee j\u00e4rgi peaks selline skeem l\u00f5pmata andma v\u00e4ljundites A ja B j\u00e4rjestusi 1-0-1-0-1-0\u2026. ja 0-1-0-1-0-1-\u2026. Sest s\u00fcndmus peab pidevalt muutma s\u00f5lmede A ja B seisundit, liikudes ringi 2-3-2-3-\u2026!<\/p>\n<p>Aga tegelikult seda ei juhtu. Skeem langeb juhuslikku seisundisse \u2014 kas relee j\u00e4\u00e4b sisse v\u00f5i v\u00e4lja, v\u00f5i v\u00f5ib see isegi paar korda j\u00e4rjest sisse-v\u00e4lja t\u00f5mmata. K\u00f5ik s\u00f5ltub Marsi l\u00f5unaotsas olevatest ilmastikutingimustest. Ja sellep\u00e4rast see juhtub.<\/p>\n<p>S\u00fcndmus s\u00f5lmes Input1 muudab s\u00f5lme A, siis s\u00f5lme B ja nii edasi ringis mitu korda. Programm tuvastab s\u00fcndmuse \"ts\u00fckli\" ja sunnib selle karnevali l\u00f5petama. P\u00e4rast seda j\u00e4\u00e4vad s\u00f5lmede A ja B seisundi muutmised blokkeerituks kuni uue s\u00fcndmuse tekkimiseni. Hetk, mil programm otsustab \u2014 \"piisab ringis keerlemisest!\" \u2014 s\u00f5ltub \u00fcldiselt paljusid tegureid ja seda v\u00f5ib pidada juhuslikuks.<\/p>\n<blockquote><p>Olge ettevaatlikud, kui \u00fchendate s\u00f5lmed r\u00f5ngaks \u2014 efektid ei pruugi alati olla ilmsed! Olge h\u00e4sti teadlikud, mida ja miks teete!<\/p><\/blockquote>\n<p> Kas on ikkagi v\u00f5imalik ehitada generaator k\u00e4ttesaadavatel s\u00f5lmedel? Jah, on v\u00f5imalik! Kuid selleks on vajalik s\u00f5lm, mis oskab ise s\u00fcndmusi genereerida. Ja selline s\u00f5lm on olemas \u2014 see on \u00abviivitusliin\u00bb. Vaatame, kuidas generaator t\u00f6\u00f6tab 6-sekundilise perioodiga alloleval joonisel.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: s\u00f5lmed, sidemed ja s\u00fcndmused v\u00f5i programmide joonistamise erip\u00e4rad\" src=\"\/wp-content\/uploads\/2019\/08\/7dc1babedec97fb8177b846c760ff44e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGeneraatori peamine element on s\u00f5lm A \u2014 viivitusliin. Kui muuta viivitusliini sissetuleku olek 0-lt 1-le, ilmub 1 v\u00e4ljundisse mitte kohe, vaid alles p\u00e4rast m\u00e4\u00e4ratud aega. Meie puhul on see 3 sekundit. Samamoodi, kui muuta viivitusliini sissetuleku olek 1-lt 0-le, ilmub 0 v\u00e4ljundisse samaaegselt sama 3 sekundi jooksul. Viivitus kestus on m\u00e4\u00e4ratud k\u00fcmnendik sekunditega. See t\u00e4hendab, et v\u00e4\u00e4rtus 30 t\u00e4hendab \u2014 3 sek.<\/p>\n<p>Viivitusliini erip\u00e4ra on see, et see genereerib s\u00fcndmuse p\u00e4rast viivituse l\u00f5ppemist.<\/p>\n<p>Kujutame ette, et algselt oli viivitusliini v\u00e4ljundis 0. P\u00e4rast s\u00f5lm B \u2014 inverteri \u2014 l\u00e4bimist muutub see 0 1-ks ja siseneb viivitusliini. Kohe ei juhtu midagi. Viivitusliini v\u00e4ljundis j\u00e4\u00e4b 0 samaks, kuid aja\u00f5hk hakkab kulgema. L\u00e4bib 3 sekundit. Ja sel hetkel genereerib viivitusliin s\u00fcndmuse. V\u00e4ljundis ilmub 1. See 1 p\u00e4rast s\u00f5lm B \u2014 inverteri \u2014 l\u00e4bimist muutub tagasi 0-ks ja siseneb viivitusliini. L\u00e4bib veel 3 sekundit\u2026 ja protsess kordub. See t\u00e4hendab, et iga 3 sekundi j\u00e4rel muutub viivitusliini v\u00e4ljund 0-ks ja seej\u00e4rel 1-ks ja 0-ks. Reljeer kl\u00f5psab. Generaator t\u00f6\u00f6tab. Impulsi periood on 6 sekundit (3 sekundit v\u00e4ljundil null ja 3 sekundit \u2014 unit).<\/p>\n<p>Kuid t\u00f5elistes skeemides ei ole tavaliselt isegi vajalik kasutada ning seda n\u00e4idet. On olemas spetsiaalsed s\u00f5lm-timereid, mis genereerivad probleemideta ja ilma v\u00e4list abi sama kindla impulsside j\u00e4rjestuse, mille periood on m\u00e4\u00e4ratud. \u201eNulli\u201d ja \u201e\u00fchiku\u201d kestus nende impulsside jooksul on pool perioodist.<\/p>\n<blockquote><p>Perioodiliste tegevuste m\u00e4\u00e4ramiseks kasutage s\u00f5lm-timereid.<\/p><\/blockquote>\n<p> Tahan m\u00e4rkida, et selliseid digitaalseid signaale, kus \u201enulli\u201d ja \u201e\u00fchiku\u201d kestus on v\u00f5rdsed, nimetatakse \u201emeanderiks\u201d. <\/p>\n<p>Loodan, et olen natuke selgitanud k\u00fcsimust sellest, kuidas toimub s\u00fcndmuste levik s\u00f5lmede vahel ja mida ei tohiks teha?<\/p>\n<h4>Kokkuv\u00f5te ja lingid<\/h4>\n<p>\nArtikkel oli l\u00fchike, kuid see on artikkel, mis vastab tekkinud k\u00fcsimustele s\u00f5lmede ja s\u00fcndmuste kohta.<\/p>\n<p>Kuna tarkvarade areng ja uute n\u00e4idete ilmumine, kirjutan sellest, kuidas programmeerida <b>ShIoTiny<\/b> v\u00e4ikeste artiklite kujul, seni kuni see inimestele huvi pakub.<\/p>\n<p>Nagu varem, on skeem, tarkvara, n\u00e4ited, s\u00f5lmede kirjeldus ja k\u00f5ik <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/shiotiny\/ShIoTinyBin\">muud siin<\/a><\/noindex>.<\/p>\n<p>K\u00fcsimused, soovitused, kriitika \u2014 saatke siia: <b>shiotiny@yandex.ru<\/b><br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463285\/\">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 \u0422\u0435\u043c\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u041f\u041b\u041a ShIoTiny \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0443\u0442: 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 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u0434\u043e \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u00bb. \u041e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f, \u043a\u0430\u043a \u0443\u0437\u043b\u044b, \u0441\u0432\u044f\u0437\u0438, \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 ESP8266, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u041f\u041b\u041a ShIoTiny. \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28078,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37422","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.1.1 - 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.\" \/>\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\/et\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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: \u0443\u0437\u043b\u044b, \u0441\u0432\u044f\u0437\u0438 \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c | 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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm\" \/>\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: s\u00f5lmed, sidemed ja s\u00fcndmused v\u00f5i programmeerimise joonistamise omadused | ProHoster","description":"Peamised m\u00f5tted v\u00f5i.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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: \u0443\u0437\u043b\u044b, \u0441\u0432\u044f\u0437\u0438 \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c | ProHoster","og:description":"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0437\u0438\u0441\u044b \u0438\u043b\u0438.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm","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":"37422","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\/et\/wp-json\/wp\/v2\/posts\/37422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=37422"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37422\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/28078"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=37422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=37422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=37422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}