Programimi vizual për Sonoff Basic

Programimi vizual për Sonoff Basic
Një artikull mbi mënyrën si të krijoni një kontrollues logjik programues nga një pajisje të lirë kineze. Një pajisje e tillë do të gjejë aplikim si në automatizimin e shtëpisë, ashtu edhe si materiale praktike për mësimin e informacionit në shkollë.
Për informacion, në mënyrë të paracaktuar, programi Sonoff Basic punon me aplikacionin mobil përmes një shërbimi Cloud kinez, pas modifikimit të propozuar, të gjithë ndërveprimi i mëtejshëm me këtë pajisje do të jetë i mundur nëpërmjet shfletuesit.

Kapitulli I. Lidheni Sonoff me shërbimin MGT24

Hapi 1. Krijimi i panelit të kontrollit

Regjistrohuni në faqen e internetit mgt24 (nëse nuk jeni regjistruar ende) dhe hyni në sistem me llogarinë tuaj.
Hyni në sistemProgramimi vizual për Sonoff Basic

Për të krijuar një panel kontrolli për pajisjen e re, klikoni butonin «+».
Shembuj krijimi të panelitProgramimi vizual për Sonoff Basic

Pasi paneli të krijohet, ai do të shfaqet në listën e paneleve tuaja.

NĂ« skedĂ«n «Instalimi», tĂ« panelit tĂ« krijuar, gjeni fushat «ID pajisjes» dhe «ÇelĂ«si i autorizimit», tĂ« cilat do tĂ« nevojiten mĂ« vonĂ« gjatĂ« konfigurimit tĂ« pajisjes Sonoff.
Shembuj skedeProgramimi vizual për Sonoff Basic

Hapi 2. Rindizja e pajisjes

Me ndihmën e utilitarit XTCOM_UTIL ngarkoni firmuerin PLC Sonoff Basic në pajisje, për këtë do t'ju nevojitet një konvertues USB-TTL. Këtu instruksion dhe udhëzimi në videon.

Hapi 3. Konfigurimi i pajisjes

Siguroni energji për pajisjen, pasi drita LED të ndizet, klikoni butonin dhe mbajeni të shtypur derisa drita LED të fillojë të pulsosh rregullisht.
Në këtë moment do të shfaqet një rrjet wi-fi i quajtur «PLC Sonoff Basic», lidheni kompjuterin tuaj me këtë rrjet.
Shpjegimi i indikatorëve LED

Indikatorët LED
Statusi i pajisjes

përdorimi i shndërrimit të dyfishtë
nuk ka lidhje me routerin

ndriçon vazhdimisht
lidhja është vendosur me routerin

përdorimi i pulsimit të rregullt
modaliteti wi-fi i pikës së aksesit

e fikur
nuk ka energji

Hapni një shfletues interneti dhe shkruani në shiritin e adresës tekstin «192.168.4.1», kaloni në faqen e konfigurimit të parametrave të rrjetit të pajisjes.

Plotësoni fushat si më poshtë:

  • «Emri i rrjetit» dhe «FjalĂ«kalimi» (pĂ«r tĂ« lidhur pajisjen me routerin tuaj wi-fi nĂ« shtĂ«pi).
  • «ID pajisjes» dhe «ÇelĂ«si i autorizimit» (pĂ«r autorizimin e pajisjes nĂ« shĂ«rbimin MGT24).

Shembuj të konfigurimit të parametrave të rrjetit të pajisjesProgramimi vizual për Sonoff Basic

Ruani parametrat dhe riaktivizoni pajisjen.
Këtu udhëzimi në videon.

Hapi 4. Lidhja e sensorëve (opcional)

Firmware aktual mbështet deri në katër sensorë temperature ds18b20. Këtu udhëzimi në videon për montimin e sensorëve. Duket se ky hap do të jetë më i vështirë, pasi do t'ju kërkojë duar të drejta dhe një saldator.

Kapitulli II. Programimi vizual

Hapi 1. Krijimi i skenarëve

Si ambient programimi pĂ«rdoret Blockly, njĂ« mjedis i thjeshtĂ« pĂ«r t’u zotĂ«ruar, kĂ«shtu qĂ« pĂ«r tĂ« krijuar skenarĂ« tĂ« thjeshtĂ« nuk Ă«shtĂ« e nevojshme tĂ« jeni programues.

Kam shtuar blloqe të specializuara për regjistrimin dhe leximin e parametrave të pajisjes. Qasja në çdo parametër bëhet nëpërmjet emrit. Për parametrat e pajisjeve të largëta përdoren emra të përbërë: "parametri@pajisja".
Lista e rënies së parametraveProgramimi vizual për Sonoff Basic

Shembuj skenari për ndezjen dhe fikjen ciklike të ngarkesës (1Hz):
Programimi vizual për Sonoff Basic

Shembuj skenari që sinkronizon punën e dy pajisjeve të veçanta. Kështu, releu i pajisjes së synuar përsërit punën e releut të pajisjes së largët.
Programimi vizual për Sonoff Basic

Skenari për termostatin (pa histerezis):
Programimi vizual për Sonoff Basic

Për të krijuar skenarë më të komplikuar, mund të përdoren variablat, ciklet, funksionet (me argumente) dhe konstrukte të tjera. Nuk do ta zhvilloj në detaje këtu, në internet tashmë ka shumë materiale mësimore mbi Blockly.

Hapi 2. Rendi i ekzekutimit të skenarëve

