Sjónræn forritun fyrir Sonoff Basic

Sjónræn forritun fyrir Sonoff Basic
Grein um hvernig á að búa til forritanlega rökstýringu úr ódýru kínversku tæki. Slíkt tæki mun nýtast bæði í sjálfvirkni heima og sem verklegir tímar í skólatölvufræði.
Til viðmiðunar, Sonoff Basic forritið virkar sjálfgefið með farsímaforriti í gegnum kínverska skýjaþjónustu; eftir fyrirhugaða breytingu verður öll frekari samskipti við þetta tæki möguleg í vafranum.

Kafli I. Að tengja Sonoff við MGT24 þjónustuna

Skref 1: Búðu til stjórnborð

Skráðu þig á síðunni mgt24 (ef ekki þegar skráð) og skráðu þig inn með reikningnum þínum.
InnskráningSjónræn forritun fyrir Sonoff Basic

Til að búa til stjórnborð fyrir nýtt tæki, smelltu á „+“ hnappinn.
Dæmi um að búa til pallborðSjónræn forritun fyrir Sonoff Basic

Þegar spjaldið er búið til mun það birtast á listanum þínum yfir spjaldið.

Í flipanum „Uppsetning“ á spjaldinu sem búið var til, finndu reitina „Auðkenni tækis“ og „Heimildarlykill“; í framtíðinni verða þessar upplýsingar nauðsynlegar þegar Sonoff tækið er sett upp.
Dæmi um flipaSjónræn forritun fyrir Sonoff Basic

Skref 2. Endurræstu tækið

Að nota tólið XTCOM_UTIL Sækja vélbúnaðar PLC Sonoff Basic í tækið, til þess þarftu USB-TTL breytir. Hérna kennsla и Vídeó kennsla.

Skref 3. Uppsetning tækis

Settu rafmagn á tækið, eftir að ljósdíóðan kviknar, ýttu á hnappinn og haltu honum inni þar til ljósdíóðan byrjar að blikka reglulega jafnt og þétt.
Á þessari stundu mun nýtt Wi-Fi net sem kallast „PLC Sonoff Basic“ birtast, tengdu tölvuna þína við þetta net.
Útskýring á LED vísbendingu

LED vísbending
Staða tækis

reglubundið tvöfalt blikkandi
engin tenging við router

skín stöðugt
tengingu komið á við beininn

reglubundið einkennisbúningur blikkandi
Wi-Fi aðgangsstaðastilling

slökkt
Engin aflgjafi

Opnaðu netvafra og sláðu inn textann „192.168.4.1“ í veffangastikuna, farðu á netstillingasíðu tækisins.

Fylltu út reitina sem hér segir:

  • „Netkerfisheiti“ og „Lykilorð“ (til að tengja tækið við Wi-Fi heimabeini).
  • „Device ID“ og „Authorization key“ (til að heimila tækið á MGT24 þjónustunni).

Dæmi um að stilla netfæribreytur tækisSjónræn forritun fyrir Sonoff Basic

Vistaðu stillingarnar og endurræstu tækið.
Hér Vídeó kennsla.

Skref 4. Að tengja skynjara (valfrjálst)

Núverandi vélbúnaðar styður allt að fjóra ds18b20 hitaskynjara. Hérna Vídeó kennsla fyrir uppsetningu skynjara. Svo virðist sem þetta skref verður erfiðasta, þar sem það mun krefjast beinna handleggja og lóðajárns.

Kafli II. Sjónræn forritun

Skref 1: Búðu til forskriftir

Notað sem forritunarumhverfi Að lokum, umhverfið er auðvelt að læra, svo þú þarft ekki að vera forritari til að búa til einfaldar forskriftir.

Ég bætti við sérhæfðum kubbum til að skrifa og lesa tækifæri. Hægt er að nálgast hvaða færibreytu sem er með nafni. Fyrir færibreytur ytra tækja eru samsett heiti notuð: „parameter@device“.
Fellilisti yfir valkostiSjónræn forritun fyrir Sonoff Basic

Dæmi um að kveikja og slökkva á álagi í hringrás (1Hz):
Sjónræn forritun fyrir Sonoff Basic

Dæmi um handrit sem samstillir rekstur tveggja aðskildra tækja. Nefnilega endurtekur gengi marktækisins virkni gengis ytra tækisins.
Sjónræn forritun fyrir Sonoff Basic

Atburðarás fyrir hitastillir (án hysteresis):
Sjónræn forritun fyrir Sonoff Basic

Til að búa til flóknari forskriftir er hægt að nota breytur, lykkjur, föll (með rökum) og aðrar smíðar. Ég mun ekki lýsa þessu öllu í smáatriðum hér; það er nú þegar töluvert mikið á netinu. fræðsluefni um Blockly.

Skref 2: Röð handrita

