{"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\/sv\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm","title":{"rendered":"ShIoTiny: noder, relationer och h\u00e4ndelser eller egenskaper f\u00f6r programritning","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ShIoTiny: noder, relationer och h\u00e4ndelser eller egenskaper f\u00f6r programritning\" src=\"\/wp-content\/uploads\/2019\/08\/e5d6a9f6ca0fc445f705a645e5319c06.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Huvudpunkter eller vad denna artikel handlar om<\/h4>\n<p>\n\u00c4mnet f\u00f6r artikeln \u00e4r visuell programmering av PLC. <b>ShIoTiny<\/b> f\u00f6r smarta hem, som beskrivs h\u00e4r: <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>.<\/p>\n<p><b>Mycket kortfattat<\/b> behandlas begreppen <b>noder<\/b>, <b>kopplingar<\/b>, <b>h\u00e4ndelser<\/b>, samt egenskaperna hos laddning och utf\u00f6rande av det visuella programmet p\u00e5 <b>ESP8266<\/b>, som utg\u00f6r grunden f\u00f6r PLC. <b>ShIoTiny<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Inledning eller ett par organisatoriska fr\u00e5gor<\/h4>\n<p>\nI den f\u00f6reg\u00e5ende artikeln om min utveckling gav jag en kort \u00f6versikt \u00f6ver kontrollerarens m\u00f6jligheter. <b>ShIoTiny<\/b>.<\/p>\n<p>Som det kan l\u00e5ta konstigt, visade allm\u00e4nheten ett ganska starkt intresse och st\u00e4llde mig m\u00e5nga fr\u00e5gor. Vissa personer erbj\u00f6d till och med direkt att k\u00f6pa kontrollen av mig. Nej, jag har inget emot att tj\u00e4na lite, men min samvete till\u00e5ter mig inte att s\u00e4lja n\u00e5got som fortfarande \u00e4r mycket r\u00e5tt ur programmeringssynpunkt.<\/p>\n<p>D\u00e4rf\u00f6r har jag lagt ut bin\u00e4rer f\u00f6r fastvaran och en krets p\u00e5 GitHub: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/shiotiny\/ShIoTinyBin\">firmware+kortfattad instruktion+schema+exempel<\/a><\/noindex>.<\/p>\n<p>Nu kan alla flasha ESP-07 och sj\u00e4lva leka med fastvaran. Om n\u00e5gon verkligen vill ha ett s\u00e5dant kort som p\u00e5 bilden \u2014 s\u00e5 har jag n\u00e5gra stycken. Skriv till mailen <b>shiotiny@yandex.ru<\/b>. Men som den of\u00f6rgl\u00f6mliga Ogurtsov sa: \"Jag tar inget ansvar!\".<\/p>\n<p>S\u00e5, l\u00e5t oss g\u00e5 till saken: vad \u00e4r &#171;<b>nod<\/b>&#187; (nod) och &#171;<b>h\u00e4ndelse<\/b>&#171;? Hur k\u00f6rs programmet?<\/p>\n<p>Som vanligt \u2014 l\u00e5t oss b\u00f6rja i ordning: med laddningen av programmet.<\/p>\n<h4>Hur programmet laddas<\/h4>\n<p>\nL\u00e5t oss b\u00f6rja med vad som h\u00e4nder n\u00e4r vi trycker p\u00e5 knappen <b>Ladda upp<\/b> i redigeraren <b>ElDraw<\/b> och v\u00e5rt schema-program, som best\u00e5r av vackra rutor, flyger till enheten.<\/p>\n<p>F\u00f6r det f\u00f6rsta byggs en textbeskrivning av v\u00e5rt ritade schema.<br \/>\nF\u00f6r det andra kontrolleras det \u2014 \u00e4r alla ing\u00e5ngar av noder anslutna till utg\u00e5ngarna. Det f\u00e5r inte finnas n\u00e5gra \"h\u00e4ngande\" ing\u00e5ngar. Om en s\u00e5dan ing\u00e5ng uppt\u00e4cks \u2014 kommer schemat inte att laddas i ShIoTiny, och redigeraren kommer att ge ett motsvarande varningsmeddelande.<\/p>\n<p>Om allt gick bra, skickar redigeraren en textbeskrivning av schemat till ShIoTiny en nod i taget. Naturligtvis tas det nuvarande schemat fr\u00e5n ShIoTiny bort i f\u00f6rv\u00e4g. Den erh\u00e5llna textbeskrivningen sparas i FLASH-minnet.<\/p>\n<p>F\u00f6r \u00f6vrigt, om du vill ta bort schemat fr\u00e5n enheten, ladda bara upp ett tomt schema (som inte inneh\u00e5ller n\u00e5gra element-noder).<\/p>\n<p>S\u00e5 snart hela schema-programmet har laddats in i PLC ShIoTiny b\u00f6rjar det \"utf\u00f6ras\". Vad betyder det?<\/p>\n<p>Vi noterar att processen f\u00f6r att ladda schemat fr\u00e5n FLASH-minnet vid str\u00f6ms\u00e4ttning och vid mottagning av schemat fr\u00e5n redigeraren \u00e4r identiska.<\/p>\n<p>F\u00f6rst skapas noder baserat p\u00e5 deras beskrivning.<br \/>\nD\u00e4refter s\u00e4tts relationerna mellan noderna. Det vill s\u00e4ga l\u00e4nkar mellan utg\u00e5ngar och ing\u00e5ngar genereras.<\/p>\n<p>Och f\u00f6rst efter allt detta startas huvudprogrammet.<\/p>\n<p>Jag skrev l\u00e4nge, men hela processen - fr\u00e5n \"laddning\" av schemat fr\u00e5n FLASH-minnet till starten av huvudcykeln - tar br\u00e5kdelen av en sekund f\u00f6r ett schema med 60-80 noder.<\/p>\n<p>Hur fungerar huvudcykeln? V\u00e4ldigt enkelt. F\u00f6rst v\u00e4ntar den p\u00e5 att ett h\u00e4ndelse ska intr\u00e4ffa <b>h\u00e4ndelser<\/b> i n\u00e5gon nod, sedan behandlar den h\u00e4ndelsen. Och s\u00e5 forts\u00e4tter det. Tills dess att en ny schema laddas in i ShIoTiny.<\/p>\n<p>Jag har redan n\u00e4mnt s\u00e5dana saker som <b>h\u00e4ndelser<\/b>, <b>noder<\/b> och <b>kopplingar<\/b>. Men vad inneb\u00e4r detta ur ett programvaruperspektiv? Det ska vi prata om idag.<\/p>\n<h4>Noder, relationer och h\u00e4ndelser<\/h4>\n<p>\nDet r\u00e4cker med att titta p\u00e5 exempel f\u00f6r schemprogram f\u00f6r <b>ShIoTiny<\/b>, f\u00f6r att f\u00f6rst\u00e5 att schemat best\u00e5r av endast tv\u00e5 entiteter - noder (eller element) och relationerna mellan dem.<\/p>\n<p><b>Nod<\/b>, <b>nod<\/b> eller <b>schematiskt element<\/b> \u2014 \u00e4r en virtuell representation av n\u00e5got <b>handlingar<\/b> \u00f6ver data. Det kan vara en aritmetisk operation, logisk operation eller vilken operation som helst som vi kan t\u00e4nka oss. Det viktigaste \u00e4r att noden har en ing\u00e5ng och en utg\u00e5ng.<\/p>\n<p><b>Ing\u00e5ng<\/b> \u2014 \u00e4r platsen d\u00e4r noden tar emot data. Ing\u00e5ngarna avbildas som punkter som alltid finns till v\u00e4nster om noden.<\/p>\n<p><b>Utg\u00e5ng<\/b> \u2014 \u00e4r platsen d\u00e4r resultatet av nodens arbete skickas ut. Utg\u00e5ngarna avbildas som punkter som alltid finns till h\u00f6ger om noden.<\/p>\n<p>Vissa noder har inga ing\u00e5ngar. Dessa noder genererar resultat inuti sig sj\u00e4lva. Till exempel konstantnoden eller sensornoden: de beh\u00f6ver inga data fr\u00e5n andra noder f\u00f6r att rapportera resultat.<\/p>\n<p>\u00c5 andra sidan har andra noder inga utg\u00e5ngar. Det \u00e4r noder som representerar till exempel styranordningar (rel\u00e4er eller liknande). De tar emot data men genererar inget resultat som kan anv\u00e4ndas av andra noder.<\/p>\n<p>Dessutom finns det en unik kommentar-nod. Den g\u00f6r inget, har varken ing\u00e5ngar eller utg\u00e5ngar. Dess syfte \u00e4r att vara en f\u00f6rklaring i schemat.<\/p>\n<p>Vad \u00e4r \"<b>h\u00e4ndelse<\/b>\u00bb? <b>H\u00e4ndelse<\/b> \u2014 \u00e4r uppkomsten av nya data i en nod. Till exempel inkluderar h\u00e4ndelser: f\u00f6r\u00e4ndring av ing\u00e5ende tillst\u00e5nd (nod <b>Input<\/b>), mottagande av data fr\u00e5n en annan enhet (noder <b>MQTT<\/b> och <b>UDP<\/b>), utg\u00e5ngen av en angiven tidsperiod (noder <b>Timer<\/b> och <b>F\u00f6rdr\u00f6jning<\/b>) och s\u00e5 vidare.<\/p>\n<p>Vad beh\u00f6vs h\u00e4ndelser f\u00f6r? Jo, f\u00f6r att fastst\u00e4lla i vilken nod nya data har uppst\u00e5tt och vilka noders tillst\u00e5nd som beh\u00f6ver \u00e4ndras p\u00e5 grund av mottagningen av ny data. H\u00e4ndelsen \"passerar\" genom kedjan av noder tills alla noder, vars tillst\u00e5nd beh\u00f6ver kontrolleras och \u00e4ndras, har bes\u00f6kts.<\/p>\n<p>Alla noder kan delas in i tv\u00e5 kategorier. <br \/>\nNoder som kan generera h\u00e4ndelser kallar vi \"<b>aktiva noder<\/b>\u00bb.<br \/>\nNoder som inte kan generera h\u00e4ndelser kallar vi \"<b>passiva noder<\/b>\u00bb.<\/p>\n<p>N\u00e4r en nod genererar en h\u00e4ndelse (dvs. n\u00e4r nya data dyker upp p\u00e5 dess utg\u00e5ng) f\u00f6r\u00e4ndras normalt tillst\u00e5ndet f\u00f6r hela kedjan av noder anslutna till utg\u00e5ngen av h\u00e4ndelsegeneratorn.<\/p>\n<p>F\u00f6r att g\u00f6ra det tydligt, l\u00e5t oss titta p\u00e5 exemplet i bilden.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: noder, relationer och h\u00e4ndelser eller egenskaper f\u00f6r programritning\" src=\"\/wp-content\/uploads\/2019\/08\/41b53ae925e85c3f272adec876ab3151.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDe aktiva noderna h\u00e4r \u00e4r Input1, Input2 och Input3. De andra noderna \u00e4r passiva. L\u00e5t oss se vad som h\u00e4nder n\u00e4r n\u00e5gon av ing\u00e5ngarna sluts. Resultaten har sammanst\u00e4llts i en tabell f\u00f6r enkelhets skull.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: noder, relationer och h\u00e4ndelser eller egenskaper f\u00f6r programritning\" src=\"\/wp-content\/uploads\/2019\/08\/0a8435184f85e919f763048120e6e780.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom vi ser, vid uppkomsten av en h\u00e4ndelse, byggs en kedja fr\u00e5n h\u00e4ndelsek\u00e4llnodet till den slutliga noden. Tillst\u00e5ndet f\u00f6r noder som inte ing\u00e5r i kedjan f\u00f6r\u00e4ndras inte.<\/p>\n<p>Det uppst\u00e5r en ber\u00e4ttigad fr\u00e5ga, vad h\u00e4nder om tv\u00e5 eller flera h\u00e4ndelser uppst\u00e5r samtidigt?<\/p>\n<p>Som en beundrare av Gleb Anfilovs kreativa arbete k\u00e4nner jag att jag vill skicka den nyfikna fr\u00e5gest\u00e4llaren till hans bok \"Flykt fr\u00e5n f\u00f6rv\u00e5ningen\". Det handlar om \"relativitetsteorin f\u00f6r de minsta\", d\u00e4r det f\u00f6rklaras utm\u00e4rkt vad som menas med \"samtidigt\" och hur man lever med det.<\/p>\n<p>Men rent praktiskt \u00e4r allt mycket enklare: vid uppkomsten av tv\u00e5 eller flera h\u00e4ndelser byggs och behandlas alla kedjor fr\u00e5n varje h\u00e4ndelsek\u00e4lla i tur och ordning, utan n\u00e5gra underverk.<\/p>\n<p>N\u00e4sta fullt legitima fr\u00e5ga fr\u00e5n den nyfikna l\u00e4saren \u00e4r: vad h\u00e4nder om noderna kopplas i en ring? Eller, som det oftast s\u00e4gs bland dessa kloka m\u00e4nniskor \u2013 inf\u00f6ra \u00e5terkoppling. Det vill s\u00e4ga att koppla utg\u00e5ngen av en nod till ing\u00e5ngen av f\u00f6reg\u00e5ende nod p\u00e5 ett s\u00e4tt s\u00e5 att tillst\u00e5ndet f\u00f6r utg\u00e5ngen till den noden p\u00e5verkar tillst\u00e5ndet f\u00f6r dess egen ing\u00e5ng. En direkt koppling av nodens utg\u00e5ng till dess egen ing\u00e5ng till\u00e5ts inte av redakt\u00f6ren. <b>ElDraw<\/b>. Men p\u00e5 ett indirekt s\u00e4tt, som p\u00e5 bilden nedan \u2013 \u00e4r det m\u00f6jligt att g\u00f6ra detta.<\/p>\n<p>S\u00e5, vad kommer h\u00e4nda i det h\u00e4r fallet? Svaret kommer att vara mycket \"definitivt\": beroende p\u00e5 vilka noder. L\u00e5t oss titta p\u00e5 exemplet i bilden.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: noder, relationer och h\u00e4ndelser eller egenskaper f\u00f6r programritning\" src=\"\/wp-content\/uploads\/2019\/08\/7a640c3abfd4868b87f415bce93e4918.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e4r ing\u00e5ngskontakterna Input1 \u00e4r \u00f6ppna vid den \u00f6vre ing\u00e5ngen av nod A \u2013 0. Vid utg\u00e5ngen av nod A, ocks\u00e5 0. Vid utg\u00e5ngen av nod B \u2013 1. Och slutligen, vid den nedre ing\u00e5ngen av nod A \u2013 1. Allt \u00e4r klart. Och f\u00f6r dem som inte f\u00f6rst\u00e5r \u2013 se nedan beskrivningen av hur \"OCH\" och \"IKKE\" noder fungerar.<\/p>\n<p>Nu kopplar vi ihop ing\u00e5ngskontakterna Input1, det vill s\u00e4ga att vi ger en enhet p\u00e5 den \u00f6vre ing\u00e5ngen av nod A. De som \u00e4r bekanta med elektronik vet att vi faktiskt kommer att f\u00e5 ett klassiskt schema f\u00f6r en generator baserat p\u00e5 logiska element. Och i teorin b\u00f6r ett s\u00e5dant schema o\u00e4ndligt ge utf\u00f6ljderna 1-0-1-0-1-0\u2026. och 0-1-0-1-0-1-\u2026. Eftersom h\u00e4ndelsen kontinuerligt b\u00f6r \u00e4ndra tillst\u00e5ndet av noderna A och B, som springer runt i cykler 2-3-2-3-\u2026!<\/p>\n<p>Men i verkligheten h\u00e4nder detta inte. Schemat kommer att falla in i ett slumpm\u00e4ssigt tillst\u00e5nd \u2013 antingen kommer rel\u00e4et att f\u00f6rbli p\u00e5slaget eller avst\u00e4ngt, eller s\u00e5 kan det l\u00e4tt surra genom att sl\u00e5 p\u00e5 och av n\u00e5gra g\u00e5nger i rad. Allt beror p\u00e5 v\u00e4dret p\u00e5 den s\u00f6dra polen av Mars. Och det \u00e4r d\u00e4rf\u00f6r detta h\u00e4nder.<\/p>\n<p>H\u00e4ndelsen med nod Input1 \u00e4ndrar tillst\u00e5ndet av nod A, sedan nod B och s\u00e5 vidare i en cykel flera g\u00e5nger. Programmet identifierar \"loopingen\" av h\u00e4ndelsen och tvingar att avsluta denna karneval. Efter detta blockeras \u00e4ndringen av tillst\u00e5ndet f\u00f6r noderna A och B tills en ny h\u00e4ndelse intr\u00e4ffar. Tidpunkten n\u00e4r programmet beslutar \u2013 \"en g\u00e5ng f\u00f6r mycket att snurra runt!\" \u2013 beror i allm\u00e4nhet p\u00e5 m\u00e5nga faktorer och kan betraktas som slumpm\u00e4ssig.<\/p>\n<blockquote><p>Var f\u00f6rsiktig med att koppla noder i en ring \u2013 effekterna kommer inte alltid att vara uppenbara! Var tydlig med vad och varf\u00f6r du g\u00f6r det!<\/p><\/blockquote>\n<p> Kan vi \u00e4nd\u00e5 bygga en generator med de noder som \u00e4r tillg\u00e4ngliga f\u00f6r oss? Ja, det kan vi! Men f\u00f6r detta kr\u00e4vs en nod som sj\u00e4lv kan generera h\u00e4ndelser. Och det finns en s\u00e5dan nod \u2013 det \u00e4r \"f\u00f6rdr\u00f6jningslinjen\". L\u00e5t oss se hur generatorn fungerar med en period p\u00e5 6 sekunder p\u00e5 bilden nedan.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: noder, relationer och h\u00e4ndelser eller egenskaper f\u00f6r programritning\" src=\"\/wp-content\/uploads\/2019\/08\/7dc1babedec97fb8177b846c760ff44e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDen centrala komponenten i generatorn \u00e4r nod A \u2014 f\u00f6rdr\u00f6jningslinjen. Om man \u00e4ndrar ing\u00e5ngstillst\u00e5ndet f\u00f6r f\u00f6rdr\u00f6jningslinjen fr\u00e5n 0 till 1, s\u00e5 kommer 1 p\u00e5 utg\u00e5ngen inte att dyka upp omedelbart, utan f\u00f6rst efter en viss tid. I v\u00e5rt fall \u00e4r det 3 sekunder. P\u00e5 samma s\u00e4tt, om man \u00e4ndrar ing\u00e5ngstillst\u00e5ndet f\u00f6r f\u00f6rdr\u00f6jningslinjen fr\u00e5n 1 till 0, s\u00e5 kommer 0 p\u00e5 utg\u00e5ngen att dyka upp efter samma 3 sekunder. F\u00f6rdr\u00f6jningstiden anges i tiondelar av en sekund. Det vill s\u00e4ga v\u00e4rdet 30 betyder \u2014 3 sek.<\/p>\n<p>En egenskap hos f\u00f6rdr\u00f6jningslinjen \u00e4r att den generar en h\u00e4ndelse efter att f\u00f6rdr\u00f6jningstiden har passerat.<\/p>\n<p>Antag att det initialt p\u00e5 utg\u00e5ngen av f\u00f6rdr\u00f6jningslinjen fanns 0. Efter att ha passerat nod B \u2014 inverteraren \u2014 omvandlas detta 0 till 1 och skickas till ing\u00e5ngen av f\u00f6rdr\u00f6jningslinjen. Omedelbart h\u00e4nder ingenting. P\u00e5 utg\u00e5ngen av f\u00f6rdr\u00f6jningslinjen f\u00f6rblir det 0, men tiden f\u00f6r f\u00f6rdr\u00f6jningen b\u00f6rjar r\u00e4knas ner. Tre sekunder g\u00e5r. Och d\u00e5 genererar f\u00f6rdr\u00f6jningslinjen en h\u00e4ndelse. 1 dyker upp p\u00e5 utg\u00e5ngen. Denna 1 omvandlas efter att ha passerat nod B \u2014 inverteraren \u2014 till 0 och skickas till ing\u00e5ngen av f\u00f6rdr\u00f6jningslinjen. Ytterligare tre sekunder g\u00e5r\u2026 och processen upprepas. Det vill s\u00e4ga var tredje sekund f\u00f6r\u00e4ndras utg\u00e5ngstillst\u00e5ndet f\u00f6r f\u00f6rdr\u00f6jningslinjen fr\u00e5n 0 till 1 och sedan fr\u00e5n 1 till 0. Rel\u00e4et klickar. Generatorn fungerar. Impulsperioden \u00e4r 6 sekunder (3 sekunder med noll och 3 sekunder med ett).<\/p>\n<p>Men i verkliga scheman beh\u00f6ver man oftast inte anv\u00e4nda detta exempel. Det finns speciella timer-noder som utm\u00e4rkt och utan hj\u00e4lp genererar en sekvens av impulser med angiven period. Varaktigheten av \"noll\" och \"ett\" i dessa impulser \u00e4r lika med h\u00e4lften av perioden.<\/p>\n<blockquote><p>F\u00f6r att st\u00e4lla in periodiska \u00e5tg\u00e4rder, anv\u00e4nd timer-noder.<\/p><\/blockquote>\n<p> Jag vill p\u00e5peka att s\u00e5dana digitala signaler d\u00e4r \"noll\" och \"ett\" varaktighet \u00e4r lika, kallas f\u00f6r \"meander\". <\/p>\n<p>Jag hoppas att jag har klargjort fr\u00e5gan om hur h\u00e4ndelser sprids mellan noder och vad man inte ska g\u00f6ra?<\/p>\n<h4>Slutsats och l\u00e4nkar<\/h4>\n<p>\nArtikeln blev kort, men det \u00e4r en artikel som svarar p\u00e5 de uppkomna fr\u00e5gorna kring noder och h\u00e4ndelser.<\/p>\n<p>Allt eftersom firmware utvecklas och nya exempel dyker upp kommer jag att skriva om hur man programmerar <b>ShIoTiny<\/b> sm\u00e5 artiklar, s\u00e5 l\u00e4nge det \u00e4r intressant f\u00f6r folk.<\/p>\n<p>Som tidigare, schema, firmware, exempel, beskrivning av noder och allt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/shiotiny\/ShIoTinyBin\">annat h\u00e4r<\/a><\/noindex>.<\/p>\n<p>Fr\u00e5gor, \u00f6nskem\u00e5l, kritik \u2014 hit: <b>shiotiny@yandex.ru<\/b><br \/>\n<br \/>K\u00e4lla: <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.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.\" \/>\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-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm\" \/>\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: \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\/sv\/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: noder, relationer och h\u00e4ndelser eller egenskaper f\u00f6r programritning | ProHoster","description":"Huvudpunkter eller.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm","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: \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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/37422","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=37422"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/37422\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/28078"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=37422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=37422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=37422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}