ShIoTiny: Nodau, Dolenni, a Digwyddiadau neu Nodweddion Rhaglenni Lluniadu

ShIoTiny: Nodau, Dolenni, a Digwyddiadau neu Nodweddion Rhaglenni Lluniadu

Prif bwyntiau neu beth mae'r erthygl hon yn sôn amdano

Pwnc yr erthygl yw rhaglennu PLC gweledol ShIoTiny ar gyfer y cartref craff a ddisgrifir yma: ShIoTiny: awtomeiddio bach, Rhyngrwyd pethau neu “chwe mis cyn gwyliau”.

Yn fyr iawn cysyniadau megis clymau, cyfathrebu, datblygiadau, yn ogystal â nodweddion llwytho a gweithredu rhaglen weledol ymlaen ESP8266, sef sail y PLC ShIoTiny.

Cyflwyniad neu gwpl o gwestiynau trefniadol

Yn yr erthygl flaenorol am fy natblygiad, rhoddais drosolwg byr o alluoedd y rheolwr ShIoTiny.

Yn rhyfedd ddigon, dangosodd y cyhoedd ddiddordeb eithaf cryf a gofyn cryn dipyn o gwestiynau i mi. Cynigiodd rhai ffrindiau hyd yn oed ar unwaith brynu rheolydd oddi wrthyf. Na, nid wyf yn erbyn ennill ychydig o arian, ond nid yw fy nghydwybod yn caniatáu imi werthu rhywbeth sy'n dal yn amrwd iawn o ran meddalwedd.

Felly, postiais y deuaidd firmware a'r diagram dyfais ar GitHub: firmware + cyfarwyddiadau byrraf + diagram + enghreifftiau.

Nawr gall pawb fflachio'r ESP-07 a chwarae gyda'r firmware eu hunain. Os oes unrhyw un wir eisiau'r un bwrdd ag yn y llun, yna mae gen i sawl un ohonyn nhw. Ysgrifennwch trwy e-bost [e-bost wedi'i warchod]. Ond, fel yr arferai’r bythgofiadwy Ogurtsov ddweud: “Dydw i ddim yn gyfrifol am unrhyw beth!”

Felly, gadewch i ni gyrraedd y pwynt: beth yw "cwlwm" (nod) a "digwyddiad"? Sut mae'r rhaglen yn cael ei gweithredu?

Yn ôl yr arfer, gadewch i ni ddechrau mewn trefn: trwy lawrlwytho'r rhaglen.

Sut mae'r rhaglen yn cael ei llwytho

Gadewch i ni ddechrau gyda'r hyn sy'n digwydd pan fyddwn yn pwyso botwm Llwytho yn y golygydd ElDraw ac mae ein rhaglen gylched, sy'n cynnwys sgwariau hardd, yn hedfan i mewn i'r ddyfais.

Yn gyntaf, yn seiliedig ar y diagram a luniwyd gennym, mae ei ddisgrifiad ar ffurf testun wedi'i adeiladu.
Yn ail, mae'n gwirio a yw'r holl fewnbynnau nod wedi'u cysylltu ag allbynnau. Ni ddylai fod unrhyw fynedfeydd “hongian”. Os canfyddir mewnbwn o'r fath, ni fydd y gylched yn cael ei llwytho i mewn i ShIoTiny, a bydd y golygydd yn dangos rhybudd cyfatebol.

Pe bai popeth yn mynd yn dda, mae'r golygydd yn anfon disgrifiad testun o'r gylched un nod ar y tro i ShIoTiny. Wrth gwrs, caiff y gylched bresennol o ShIoTiny ei thynnu'n gyntaf. Mae'r disgrifiad testun dilynol yn cael ei storio mewn cof FFLACH.