Handritið keyrir stöðugt og um leið og það nær endanum byrjar það aftur. Í þessu tilviki eru tvær blokkir sem geta gert tímabundið hlé á handritinu, „seinkað“ og „hlé“.
"Töf" blokkin er notuð fyrir millisekúndu eða míkrósekúndu tafir. Þessi blokk heldur nákvæmlega tímabilinu og hindrar virkni alls tækisins.
„Hlé“ blokkin er notuð fyrir seinni (eða minni) tafir og hún hindrar ekki framkvæmd annarra ferla í tækinu.
Ef handritið sjálft inniheldur óendanlega lykkju, þar sem meginmálið inniheldur ekki „hlé“, byrjar túlkurinn sjálfstætt stutta hlé.
Ef úthlutað minnisstafla er uppurið mun túlkurinn hætta að keyra slíka kraftþunga forskrift (farið varlega með endurkvæmar aðgerðir).

Skref 3: Kembiforrit

Til að kemba smáforrit sem þegar hefur verið hlaðið inn í tækið geturðu keyrt forritaspor skref fyrir skref. Þetta getur verið mjög gagnlegt þegar hegðun handritsins reyndist vera önnur en höfundur ætlaði. Í þessu tilviki gerir rakning höfundi kleift að finna fljótt upptök vandans og leiðrétta villuna í handritinu.

Atburðarás til að reikna út þáttaskil í villuleitarham:
Sjónræn forritun fyrir Sonoff Basic

Kembiforritið er mjög einfalt og samanstendur af þremur aðalhnöppum: „byrja“, „eitt skref fram á við“ og „stöðva“ (gleymum heldur ekki „enter“ og „exit“ kembiforrit). Auk þess að rekja skref fyrir skref, geturðu stillt brotpunkt á hvaða reit sem er (með því að smella á reitinn).
Til að sýna núverandi gildi færibreyta (skynjara, liða) á skjánum, notaðu „prenta“ blokkina.
Hér yfirlitsmyndband um notkun kembiforritsins.

Hluti fyrir forvitna. Hvað er undir húddinu?

Til þess að forskriftirnar virkuðu á marktækinu var þróaður bækikóðatúlkur og assembler með 38 leiðbeiningum. Frumkóði Blockly er með sérhæfðan kóðarafall innbyggðan sem breytir sjónrænum kubbum í samsetningarleiðbeiningar. Í kjölfarið er þessu samsetningarforriti breytt í bætikóða og flutt í tækið til framkvæmdar.
Arkitektúr þessarar sýndarvélar er frekar einfaldur og það er enginn sérstakur tilgangur að lýsa henni; á Netinu er að finna margar greinar um að hanna einföldustu sýndarvélarnar.
Ég úthluta venjulega 1000 bætum fyrir stafla sýndarvélarinnar minnar, sem er nóg til vara. Auðvitað geta djúpar endurtekningar tæmt hvaða stafla sem er, en ólíklegt er að þær hafi hagnýtt gagn.

Bætiskóðinn sem myndast er frekar þéttur. Sem dæmi er bætikóði til að reikna út sömu þáttatölu aðeins 49 bæti. Þetta er sjónræn form þess:
Sjónræn forritun fyrir Sonoff Basic

Og þetta er assembler forritið hans:

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

Ef samsetningarformið fyrir framsetningu hefur ekki hagnýtt gildi, þá gefur „javascrit“ flipinn þvert á móti kunnuglegra útlit en sjónrænar blokkir:

function factorial(num) {
  if (num > 1) {
    return num + factorial(num - 1);
  }
  return 1;
}

window.alert(factorial(10));

Varðandi frammistöðu. Þegar ég keyrði einfaldasta flasher scriptið fékk ég 47 kHz ferhyrningsbylgju á sveiflusjá skjánum (á örgjörva klukkuhraða 80 MHz).
Sjónræn forritun fyrir Sonoff BasicSjónræn forritun fyrir Sonoff Basic
Mér finnst þetta góður árangur, allavega er þessi hraði næstum tífalt meiri en Lua и Espruino.

Endanleg hluti

Til að draga saman, mun ég segja að notkun forskrifta gerir okkur ekki aðeins kleift að forrita rökfræði reksturs sérstaks tækis, heldur gerir það einnig mögulegt að tengja nokkur tæki í einn vélbúnað, þar sem sum tæki hafa áhrif á hegðun annarra.
Ég tek líka fram að valin aðferð við að geyma forskriftir (beint í tækjunum sjálfum, en ekki á þjóninum) einfaldar skiptingu tækja sem þegar eru í notkun yfir á annan netþjón, til dæmis yfir á Raspberry heima, hér kennsla.

Það er allt, ég mun vera ánægð að heyra ráðleggingar og uppbyggilega gagnrýni.

Heimild: www.habr.com

Bæta við athugasemd