Sonoff Basic vizuālā programmÄ“Å”ana

Sonoff Basic vizuālā programmÄ“Å”ana
Raksts par to, kā izveidot programmējamu loÄ£isko kontrolieri no lētas Ä·Ä«nieÅ”u ierÄ«ces. Šāda ierÄ«ce tiks izmantota gan mājas automatizācijā, gan kā praktiskās nodarbÄ«bas skolas datorzinātnēs.
Uzziņai, pēc noklusējuma programma Sonoff Basic darbojas ar mobilo lietojumprogrammu, izmantojot Ķīnas mākoņpakalpojumu; pēc ierosinātās modifikācijas visa turpmākā mijiedarbÄ«ba ar Å”o ierÄ«ci bÅ«s iespējama pārlÅ«kprogrammā.

I sadaļa. Sonoff pievienoŔana pakalpojumam MGT24

1. darbība. Izveidojiet vadības paneli

Reģistrējieties vietnē mgt24 (ja vēl nav reģistrēts) un piesakieties, izmantojot savu kontu.
PieslēgtiesSonoff Basic vizuālā programmÄ“Å”ana

Lai izveidotu vadÄ«bas paneli jaunai ierÄ«cei, noklikŔķiniet uz pogas ā€œ+ā€.
Paneļa izveides piemērsSonoff Basic vizuālā programmÄ“Å”ana

Kad panelis ir izveidots, tas parādīsies jūsu paneļu sarakstā.

Izveidotā paneļa cilnē ā€œIestatÄ«Å”anaā€ atrodiet laukus ā€œIerÄ«ces IDā€ un ā€œAutorizācijas atslēgaā€; turpmāk Ŕī informācija bÅ«s nepiecieÅ”ama, uzstādot Sonoff ierÄ«ci.
Cilnes piemērsSonoff Basic vizuālā programmÄ“Å”ana

2. darbība. Atkārtoti uzzibeŔojiet ierīci

Lietojumprogrammas izmantoÅ”ana XTCOM_UTIL lejupielādējiet programmaparatÅ«ru PLC Sonoff Basic uz ierÄ«ci, Å”im nolÅ«kam jums bÅ«s nepiecieÅ”ams USB-TTL pārveidotājs. Å eit norādÄ«jums Šø Video instrukcija.

3. darbība. Ierīces iestatīŔana

Ieslēdziet ierīci, pēc tam, kad iedegas LED, nospiediet pogu un turiet to nospiestu, līdz gaismas diode sāk periodiski vienmērīgi mirgot.
Å ajā brÄ«dÄ« parādÄ«sies jauns Wi-Fi tÄ«kls ar nosaukumu ā€œPLC Sonoff Basicā€, savienojiet datoru ar Å”o tÄ«klu.
LED indikācijas skaidrojums

LED indikācija
Ierīces statuss

periodiska dubultā mirgoŔana
nav savienojuma ar marÅ”rutētāju

spīd nepārtraukti
izveidots savienojums ar marÅ”rutētāju

periodiska vienota mirgoŔana
Wi-Fi piekļuves punkta režīms

dzēsts
Nav baroŔanas avota

Atveriet interneta pārlÅ«kprogrammu un adreses joslā ievadiet tekstu ā€œ192.168.4.1ā€, dodieties uz ierÄ«ces tÄ«kla iestatÄ«jumu lapu.

Aizpildiet laukus Ŕādi:

  • ā€œTÄ«kla nosaukumsā€ un ā€œParoleā€ (lai saistÄ«tu ierÄ«ci ar mājas Wi-Fi marÅ”rutētāju).
  • ā€œIerÄ«ces IDā€ un ā€œAutorizācijas atslēgaā€ (lai autorizētu ierÄ«ci MGT24 pakalpojumā).

IerÄ«ces tÄ«kla parametru iestatÄ«Å”anas piemērsSonoff Basic vizuālā programmÄ“Å”ana