Gyda llaw, os ydych chi am dynnu cylched o ddyfais, yna llwythwch gylched wag i mewn iddo (nad yw'n cynnwys un elfen nod).

Unwaith y bydd y rhaglen gylched gyfan wedi'i llwytho i'r ShIoTiny PLC, mae'n dechrau “gweithredu”. Beth mae'n ei olygu?

Sylwch fod y prosesau ar gyfer llwytho cylched o gof FLASH pan fydd y pŵer yn cael ei droi ymlaen ac wrth dderbyn cylched gan y golygydd yn union yr un fath.

Yn gyntaf, crëir gwrthrychau nod yn seiliedig ar eu disgrifiad.
Yna gwneir cysylltiadau rhwng nodau. Hynny yw, cynhyrchir cysylltiadau allbynnau i fewnbynnau a mewnbynnau i allbynnau.

A dim ond ar ôl hyn i gyd mae prif gylch gweithredu'r rhaglen yn cychwyn.

Ysgrifennais am amser hir, ond mae'r broses gyfan - o “lwytho” y gylched o gof FLASH i gychwyn y prif gylchred - yn cymryd ffracsiwn o eiliad ar gyfer cylched o 60-80 nod.

Sut mae'r brif ddolen yn gweithio? Syml iawn. Yn gyntaf mae'n aros am yr ymddangosiad datblygiadau ar ryw nod, yna prosesu'r digwyddiad hwnnw. Ac yn y blaen yn ddiddiwedd. Wel, neu nes eu bod yn uwchlwytho cynllun newydd i ShIoTiny.

Sawl gwaith eisoes rwyf wedi sôn am bethau fel datblygiadau, clymau и cyfathrebu. Ond beth yw hyn o safbwynt meddalwedd? Byddwn yn siarad am hyn heddiw.

Nodau, cysylltiadau a digwyddiadau

Edrychwch ar yr enghreifftiau o raglenni cylched ar gyfer ShIoTinydeall bod y diagram yn cynnwys dau endid yn unig - nodau (neu elfennau) a'r cysylltiadau rhyngddynt.

Cwlwm, ond ie neu elfen cylched yn gynrychiolaeth rithwir o rai gweithredoedd dros y data. Gall hyn fod yn weithrediad rhifyddol, yn weithrediad rhesymegol, neu'n unrhyw weithrediad a ddaw i'n meddwl. Y prif beth yw bod gan y nod fynedfa ac allanfa.

Mewnbwn - dyma'r man lle mae'r nod yn derbyn data. Mae'r delweddau mewnbwn yn bwyntiau sydd bob amser ar ochr chwith y nod.

Allbwn - dyma'r man lle mae canlyniad gweithrediad y nod yn cael ei adfer. Mae'r delweddau allbwn yn bwyntiau sydd bob amser wedi'u lleoli ar ochr dde'r nod.

Nid oes gan rai nodau fewnbynnau. Mae nodau o'r fath yn cynhyrchu'r canlyniad yn fewnol. Er enghraifft, nod cyson neu nôd synhwyrydd: nid oes angen data o nodau eraill arnynt i adrodd ar y canlyniad.

Nid oes gan nodau eraill, i'r gwrthwyneb, unrhyw allbynnau. Mae'r rhain yn nodau sy'n dangos, er enghraifft, actiwadyddion (cyfnewidfeydd neu rywbeth tebyg). Maent yn derbyn data ond nid ydynt yn cynhyrchu canlyniad cyfrifiannol sydd ar gael i nodau eraill.

Yn ogystal, mae yna hefyd nod sylwadau unigryw. Nid yw'n gwneud dim, nid oes ganddo fewnbynnau nac allbynnau. Ei ddiben yw bod yn esboniad ar y diagram.

Beth sydd wedi digwydd "digwyddiad"? Digwyddiad yw ymddangosiad data newydd mewn unrhyw nod. Er enghraifft, mae digwyddiadau yn cynnwys: newid mewn cyflwr mewnbwn (nod mewnbwn), derbyn data o ddyfais arall (nodau Mqtt и Cynllun Datblygu Unedol), diwedd cyfnod penodol o amser (nodau Amserydd и Oedi) ac yn y blaen.

Beth yw pwrpas digwyddiadau? Oes, er mwyn penderfynu ym mha nod y mae data newydd wedi codi a chyflwr pa nodau sydd angen eu newid mewn cysylltiad â derbyn data newydd. Mae'r digwyddiad, fel petai, yn “pasio” ar hyd y gadwyn o nodau nes ei fod yn osgoi'r holl nodau y mae angen gwirio a newid eu cyflwr.

Gellir rhannu pob nod yn ddau gategori.
Gadewch i ni alw nodau sy'n gallu cynhyrchu digwyddiadau "nodau gweithredol'.
Byddwn yn galw nodau na allant gynhyrchu digwyddiadau “nodau goddefol'.

Pan fydd nod yn cynhyrchu digwyddiad (hynny yw, mae data newydd yn ymddangos yn ei allbwn), yna yn yr achos cyffredinol mae cyflwr y gadwyn gyfan o nodau sy'n gysylltiedig ag allbwn nod generadur y digwyddiad yn newid.

Er mwyn ei gwneud yn glir, ystyriwch yr enghraifft yn y ffigur.

ShIoTiny: Nodau, Dolenni, a Digwyddiadau neu Nodweddion Rhaglenni Lluniadu

Y nodau gweithredol yma yw Mewnbwn1, Mewnbwn2 a Mewnbwn3. Mae'r nodau sy'n weddill yn oddefol. Gadewch i ni ystyried beth sy'n digwydd pan fydd un mewnbwn neu'r llall ar gau. Er hwylustod, mae'r canlyniadau wedi'u crynhoi mewn tabl.

ShIoTiny: Nodau, Dolenni, a Digwyddiadau neu Nodweddion Rhaglenni Lluniadu

Fel y gallwch weld, pan fydd digwyddiad yn digwydd, mae cadwyn yn cael ei hadeiladu o nod ffynhonnell y digwyddiad i'r nod diwedd. Nid yw cyflwr y nodau hynny nad ydynt yn disgyn i'r gadwyn yn newid.

Mae cwestiwn dilys yn codi: beth fydd yn digwydd os bydd dau neu hyd yn oed nifer o ddigwyddiadau yn digwydd ar yr un pryd?

Fel un sy’n hoff o waith Gleb Anfilov, rwy’n cael fy nhemtio i anfon holwr chwilfrydig i’w lyfr “Escape from Surprise.” Mae hon yn “ddamcaniaeth perthnasedd i’r rhai bach”, sy’n esbonio’n dda beth mae “ar y pryd” yn ei olygu a sut i fyw ag ef.

Ond yn ymarferol mae popeth yn llawer symlach: pan fydd dau neu hyd yn oed sawl digwyddiad yn digwydd, mae'r holl gadwyni o bob ffynhonnell digwyddiad yn cael eu hadeiladu a'u prosesu'n ddilyniannol yn eu tro, ac nid oes unrhyw wyrthiau'n digwydd.

Y cwestiwn cwbl gyfreithlon nesaf gan ddarllenydd chwilfrydig yw beth fydd yn digwydd os caiff y nodau eu cysylltu â chylch? Neu, fel maen nhw'n ei ddweud ymhlith y dynion craff hyn ohonoch chi, cyflwynwch adborth. Hynny yw, cysylltwch allbwn un o'r nodau â mewnbwn y nod blaenorol fel bod cyflwr allbwn y nod hwn yn effeithio ar gyflwr ei fewnbwn. Ni fydd y golygydd yn caniatáu ichi gysylltu allbwn nod â'i fewnbwn yn uniongyrchol. ElDraw. Ond yn anuniongyrchol, fel yn y ffigur isod, gellir gwneud hyn.

Felly beth fydd yn digwydd yn yr achos hwn? Bydd yr ateb yn “bendant” iawn: yn dibynnu ar ba nodau. Edrychwn ar yr enghraifft yn y ffigur.

ShIoTiny: Nodau, Dolenni, a Digwyddiadau neu Nodweddion Rhaglenni Lluniadu

Pan fydd cysylltiadau mewnbwn Input1 yn agored, mewnbwn uchaf nod A yw 0. Mae allbwn nod A hefyd yn 0. Allbwn nod B yw 1. Ac, yn olaf, mewnbwn isaf nod A yw 1. Mae popeth yn clir. Ac i'r rhai nad ydynt yn glir, edrychwch isod am ddisgrifiad o sut mae'r nodau "AND" a "NOT" yn gweithio.

Nawr rydyn ni'n cau cysylltiadau mewnbwn Input1, hynny yw, rydyn ni'n cymhwyso un i fewnbwn uchaf nod A. Mae'r rhai sy'n gyfarwydd ag electroneg yn gwybod y byddwn mewn gwirionedd yn cael cylched generadur clasurol gan ddefnyddio elfennau rhesymeg. Ac mewn theori, dylai cylched o'r fath gynhyrchu'r dilyniant 1-0-1-0-1-0 yn ddiddiwedd… ar allbwn elfennau A a B. a 0-1-0-1-0-1-…. Wedi'r cyfan, rhaid i'r digwyddiad newid cyflwr nodau A a B yn gyson, gan redeg mewn cylch 2-3-2-3-...!

Ond mewn gwirionedd nid yw hyn yn digwydd. Bydd y gylched yn disgyn i gyflwr ar hap - neu bydd y ras gyfnewid yn aros ymlaen neu i ffwrdd, neu efallai ychydig yn fwrlwm ymlaen ac i ffwrdd sawl gwaith yn olynol. Mae'r cyfan yn dibynnu ar y tywydd ym mhegwn deheuol y blaned Mawrth. A dyna pam mae hyn yn digwydd.

Mae digwyddiad o nod Mewnbwn1 yn newid cyflwr nod A, yna nod B, ac yn y blaen mewn cylch sawl gwaith. Mae'r rhaglen yn canfod “dolen” y digwyddiad ac yn atal y carnifal hwn yn rymus. Ar ôl hyn, mae newidiadau yng nghyflwr nodau A a B yn cael eu rhwystro nes bod digwyddiad newydd yn digwydd. Yr eiliad y mae’r rhaglen yn penderfynu “rhowch y gorau i droelli mewn cylchoedd!” - yn gyffredinol, mae'n dibynnu ar lawer o ffactorau a gellir ei ystyried ar hap.

Byddwch yn ofalus wrth gysylltu clymau i fodrwy - ni fydd yr effeithiau bob amser yn amlwg! Cael syniad da o beth a pham yr ydych yn ei wneud!

A yw'n dal yn bosibl adeiladu generadur ar y nodau sydd ar gael i ni? Wyt, ti'n gallu! Ond mae hyn yn gofyn am nod a all gynhyrchu digwyddiadau ei hun. Ac mae yna nod o'r fath - dyma'r “llinell oedi”. Gadewch i ni weld sut mae generadur gyda chyfnod o 6 eiliad yn gweithio yn y ffigur isod.

ShIoTiny: Nodau, Dolenni, a Digwyddiadau neu Nodweddion Rhaglenni Lluniadu

Elfen allweddol y generadur yw nod A - y llinell oedi. Os byddwch chi'n newid cyflwr mewnbwn y llinell oedi o 0 i 1, yna ni fydd 1 yn ymddangos yn yr allbwn ar unwaith, ond dim ond ar ôl amser penodedig. Yn ein hachos ni mae'n 3 eiliad. Yn yr un modd, os byddwch chi'n newid cyflwr mewnbwn y llinell oedi o 1 i 0, yna bydd 0 yn yr allbwn yn ymddangos ar ôl yr un 3 eiliad. Mae'r amser oedi wedi'i osod mewn degfed ran o eiliad. Hynny yw, mae'r gwerth 30 yn golygu 3 eiliad.

Nodwedd arbennig o'r llinell oedi yw ei fod yn cynhyrchu digwyddiad ar ôl i'r amser oedi ddod i ben.

Gadewch i ni dybio mai allbwn y llinell oedi i ddechrau oedd 0. Ar ôl pasio nod B - y gwrthdröydd - mae'r 0 hwn yn troi'n 1 ac yn mynd i fewnbwn y llinell oedi. Nid oes dim yn digwydd ar unwaith. Ar allbwn y llinell oedi, bydd yn parhau i fod yn 0, ond bydd y cyfrif i lawr o'r amser oedi yn dechrau. 3 eiliad yn mynd heibio. Ac yna mae'r llinell oedi yn cynhyrchu digwyddiad. Ar ei allbwn mae'n ymddangos yn 1. Mae'r uned hon, ar ôl pasio trwy nod B - y gwrthdröydd - yn troi'n 0 ac yn mynd i fewnbwn y llinell oedi. Mae 3 eiliad arall yn mynd heibio ... ac mae'r broses yn ailadrodd. Hynny yw, bob 3 eiliad mae cyflwr allbwn y llinell oedi yn newid o 0 i 1 ac yna o 1 i 0. Mae'r ras gyfnewid yn clicio. Mae'r generadur yn gweithio. Y cyfnod pwls yw 6 eiliad (3 eiliad ar sero'r allbwn a 3 eiliad ar yr allbwn un).

Ond, mewn cylchedau go iawn, fel arfer nid oes angen defnyddio'r enghraifft hon. Mae nodau amserydd arbennig sy'n berffaith a heb gymorth allanol yn cynhyrchu dilyniant o gorbys gyda chyfnod penodol. Mae hyd “sero” ac “un” yn y corbys hyn yn hafal i hanner y cyfnod.

I osod gweithredoedd cyfnodol, defnyddiwch nodau amserydd.

Sylwaf fod signalau digidol o’r fath, lle mae hyd “sero” ac “un” yn gyfartal, yn cael eu galw’n “dolen”.

Rwy'n gobeithio fy mod wedi egluro'r cwestiwn ychydig ynglŷn â sut mae digwyddiadau'n cael eu lledaenu rhwng nodau a beth i beidio â'i wneud?

Casgliad a chyfeiriadau

Trodd yr erthygl yn fyr, ond mae'r erthygl hon yn ateb i gwestiynau sydd wedi codi ynghylch nodau a digwyddiadau.

Wrth i firmware ddatblygu ac enghreifftiau newydd yn ymddangos, byddaf yn ysgrifennu am sut i raglennu ShIoTiny erthyglau bach cyn belled ag y bydd yn ddiddorol i bobl.

Fel o'r blaen, diagram, firmware, enghreifftiau, disgrifiad o gydrannau a phopeth mae'r gweddill yma.

Cwestiynau, awgrymiadau, beirniadaeth - ewch yma: [e-bost wedi'i warchod]

Ffynhonnell: hab.com

Ychwanegu sylw