Bernameya Visual ji bo Sonoff Basic

Bernameya Visual ji bo Sonoff Basic
Gotarek li ser meriv çawa ji amûrek çînî ya erzan kontrolkerek mantiqa bernamekirî biafirîne. Amûrek wusa dê hem di otomasyona malê de hem jî wekî tetbîqatên pratîkî di zanistiya computerê ya dibistanê de serîlêdana xwe bibîne.
Ji bo referansê, ji hêla xwerû, bernameya Sonoff Basic bi serîlêdanek mobîl bi navgîniya karûbarek cloudê ya Chineseînî re dixebite, piştî guhertina pêşniyarkirî, hemî pêwendiya din bi vê cîhazê re dê di gerokê de gengaz bibe.

Beşa I Girêdana Sonoff bi Karûbarê MGT24

Gav 1. Create a control panel

Li ser malperê qeyd bikin mgt24 (eger ne jixwe qeydkirî be) û bi hesabê xwe têkevin.
Têkevin pergalêBernameya Visual ji bo Sonoff Basic

Ji bo çêkirina panelek kontrolê ji bo amûrek nû, li ser bişkoka "+" bikirtînin.
Mînaka çêkirina panelêBernameya Visual ji bo Sonoff Basic

Dema ku panelek hate afirandin, ew ê di navnîşa panelên we de xuya bibe.

Di tabloya "Sazkirinê" ya panela hatî afirandin de, zeviyên "Nasnameya Amûra" û "Kîlava Destûrdariyê" bibînin, di pêşerojê de, dema mîhengkirina cîhaza Sonoff dê ev agahdarî hewce bike.
Tab NimûneBernameya Visual ji bo Sonoff Basic

Gav 2. Bişkojka amûrê

Bikaranîna karûbar XTCOM_UTIL firmware dakêşin Sonoff Basic PLC di cîhazê de, ji bo vê yekê hûn hewceyê veguherînerek USB-TTL. Vir destûra и Rêbernameya vîdyoyê.

Gav 3. Setup Device

Hêza cîhazê, piştî ku LED ronî bibe, bişkojkê bikirtînin û wê bihêlin heya ku LED dest bi periyodîk bi rengek wekhev bibiriqîne.
Di vê gavê de, tora wi-fi ya nû ya bi navê "PLC Sonoff Basic" dê xuya bibe, komputera xwe bi vê torê ve girêdin.
Deşîfrekirina nîşana LED

nîşana LED
Rewşa Device

ronahiya dualî ya navber
girêdana routerê tune

berdewam dibiriqe
pêwendiya bi routerê re saz kirin

biriqîna navber
moda wifi ya hotspot

vemirandin
Ne dabînkirina hêzê

Gerokek Înternetê vekin û nivîsa "192.168.4.1" têkevin barika navnîşan, biçin rûpela mîhengên torê ya cîhazê.

Qadan bi vî rengî dagirin:

  • "Navê torê" û "Şîfre" (ji bo girêdana amûrê bi routerek wi-fi ya malê).
  • "Nasnameya cîhazê" û "Kîlîda Destûrdanê" (ji bo destûrdayîna amûrê li ser karûbarê MGT24).

Mînak ji bo veavakirina mîhengên torê yên makîneyêBernameya Visual ji bo Sonoff Basic

Mîhengên xwe hilînin û amûrê xwe ji nû ve bidin destpêkirin.
Ev e Rêbernameya vîdyoyê.

Gav 4 Sensoran girêdin (vebijarkî)

Firmware ya heyî heya çar senzorên germahiya ds18b20 piştgirî dike. Vir Rêbernameya vîdyoyê ji bo sazkirina sensor. Xuya ye, ev gav dê ya herî dijwar be, ji ber ku ew ê ji we re çekên rast û hesinek zirav hewce bike.

Beşa II. bernameya dîtbarî

Gav 1. Nivîsandin

Wek hawirdora bernamekirinê tê bikaranîn Barkirî, fêrbûna hawîrdor hêsan e, ji ber vê yekê hûn ne hewce ne ku hûn bernamenûs bin ku hûn nivîsarên hêsan biafirînin.

Min blokên pispor ji bo nivîsandin û xwendina parametreyên cîhazê lê zêde kir. Her parametre bi navê xwe tê gihîştin. Ji bo pîvanên cîhazên dûr, navên tevlihev têne bikar anîn: "parameter@device".
Drop-down lîsteya vebijêrkanBernameya Visual ji bo Sonoff Basic

Nimûneyek senaryoyek ji bo bisiklêdana barkirinê û jêbirin (1Hz):
Bernameya Visual ji bo Sonoff Basic

Nimûneyek nivîsarek ku xebata du cîhazên cihêreng hevdeng dike. Ango, releya cîhaza armancê operasyona releya cîhaza dûr dubare dike.
Bernameya Visual ji bo Sonoff Basic

Senaryoya ji bo termostatê (bêyî hîsterez):
Bernameya Visual ji bo Sonoff Basic

Ji bo afirandina nivîsarên tevlihevtir, hûn dikarin guhêrbar, loop, fonksiyonan (bi argumanan) û avahiyên din bikar bînin. Ez ê van hemîyan bi hûrgulî li vir venabêjim, jixwe li ser torê pir pir hene. materyalê fêrbûna li ser Blockly.

