Programmazzjoni Viżwali għal Sonoff Basic

Programmazzjoni Viżwali għal Sonoff Basic
Artiklu dwar kif toħloq kontrollur loġiku programmabbli minn apparat Ċiniż irħis. Apparat bħal dan isib l-applikazzjoni tiegħu kemm fl-awtomazzjoni tad-dar kif ukoll bħala eżerċizzji prattiċi fix-xjenza tal-kompjuter tal-iskola.
Bħala referenza, b'mod awtomatiku, il-programm Sonoff Basic jaħdem b'applikazzjoni mobbli permezz ta 'servizz cloud Ċiniż, wara l-alterazzjoni proposta, l-interazzjoni ulterjuri kollha ma' dan l-apparat issir possibbli fil-browser.

Taqsima I Konnessjoni ta' Sonoff mas-Servizz MGT24

Pass 1. Oħloq pannell tal-kontroll

Irreġistra fuq is-sit mgt24 (jekk mhux diġà rreġistrat) u illoggja mal-kont tiegħek.
IdħolProgrammazzjoni Viżwali għal Sonoff Basic

Biex toħloq pannell tal-kontroll għal apparat ġdid, ikklikkja fuq il-buttuna "+".
Eżempju tal-ħolqien tal-pannelliProgrammazzjoni Viżwali għal Sonoff Basic

Ladarba jkun inħoloq panel, jidher fil-lista tal-pannelli tiegħek.

Fit-tab "Installazzjoni" tal-panel maħluq, issib l-oqsma "Device ID" u "Awtorizzazzjoni Ċavetta", fil-futur, din l-informazzjoni se tkun meħtieġa meta twaqqaf l-apparat Sonoff.
Eżempju tat-tabProgrammazzjoni Viżwali għal Sonoff Basic

Pass 2. Itteptep l-apparat

Uża l-utilità XTCOM_UTIL niżżel il-firmware Sonoff Bażiku PLC fil-mezz, għal dan għandek bżonn konvertitur USB-TTL. Hawn istruzzjoni и Istruzzjoni tal-vidjo.

Pass 3. Setup tat-tagħmir

Ixgħel l-apparat, wara li l-LED jixgħel, agħfas il-buttuna u żommha 'l isfel sakemm l-LED jibda jteptep perjodikament indaqs.
F'dan il-punt, se jidher netwerk wi-fi ġdid imsejjaħ "PLC Sonoff Basic", qabbad il-kompjuter tiegħek ma 'dan in-netwerk.
Jiddeċifraw l-indikazzjoni LED

Indikazzjoni LED
Status tal-Apparat

iteptep doppju intermittenti
l-ebda konnessjoni mar-router

kontinwament jiddi
konnessjoni stabbilita mar-router

iteptep intermittenti
modalità Wifi hotspot

mitfija
Ebda provvista ta 'enerġija

Iftaħ browser tal-Internet u daħħal it-test "192.168.4.1" fil-bar tal-indirizz, mur fil-paġna tas-settings tan-netwerk tal-apparat.

Imla l-oqsma kif ġej:

  • "Isem tan-netwerk" u "Password" (għall-konnessjoni tal-apparat ma' router wi-fi tad-dar).
  • “Device ID” u “Authorization Key” (biex jawtorizza l-apparat fuq is-servizz MGT24).

Eżempju għall-konfigurazzjoni tas-settings tan-netwerk tal-magnaProgrammazzjoni Viżwali għal Sonoff Basic

Issejvja s-settings tiegħek u reboot it-tagħmir tiegħek.
Hawnhekk Istruzzjoni tal-vidjo.

Pass 4 Qabbad is-sensuri (mhux obbligatorju)

Il-firmware attwali jappoġġja sa erba 'sensors tat-temperatura ds18b20. Hawn Istruzzjoni tal-vidjo għall-installazzjoni tas-sensuri. Apparentement, dan il-pass se jkun l-aktar diffiċli, peress li se jeħtieġ armi dritti u ħadida tal-issaldjar mingħandek.

Taqsima II. programmazzjoni viżwali

Pass 1. Scripting

Użat bħala ambjent ta 'programmar Imblukkat, l-ambjent huwa faċli biex titgħallem, għalhekk m'għandekx bżonn tkun programmatur biex toħloq skripts sempliċi.

Żidt blokki speċjalizzati għall-kitba u l-qari tal-parametri tal-apparat. Kwalunkwe parametru huwa aċċessat bl-isem. Għal parametri ta' apparati remoti, jintużaw ismijiet komposti: "parametru@apparat".
Lista drop-down ta 'għażlietProgrammazzjoni Viżwali għal Sonoff Basic

Eżempju ta' xenarju għaċ-ċikliżmu tat-tagħbija mixgħul u mitfi (1Hz):
Programmazzjoni Viżwali għal Sonoff Basic

Eżempju ta' skript li jissinkronizza l-operat ta' żewġ apparati separati. Jiġifieri, ir-relay tal-apparat fil-mira jirrepeti l-operazzjoni tar-relay tal-apparat remot.
Programmazzjoni Viżwali għal Sonoff Basic

Xenarju għal termostat (mingħajr istereżi):
Programmazzjoni Viżwali għal Sonoff Basic

Biex toħloq skripts aktar kumplessi, tista 'tuża varjabbli, loops, funzjonijiet (b'argumenti), u kostruzzjonijiet oħra. Mhux se niddeskrivi dan kollu fid-dettall hawn, diġà hemm ħafna fuq in-netwerk. materjal ta’ tagħlim dwar Blockly.

