Rhaglennu gweledol ar gyfer Sonoff Basic

Rhaglennu gweledol ar gyfer Sonoff Basic
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 mgt24 (os nad yw wedi cofrestru eisoes) a mewngofnodwch gan ddefnyddio'ch cyfrif.
MewngofnodiRhaglennu gweledol ar gyfer Sonoff Basic

I greu panel rheoli ar gyfer dyfais newydd, cliciwch ar y botwm "+".
Enghraifft o greu panelRhaglennu gweledol ar gyfer Sonoff Basic

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 tabRhaglennu gweledol ar gyfer Sonoff Basic

Cam 2. Reflash y ddyfais

Defnyddio'r cyfleustodau XTCOM_UTIL lawrlwytho'r firmware PLC Sonoff Sylfaenol i'r ddyfais, ar gyfer hyn bydd angen trawsnewidydd USB-TTL. Yma cyfarwyddyd и Cyfarwyddyd fideo.

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 dyfaisRhaglennu gweledol ar gyfer Sonoff Basic

Arbedwch y gosodiadau ac ailgychwyn y ddyfais.
Yma Cyfarwyddyd fideo.

Cam 4. Cysylltu synwyryddion (dewisol)

Mae'r firmware presennol yn cefnogi hyd at bedwar synhwyrydd tymheredd ds18b20. Yma Cyfarwyddyd fideo ar gyfer gosod synwyryddion. Yn ôl pob tebyg, y cam hwn fydd yr anoddaf, gan y bydd angen breichiau syth a haearn sodro.

Adran II. Rhaglennu gweledol

Cam 1: Creu Sgriptiau

Wedi'i ddefnyddio fel amgylchedd rhaglennu Yn blociog, mae'r amgylchedd yn hawdd i'w ddysgu, felly nid oes angen i chi fod yn rhaglennydd i greu sgriptiau syml.

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 opsiynauRhaglennu gweledol ar gyfer Sonoff Basic

Senario enghreifftiol ar gyfer troi cylchol ymlaen ac oddi ar y llwyth (1Hz):
Rhaglennu gweledol ar gyfer Sonoff Basic

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.
Rhaglennu gweledol ar gyfer Sonoff Basic

Senario ar gyfer thermostat (heb hysteresis):
Rhaglennu gweledol ar gyfer Sonoff Basic

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. deunydd addysgol am Blockly.

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:
Rhaglennu gweledol ar gyfer Sonoff Basic

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 fideo trosolwg am ddefnyddio'r dadfygiwr.

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:
Rhaglennu gweledol ar gyfer Sonoff Basic

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).
Rhaglennu gweledol ar gyfer Sonoff BasicRhaglennu gweledol ar gyfer Sonoff Basic
Rwy'n credu bod hwn yn ganlyniad da, o leiaf mae'r cyflymder hwn bron ddeg gwaith yn gyflymach na Lua и Espruino.

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 cyfarwyddyd.

Dyna i gyd, byddaf yn falch o glywed cyngor a beirniadaeth adeiladol.

Ffynhonnell: hab.com

Ychwanegu sylw