Saglabājiet iestatījumus un restartējiet ierīci.
Å eit Video instrukcija.

4. darbÄ«ba. Sensoru pievienoÅ”ana (pēc izvēles)

PaÅ”reizējā programmaparatÅ«ra atbalsta lÄ«dz četriem ds18b20 temperatÅ«ras sensoriem. Å eit Video instrukcija sensoru uzstādÄ«Å”anai. AcÄ«mredzot Å”is solis bÅ«s visgrÅ«tākais, jo tam bÅ«s vajadzÄ«gas taisnas rokas un lodāmurs.

II sadaļa. Vizuālā programmÄ“Å”ana

1. darbÄ«ba. Izveidojiet skriptus

Izmanto kā programmÄ“Å”anas vidi Bloķēti, vide ir viegli apgÅ«stama, tāpēc, lai izveidotu vienkārÅ”us skriptus, nav jābÅ«t programmētājam.

Es pievienoju specializētus blokus ierÄ«ces parametru rakstÄ«Å”anai un lasÄ«Å”anai. Jebkuram parametram var piekļūt pēc nosaukuma. Attālināto ierīču parametriem tiek izmantoti salikti nosaukumi: ā€œparameter@deviceā€.
Nolaižamais opciju sarakstsSonoff Basic vizuālā programmÄ“Å”ana

Scenārija piemērs slodzes cikliskai ieslēgÅ”anai un izslēgÅ”anai (1 Hz):
Sonoff Basic vizuālā programmÄ“Å”ana

Skripta piemērs, kas sinhronizē divu atseviŔķu ierīču darbÄ«bu. Proti, mērÄ·a ierÄ«ces relejs atkārto attālās ierÄ«ces releja darbÄ«bu.
Sonoff Basic vizuālā programmÄ“Å”ana

Scenārijs termostatam (bez histerēzes):
Sonoff Basic vizuālā programmÄ“Å”ana

Lai izveidotu sarežģītākus skriptus, varat izmantot mainīgos, cilpas, funkcijas (ar argumentiem) un citas konstrukcijas. Šeit es to visu sīkāk neaprakstīŔu; tīklā jau ir diezgan daudz. izglītojoŔs materiāls par Blockly.

2. darbÄ«ba: skriptu secÄ«ba

Skripts darbojas nepārtraukti, un, tiklÄ«dz tas sasniedz beigas, tas sākas no jauna. Å ajā gadÄ«jumā ir divi bloki, kas var Ä«slaicÄ«gi apturēt skriptu: ā€œaizkavētā€ un ā€œpauzeā€.
"Aizkaves" bloks tiek izmantots milisekundes vai mikrosekundes aizkavei. Šis bloks stingri uztur laika intervālu, bloķējot visas ierīces darbību.
ā€œPauzesā€ bloks tiek izmantots otrajai (vai mazākai) aizkavei, un tas nebloķē citu procesu izpildi ierÄ«cē.
Ja paŔā skriptā ir bezgalÄ«ga cilpa, kuras pamattekstā nav ā€œpauzesā€, tulks patstāvÄ«gi ierosina Ä«su pauzi.
Ja pieŔķirtā atmiņas kaudze ir izsmelta, tulks pārtrauks izpildÄ«t tik jaudas izsalkuÅ”u skriptu (esiet piesardzÄ«gs ar rekursÄ«vām funkcijām).

3. darbÄ«ba: skriptu atkļūdoÅ”ana

Lai atkļūdotu skriptu, kas jau ir ielādēts ierÄ«cē, varat soli pa solim palaist programmas izsekoÅ”anu. Tas var bÅ«t ļoti noderÄ«gi, ja skripta darbÄ«ba atŔķiras no autora iecerētā. Å ajā gadÄ«jumā izsekoÅ”ana ļauj autoram ātri atrast problēmas avotu un izlabot kļūdu skriptā.

Scenārijs faktoriāla aprēķināŔanai atkļūdoÅ”anas režīmā:
Sonoff Basic vizuālā programmÄ“Å”ana