Skenari punon në një regjime të vazhdueshëm, dhe sa herë që arrin në fundin e tij, rifillon përsëri. Këtu ka dy blloqe që mund të pezullojnë përkohësisht punën e skenarit, "delay" dhe "pause".
Blloku "delay" përdoret për vonesa në milisekonda ose mikrosekonda. Ky bllok respekton saktësisht intervalin e kohës, duke bllokuar punën e gjithë pajisjes.
Blloku "pause" përdoret për vonesa sekondash (mund të jetë edhe më e vogël), dhe ai nuk bllokon ekzekutimin e proceseve të tjera në pajisje.
Nëse skenari brenda vetes ka një cikël të pafund, në trupin e të cilit nuk ndodhet "pause", interpretuese do të iniciative një pushim të vogël.
Në rast të shterimit të stacks të memorie të dedikuar, interpretuese do të ndalojë ekzekutimin e një skenari aq të vorfër (kujdes me funksionet rekursive).

Hapi 3. Debugging i skenarëve

Për të shkuar përmes një skenari që është ngarkuar tashmë në pajisje, mund të filloni një ndjekje hap pas hapi. Kjo është jashtëzakonisht e dobishme kur sjellja e skenarit rezulton të jetë ndryshe nga ajo që kishte parashikuar autori. Në këtë rast, ndjekja lejon autorin të identifikojë shpejt burimin e problemit dhe të korrigjojë gabimin në skenar.

Skenari për llogaritjen e faktorialit në modalitetin e debugging:
Programimi vizual për Sonoff Basic

Instrumenti i debugging është shumë i thjeshtë dhe përbëhet nga tre butona kryesorë: 'fillo', 'një hap përpara' dhe 'ndalo' (po ashtu mos harrojmë mbi 'hyrje' dhe 'dalje' nga modaliteti i debugging). Përveç ndjekjes hap pas hapi, mund të vendosni një pikë ndalimi në çdo bllok (me një klik të mausit mbi bllokun).
Për të shfaqur në monitor vlerat aktuale të parametrave (sensorët, releet), përdorni bllokun 'print'.
Këtu video panoramike për përdorimin e debugger-it.

NjĂ« seksion pĂ«r kuriozĂ«t. ÇfarĂ« ka nĂ«n kapak?

PĂ«r tĂ« siguruar qĂ« skenarĂ«t tĂ« punojnĂ« nĂ« pajisjen e synuar, Ă«shtĂ« zhvilluar njĂ« interpretues pĂ«r kodin баĐčт dhe assembler-in me 38 instruksione. NĂ« kodin burimor tĂ« blockly, Ă«shtĂ« integruar njĂ« gjenerues i specializuar i kodit qĂ« konverton blloqet vizuale nĂ« instruksione assembler. Kjo program assembler mĂ« pas konvertohet nĂ« kod баĐčт dhe dĂ«rgohet nĂ« pajisje pĂ«r ekzekutim.
Arkitektura e kësaj makine virtuale është mjaft e thjeshtë dhe nuk ka shumë kuptim ta përshkruajmë, në internet do të gjeni shumë artikuj mbi projektimin e makinave virtuale më të thjeshta.
Për stack-un e makinës sime virtuale, zakonisht rezervoj 1000 byte, kjo është e mjaftueshme. Sigurisht, rekursionet e thella mund të shfrytëzojnë çdo stack, por është e dyshimtë se do të gjejnë ndonjë përdorim praktik.

Kodi pĂ«rfundimtar баĐčт Ă«shtĂ« mjaft kompakt. Si njĂ« shembull, kodi баĐčт pĂ«r llogaritjen e tĂ« njĂ«jtit faktorial pĂ«rbĂ«n vetĂ«m 49 byte. Kjo Ă«shtĂ« forma e tij vizuale e paraqitjes:
Programimi vizual për Sonoff Basic

Dhe kjo është programi i tij assembler:

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

Nëse forma assembler e paraqitjes nuk ka ndonjë vlerë praktike, tab-i 'javascrit', nga ana tjetër, ofron një pamje më të njohur sesa blloqet vizuale:

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

window.alert(factorial(10));

Sa i përket performancës. Gjatë ekzekutimit të skenarit më të thjeshtë të ndriçimit, në ekranin e osciloskopit mora një meandër 47kHz (në frekuencën e clock-ut të procesorit 80MHz).
Programimi vizual për Sonoff BasicProgramimi vizual për Sonoff Basic
E konsideroj këtë rezultat të kënaqshëm, të paktën, kjo shpejtësi është pothuajse dhjetë herë më e shpejtë se Lua dhe Espruino.

Pjesa përfundimtare

Duke përmbledhur, do të them se përdorimi i skenarëve na lejon jo vetëm të programojmë logjikën e funksionimit të një pajisjeje të veçantë, por gjithashtu na ofron mundësinë për të lidhur disa pajisje në një mekanizëm të vetëm, ku disa pajisje ndikojnë në sjelljen e të tjerave.
Po ashtu, do të theksoj se mënyra e zgjedhur e ruajtjes së skenarëve (vetëm në pajisjet e veta, dhe jo në server), thjeshton kalimin e pajisjeve që funksionojnë tashmë në një server tjetër, për shembull në Raspberry-n tuaj shtëpiak. instruksion.

Kaq për këtë, do të isha i lumtur të dëgjoj këshilla dhe kritika konstruktive.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster