Erthygl am sut i greu rheolydd rhesymeg rhaglenadwy o ddyfais rhad Tsieineaidd.... Bydd dyfais o'r fath yn cael ei defnyddio mewn awtomeiddio cartref ac fel dosbarthiadau ymarferol mewn cyfrifiadureg ysgol.
Er gwybodaeth, yn ddiofyn mae rhaglen Sonoff Basic yn gweithio gyda chymhwysiad symudol trwy wasanaeth cwmwl Tsieineaidd; ar ôl yr addasiad arfaethedig, bydd pob rhyngweithio pellach â'r ddyfais hon yn bosibl yn y porwr.
Adran I. Cysylltu Sonoff â'r gwasanaeth MGT24
Cam 1: Creu panel rheoli
Cofrestrwch ar y safle
Mewngofnodi
I greu panel rheoli ar gyfer dyfais newydd, cliciwch ar y botwm "+".
Enghraifft o greu panel
Unwaith y bydd y panel yn cael ei greu, bydd yn ymddangos yn eich rhestr o baneli.
Yn y tab “Gosod” y panel a grëwyd, dewch o hyd i'r meysydd “Device ID” ac “Authorization Key”; yn y dyfodol, bydd angen y wybodaeth hon wrth sefydlu'r ddyfais Sonoff.
Enghraifft tab
Cam 2. Reflash y ddyfais
Defnyddio'r cyfleustodau
Cam 3. Gosodiad dyfais
Rhowch bŵer i'r ddyfais, ar ôl i'r LED oleuo, pwyswch y botwm a'i ddal wedi'i wasgu nes bod y LED yn dechrau fflachio o bryd i'w gilydd yn gyfartal.
Ar hyn o bryd, bydd rhwydwaith wi-fi newydd o'r enw “PLC Sonoff Basic” yn ymddangos, cysylltwch eich cyfrifiadur â'r rhwydwaith hwn.
Esboniad o arwydd LED
arwydd LED
Statws Dyfais
fflachio dwbl cyfnodol
dim cysylltiad â llwybrydd
yn disgleirio yn barhaus
cysylltiad wedi'i sefydlu gyda'r llwybrydd
fflachio gwisg achlysurol
modd pwynt mynediad wi-fi
diffodd
Dim cyflenwad pŵer
Agorwch borwr Rhyngrwyd a rhowch y testun “192.168.4.1” yn y bar cyfeiriad, ewch i dudalen gosodiadau rhwydwaith y ddyfais.
Llenwch y meysydd fel a ganlyn:
- “Enw rhwydwaith” a “Cyfrinair” (i gysylltu'r ddyfais â'ch llwybrydd Wi-Fi cartref).
- “Device ID” ac “Authorization Key” (i awdurdodi'r ddyfais ar y gwasanaeth MGT24).
Enghraifft o osod paramedrau rhwydwaith dyfais
Arbedwch y gosodiadau ac ailgychwyn y ddyfais.
Yma
Cam 4. Cysylltu synwyryddion (dewisol)
Mae'r firmware presennol yn cefnogi hyd at bedwar synhwyrydd tymheredd ds18b20. Yma
Adran II. Rhaglennu gweledol
Cam 1: Creu Sgriptiau
Wedi'i ddefnyddio fel amgylchedd rhaglennu
Ychwanegais flociau arbenigol ar gyfer ysgrifennu a darllen paramedrau dyfais. Mae unrhyw baramedr yn cael ei gyrchu yn ôl enw. Ar gyfer paramedrau dyfeisiau anghysbell, defnyddir enwau cyfansawdd: “parameter@device”.
Rhestr gwympo o opsiynau
Senario enghreifftiol ar gyfer troi cylchol ymlaen ac oddi ar y llwyth (1Hz):
Enghraifft o sgript yn cydamseru gweithrediad dwy ddyfais ar wahân. Sef, mae ras gyfnewid y ddyfais darged yn ailadrodd gweithrediad ras gyfnewid y ddyfais o bell.
Senario ar gyfer thermostat (heb hysteresis):
I greu sgriptiau mwy cymhleth, gallwch ddefnyddio newidynnau, dolenni, ffwythiannau (gyda dadleuon) a lluniadau eraill. Ni fyddaf yn disgrifio hyn i gyd yn fanwl yma; mae cryn dipyn ar y we yn barod.
Cam 2: Trefn y Sgriptiau
Mae'r sgript yn rhedeg yn barhaus, a chyn gynted ag y bydd yn cyrraedd ei diwedd, mae'n dechrau eto. Yn yr achos hwn, mae dau floc a all oedi'r sgript dros dro, "oedi" a "saib".
Defnyddir y bloc "oedi" ar gyfer oedi milieiliad neu ficrosecond. Mae'r bloc hwn yn cynnal yr egwyl amser yn llym, gan rwystro gweithrediad y ddyfais gyfan.
Defnyddir y bloc “saib” ar gyfer ail oedi (neu lai), ac nid yw'n rhwystro gweithrediad prosesau eraill yn y ddyfais.
Os yw'r sgript ei hun yn cynnwys dolen ddiddiwedd, nad yw ei chorff yn cynnwys “saib”, mae'r cyfieithydd yn annibynnol yn cychwyn saib byr.
Os yw'r pentwr cof a neilltuwyd wedi dod i ben, bydd y cyfieithydd ar y pryd yn rhoi'r gorau i weithredu sgript o'r fath sy'n llawn pŵer (byddwch yn ofalus gyda swyddogaethau ailadroddus).
Cam 3: Sgriptiau dadfygio
I ddadfygio sgript sydd eisoes wedi'i llwytho i'r ddyfais, gallwch redeg olrhain rhaglen gam wrth gam. Gall hyn fod yn hynod ddefnyddiol pan drodd ymddygiad y sgript yn wahanol i'r hyn a fwriadwyd gan yr awdur. Yn yr achos hwn, mae olrhain yn caniatáu i'r awdur ddod o hyd i ffynhonnell y broblem yn gyflym a chywiro'r gwall yn y sgript.
Senario ar gyfer cyfrifo ffactoraidd yn y modd dadfygio:
Mae'r offeryn dadfygio yn syml iawn ac mae'n cynnwys tri phrif fotwm: “cychwyn”, “un cam ymlaen” a “stopio” (peidiwch ag anghofio hefyd am y modd dadfygio “mynd i mewn” ac “ymadael”). Yn ogystal ag olrhain cam wrth gam, gallwch osod torbwynt ar unrhyw floc (trwy glicio ar y bloc).
I arddangos gwerthoedd cyfredol paramedrau (synwyryddion, trosglwyddyddion) yn y monitor, defnyddiwch y bloc “argraffu”.
Yma
Adran ar gyfer y chwilfrydig. Beth sydd o dan y cwfl?
Er mwyn i'r sgriptiau weithio ar y ddyfais darged, datblygwyd dehonglydd bytecode a chydosodwr gyda 38 o gyfarwyddiadau. Mae gan god ffynhonnell Blockly generadur cod arbenigol wedi'i ymgorffori ynddo sy'n trosi blociau gweledol yn gyfarwyddiadau cydosod. Yn dilyn hynny, mae'r rhaglen cydosodwr hon yn cael ei throsi'n bytecode a'i drosglwyddo i'r ddyfais i'w weithredu.
Mae pensaernïaeth y peiriant rhithwir hwn yn eithaf syml ac nid oes unrhyw bwynt penodol i'w ddisgrifio; ar y Rhyngrwyd fe welwch lawer o erthyglau am ddylunio'r peiriannau rhithwir symlaf.
Fel arfer rwy'n dyrannu 1000 beit ar gyfer pentwr fy mheiriant rhithwir, sy'n ddigon i'w sbario. Wrth gwrs, gall recursions dwfn ddihysbyddu unrhyw stac, ond maent yn annhebygol o gael unrhyw ddefnydd ymarferol.
Mae'r bytecode canlyniadol yn eithaf cryno. Er enghraifft, dim ond 49 beit yw'r cod beit ar gyfer cyfrifo'r un ffactoraidd. Dyma ei ffurf weledol:
A dyma ei raglen cydosodwr:
shift -1
ldi 10
call factorial, 1
print
exit
:factorial
ld_arg 0
ldi 1
gt
je 8
ld_arg 0
ld_arg 0
ldi 1
sub
call factorial, 1
mul
ret
ldi 1
ret
Os nad oes gan ffurf y cynulliad o gynrychioli unrhyw werth ymarferol, yna mae'r tab “javascrit”, i'r gwrthwyneb, yn rhoi golwg fwy cyfarwydd na blociau gweledol:
function factorial(num) {
if (num > 1) {
return num + factorial(num - 1);
}
return 1;
}
window.alert(factorial(10));
O ran perfformiad. Pan redais y sgript fflachiwr symlaf, cefais don sgwâr 47 kHz ar y sgrin osgilosgop (ar gyflymder cloc prosesydd o 80 MHz).
Rwy'n credu bod hwn yn ganlyniad da, o leiaf mae'r cyflymder hwn bron ddeg gwaith yn gyflymach na
Rhan olaf
I grynhoi, dywedaf fod y defnydd o sgriptiau yn caniatáu inni nid yn unig raglennu rhesymeg gweithrediad dyfais ar wahân, ond hefyd yn ei gwneud hi'n bosibl cysylltu sawl dyfais i un mecanwaith, lle mae rhai dyfeisiau'n dylanwadu ar ymddygiad eraill.
Sylwaf hefyd fod y dull a ddewiswyd o storio sgriptiau (yn uniongyrchol yn y dyfeisiau eu hunain, ac nid ar y gweinydd) yn symleiddio'r broses o newid dyfeisiau sydd eisoes yn gweithio i weinydd arall, er enghraifft i Mafon cartref, yma
Dyna i gyd, byddaf yn falch o glywed cyngor a beirniadaeth adeiladol.
Ffynhonnell: hab.com