Pass 2. Ordni ta 'eżekuzzjoni ta' skripts

L-iskript għaddej kontinwament, u malli jasal fit-tmiem tiegħu, jerġa jibda. F'dan il-każ, hemm żewġ blokki li jistgħu jissospendu temporanjament l-iskrittura, "dewmien" u "pawża".
Il-blokka "dewmien" tintuża għal dewmien millisekondi jew mikrosekonda. Din il-blokka żżomm strettament l-intervall tal-ħin, u timblokka t-tħaddim tal-apparat kollu.
Il-blokk "pawża" jintuża għal sekondi (forsi inqas) dewmien, u ma jimblokkax l-eżekuzzjoni ta 'proċessi oħra fl-apparat.
Jekk l-iskrittura fih linja infinita fiha nnifisha, li fil-korp tagħha m'hemm l-ebda "pawża", l-interpretu jibda waqfa żgħira waħdu.
Jekk il-munzell tal-memorja allokat jiġi eżawrit, l-interpretu jwaqqaf l-eżekuzzjoni ta 'skript voracious bħal dan (oqgħod attent bil-funzjonijiet rikorsivi).

Pass 3 Debugging skripts

Biex tiddibaggja b'kitba diġà mgħobbija fl-apparat, tista 'tibda t-traċċar tal-programm pass pass. Dan jista 'jkun estremament utli meta l-imġieba tal-iskrittura ma tkunx dak li l-awtur maħsub. F'dan il-każ, it-traċċar jippermetti lill-awtur isib malajr is-sors tal-problema u jiffissa l-iżball fl-iskrittura.

Skript tal-kalkolu tal-fatturi fil-modalità debug:
Programmazzjoni Viżwali għal Sonoff Basic

L-għodda tad-debug hija sempliċi ħafna u tikkonsisti fi tliet buttuni ewlenin: "bidu", "pass wieħed 'il quddiem" u "waqfien" (tinsiex dwar "idħol" u "ħruġ" mod debug). Minbarra t-traċċar pass pass, tista 'tissettja breakpoint fuq kwalunkwe blokk (billi tikklikkja fuq il-blokk bil-maws).
Biex turi l-valuri attwali tal-parametri (sensors, relays) fuq il-monitor, uża l-blokka "print".
Hawnhekk vidjo ħarsa ġenerali dwar l-użu tad-debugger.

Taqsima għall-kurjużi. U x'hemm taħt il-barnuża?

Sabiex l-iskripts jaħdmu fuq l-apparat fil-mira, ġew żviluppati interpretu tal-bytecode u assemblatur għal 38 struzzjoni. Ġeneratur ta 'kodiċi speċjalizzat inbena fil-kodiċi tas-sors blokk, li jikkonverti blokki viżwali fi struzzjonijiet ta' muntatur. Fil-futur, dan il-programm tal-assemblatur jiġi kkonvertit f'bytecode u trasferit għall-apparat għall-eżekuzzjoni.
L-arkitettura ta 'din il-magna virtwali hija pjuttost sempliċi u ftit li xejn tagħmel sens li tiddeskriviha, issib ħafna artikli fuq ix-xibka dwar id-disinn tal-magni virtwali l-aktar sempliċi.
Taħt il-munzell tal-magna virtwali tiegħi, normalment nilloka 1000 bytes, dan huwa biżżejjed b'marġni. Naturalment, rikorsi profondi jistgħu jeżawrixxu kwalunkwe munzell, iżda x'aktarx li ma jkunux ta 'użu prattiku.

Il-bytecode li jirriżulta huwa pjuttost kompatt. Bħala eżempju, il-bytecode għall-kalkolu tal-istess fatturi huwa biss 49 bytes. Din hija l-forma ta' preżentazzjoni viżwali tagħha:
Programmazzjoni Viżwali għal Sonoff Basic

U dan huwa l-programm tal-assemblatur tiegħu:

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

Jekk il-forma tal-preżentazzjoni tal-assemblatur m'għandhiex valur prattiku, allura t-tab "javascript", għall-kuntrarju, tagħti ħarsa aktar familjari minn blokki viżwali:

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

window.alert(factorial(10));

Fir-rigward tal-prestazzjoni. Meta tmexxi l-iskript tal-flasher l-aktar sempliċi, fuq l-iskrin tal-oxxilloskopju, sibt meander ta '47kHz (b'veloċità tal-arloġġ tal-proċessur ta' 80MHz).
Programmazzjoni Viżwali għal Sonoff BasicProgrammazzjoni Viżwali għal Sonoff Basic
Inqis dan riżultat tajjeb, tal-inqas din il-veloċità hija kważi għaxar darbiet aktar mgħaġġla minn Lua и espruino.

Il-parti finali

Fil-qosor, se ngħid li l-użu ta 'skripts jippermettilna mhux biss li nipprogrammaw il-loġika tal-operat ta' apparat wieħed, iżda wkoll jagħmilha possibbli li torbot diversi apparati f'mekkaniżmu wieħed, fejn apparat wieħed jaffettwa l-imġieba ta 'oħrajn.
Ninnota wkoll li l-mod magħżul ta 'ħażna ta' skripts (direttament fl-apparati nfushom, u mhux fuq is-server) jissimplifika l-bidla ta 'apparati li diġà jaħdmu għal server ieħor, pereżempju, għal Lampun tad-dar, hawn istruzzjoni.

Dak kollu, inkun ferħan li nisma pariri u kritika kostruttiva.

Sors: www.habr.com

Żid kumment