AtkļūdoÅ”anas rÄ«ks ir ļoti vienkārÅ”s un sastāv no trim galvenajām pogām: "sākt", "vienu soli uz priekÅ”u" un "apturēt" (neaizmirsÄ«sim arÄ« par atkļūdoÅ”anas režīmu "ieiet" un "iziet"). Papildus soli pa solim izsekoÅ”anas varat iestatÄ«t pārtraukuma punktu jebkuram blokam (noklikŔķinot uz bloka).
Lai monitorā parādÄ«tu paÅ”reizējās parametru (sensoru, releju) vērtÄ«bas, izmantojiet bloku ā€œdrukāŔanaā€.
Šeit pārskata video par atkļūdotāja izmantoŔanu.

Sadaļa ziņkārīgajiem. Kas ir zem pārsega?

Lai skripti darbotos mērÄ·a ierÄ«cē, tika izstrādāts baitu koda tulks un montētājs ar 38 instrukcijām. Blockly pirmkodā ir iebÅ«vēts specializēts koda Ä£enerators, kas vizuālos blokus pārvērÅ” montāžas instrukcijās. Pēc tam Ŕī montāžas programma tiek pārveidota par baitkodu un pārsÅ«tÄ«ta uz ierÄ«ci izpildei.
Å Ä«s virtuālās maŔīnas arhitektÅ«ra ir diezgan vienkārÅ”a, un nav Ä«paÅ”as jēgas to aprakstÄ«t, internetā jÅ«s atradÄ«siet daudz rakstu par vienkārŔāko virtuālo maŔīnu projektÄ“Å”anu.
Es parasti pieŔķiru 1000 baitus savas virtuālās maŔīnas stekam, kas ir pietiekami, lai rezerves. Protams, dziļas rekursijas var izsmelt jebkuru kaudzi, taču maz ticams, ka tām būs praktiska izmantoŔana.

IegÅ«tais baitkods ir diezgan kompakts. Piemēram, baitu kods viena un tā paÅ”a faktoriāla aprēķināŔanai ir tikai 49 baiti. Å Ä« ir tā vizuālā forma:
Sonoff Basic vizuālā programmÄ“Å”ana

Un Ŕī ir viņa montāžas programma:

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

Ja attēlojuma montāžas formai nav praktiskas vērtÄ«bas, cilne ā€œjavascritā€, gluži pretēji, pieŔķir pazÄ«stamāku izskatu nekā vizuālie bloki:

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

window.alert(factorial(10));

AttiecÄ«bā uz veiktspēju. Palaižot visvienkārŔāko mirgotāja skriptu, es saņēmu 47 kHz kvadrātveida vilni osciloskopa ekrānā (ar procesora takts frekvenci 80 MHz).
Sonoff Basic vizuālā programmÄ“Å”anaSonoff Basic vizuālā programmÄ“Å”ana
Es domāju, ka tas ir labs rezultāts, vismaz Å”is ātrums ir gandrÄ«z desmit reizes lielāks nekā Lua Šø Espruino.

Pēdējā daļa

Rezumējot, teikÅ”u, ka skriptu izmantoÅ”ana ļauj ne tikai programmēt atseviŔķas ierÄ«ces darbÄ«bas loÄ£iku, bet arÄ« ļauj savienot vairākas ierÄ«ces vienā mehānismā, kur dažas ierÄ«ces ietekmē citu uzvedÄ«bu.
Es arÄ« atzÄ«mēju, ka izvēlētā skriptu glabāŔanas metode (tieÅ”i paŔās ierÄ«cēs, nevis serverÄ«) vienkārÅ”o jau strādājoÅ”u ierīču pārslēgÅ”anu uz citu serveri, piemēram, uz mājas Raspberry, Å”eit norādÄ«jums.

Tas arÄ« viss, priecāŔos dzirdēt padomus un konstruktÄ«vu kritiku.

Avots: www.habr.com

Pievieno komentāru