Gav 2. Fermana cîbicîkirina senaryoyan

Skrîpt bi domdarî dimeşe, û gava ku ew digihîje dawiya xwe, dîsa dest pê dike. Di vê rewşê de, du blokên ku dikarin bi demkî skrîptê rawestînin hene, "dereng" û "sekinandin".
Bloka "dereng" ji bo derengiyên milîsecond an mîkrosaniye tê bikar anîn. Vê blokê bi hişkî navberê diparêze, xebata tevahiya cîhazê asteng dike.
Bloka "pause" ji bo çirkeyan (dibe ku kêmtir) dereng tê bikar anîn, û ew pêkanîna pêvajoyên din ên di cîhazê de asteng nake.
Heger senaryo di nava xwe de xelekek bêdawî hebe, ku di laşê wê de "rawestin" tune be, wergêr bi serê xwe rawestek piçûk dide destpêkirin.
Ger stûna bîranînê ya veqetandî biqede, wergêr dê cîbicîkirina skrîptek wusa dilşewat rawestîne (ji fonksiyonên paşverû hişyar be).

Gav 3 Debuggkirina nivîsarên

Ji bo verastkirina skrîptek ku berê di cîhazê de hatî barkirin, hûn dikarin gav bi gav dest bi şopandina bernameyê bikin. Dema ku behremendiya senaryoyê ne ya ku mebesta nivîskar e ev dikare pir bikêr be. Di vê rewşê de, şopandin dihêle ku nivîskar zû çavkaniya pirsgirêkê bibîne û xeletiya di skrîptê de rast bike.

Nivîsara hesabkirina faktorî di moda debugê de:
Bernameya Visual ji bo Sonoff Basic

Amûra debugkirinê pir hêsan e û ji sê bişkokên sereke pêk tê: "destpêk", "gavek pêşde" û "raweste" (moda çewtiyê "nav" û "derketin" ji bîr neke). Ji bilî şopandina gav-bi-gav, hûn dikarin li ser her blokê xalek veqetandinê saz bikin (bi klîkkirina blokê bi mişkê ve).
Ji bo ku nirxên heyî yên parametreyan (sensor, rele) li ser ekranê nîşan bidin, bloka "çapkirinê" bikar bînin.
Ev e vîdyoya giştî li ser bikaranîna debugger.

Beşa ji bo meraqan. Û çi di bin kulikê de ye?

Ji bo ku skrîptên li ser cîhaza mebest bixebitin, ji bo 38 talîmatan wergêrek bytecode û berhevkarek hate çêkirin. Hilberînerek kodê ya pispor di koda çavkaniya blokê de hatî çêkirin, ku blokên dîtbar diguhezîne rêwerzên komker. Di pêşerojê de, ev bernameya assembler di nav bytecode de tê veguheztin û ji bo darvekirinê veguhezîne cîhazê.
Mîmariya vê makîneya virtual pir hêsan e û ti wateya wê tune ye, hûn ê li ser torê gelek gotaran li ser sêwirana makîneyên virtual yên herî hêsan bibînin.
Di binê stûyê makîneya xweya virtual de, ez bi gelemperî 1000 byte veqetînim, ev bi marjînal bes e. Bê guman, vegerandinên kûr dikarin her stûyê westînin, lê ne gengaz e ku ew karanîna pratîkî bin.

Bîtekoda ku di encamê de tê peyda kirin pir tevlihev e. Wek nimûne, bytecode ji bo hesabkirina heman faktorî tenê 49 byte ye. Ev forma pêşkêşkirina dîtbarî ya wê ye:
Bernameya Visual ji bo Sonoff Basic

Û ev bernameya assembler ya wî ye:

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

Ger forma berhevokê ya pêşkêşkirinê xwedan nirxek pratîkî nebe, wê hingê tabloya "javascript", berevajî vê, ji blokên dîtbarî bêtir nastir dide:

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

window.alert(factorial(10));

Wekî ku ji bo performansa. Dema ku skrîpta flasher a herî hêsan dimeşîne, li ser ekrana oscilloskopê, min meanderek 47kHz (bi leza demjimêra pêvajoyê ya 80MHz) girt.
Bernameya Visual ji bo Sonoff BasicBernameya Visual ji bo Sonoff Basic
Ez vê yekê encamek baş dibînim, bi kêmanî ev lez hema hema deh carî ji wê zûtir e Lua и espruino.

Beşa dawî

Bi kurtasî, ez ê bibêjim ku karanîna nivîsan rê dide me ku em ne tenê mentiqê xebata yek amûrek bername bikin, lê di heman demê de gengaz dike ku çend cîhazan bi mekanîzmek yekane ve girêbidin, li cihê ku yek amûrek bandorê li tevgera yên din dike.
Di heman demê de ez not dikim ku awayê hilbijartî yê hilanîna nivîsan (rasterast di cîhazan de bixwe, û ne li ser serverê) veguheztina cîhazên ku berê dixebitin li serverek din hêsan dike, mînakî, li Raspberryek malê, li vir destûra.

Tenê ev e, ez ê kêfxweş bibim ku şîret û rexneyên çêker bibihîzim.

Source: www.habr.com

Add a comment