I-athikili emayelana nendlela yokudala isilawuli se-logic esihlelekayo kusuka kudivayisi eshibhile yama-Chinese. Idivayisi enjalo izothola ukusetshenziswa kwayo kokubili ku-automation yasekhaya kanye namakilasi asebenzayo esikoleni sesayensi yekhompyutha.
Ukuze uthole ireferensi, ngokuzenzakalelayo uhlelo lwe-Sonoff Basic lusebenza nohlelo lokusebenza lweselula ngesevisi yamafu yesiShayina; ngemva koshintsho oluhlongozwayo, konke okunye ukusebenzisana nale divayisi kuzokwenzeka esipheqululini.
Isigaba I. Ixhuma i-Sonoff kusevisi ye-MGT24
Isinyathelo 1: Dala iphaneli yokulawula
Bhalisa kusayithi
Ngena ngemvume
Ukuze udale iphaneli yokulawula yedivayisi entsha, chofoza inkinobho ethi "+".
Isibonelo sokudala iphaneli
Uma iphaneli selidaliwe, lizovela ohlwini lwakho lwamaphaneli.
Kuthebhu ethi "Setha" yephaneli edaliwe, thola izinkambu "I-ID Yedivayisi" kanye "Nokhiye Wokugunyaza"; ngokuzayo, lolu lwazi luzodingeka lapho usetha idivayisi ye-Sonoff.
Isibonelo sethebhu
Isinyathelo 2. Khanyisa kabusha idivayisi
Ukusebenzisa uhlelo
Isinyathelo 3. Ukusethwa kwedivayisi
Faka amandla kudivayisi, ngemva kokuthi i-LED ikhanyisiwe, cindezela inkinobho bese uyibamba icindezelwe kuze kube yilapho i-LED iqala ukukhanya ngezikhathi ezithile ngokulinganayo.
Ngalesi sikhathi, kuzovela inethiwekhi entsha ye-wi-fi ebizwa ngokuthi “PLC Sonoff Basic”, xhuma ikhompuyutha yakho kule nethiwekhi.
Incazelo yenkomba ye-LED
Isibonisi se-LED
Isimo Sedivayisi
ukukhanya okuphindwe kabili ngezikhathi ezithile
akukho uxhumano kumzila
kukhanya njalo
uxhumano lusungulwe nge-router
iyunifomu ekhanyayo ngezikhathi ezithile
imodi yephoyinti lokufinyelela i-wi-fi
icinyiwe
Akukho ukunikezwa kwamandla
Vula isiphequluli se-inthanethi bese ufaka umbhalo othi “192.168.4.1” kubha yekheli, hamba ekhasini lezilungiselelo zenethiwekhi yedivayisi.
Gcwalisa izinkambu kanje:
- “Igama lenethiwekhi” kanye “Nephasiwedi” (ukuxhuma idivayisi kumzila wakho we-wi-fi yasekhaya).
- “I-ID Yedivayisi” kanye “Nokhiye Wokugunyaza” (ukugunyaza idivayisi kusevisi ye-MGT24).
Isibonelo sokusetha amapharamitha enethiwekhi yedivayisi
Londoloza izilungiselelo bese uqalisa kabusha idivayisi.
kuyinto
Isinyathelo 4. Ukuxhuma izinzwa (kuyakhetheka)
I-firmware yamanje isekela izinzwa zokushisa ezifika kwezine ze-ds18b20. Lapha
Isigaba II. Uhlelo olubonakalayo
Isinyathelo 1: Dala Imibhalo
Isetshenziswa njengendawo yokuhlela
Ngengeze amabhlogo akhethekile okubhala nokufunda amapharamitha wedivayisi. Noma iyiphi ipharamitha ifinyelelwa ngegama. Kumapharamitha wamadivayisi akude, amagama ahlanganisiwe asetshenziswa: “ipharamitha@device”.
Uhlu olwehliswayo lwezinketho
Isibonelo sesimo sokuvula nokuvala umthwalo nge-cyclic (1Hz):
Isibonelo sombhalo ovumelanisa ukusebenza kwamadivayisi amabili ahlukene. Okungukuthi, i-relay yedivayisi eqondiwe iphinda ukusebenza kwe-relay yedivayisi ekude.
Isimo se-thermostat (ngaphandle kwe-hysteresis):
Ukuze udale imibhalo eyinkimbinkimbi, ungasebenzisa okuguquguqukayo, amalophu, imisebenzi (enezimpikiswano) nezinye izakhiwo. Ngeke ngikuchaze ngokuningiliziwe konke lokhu lapha; sekuvele kuningi kunetha.
Isinyathelo sesi-2: Ukuhleleka Kwemibhalo
Iskripthi sisebenza ngokuqhubekayo, futhi ngokushesha nje lapho sifika ekupheleni, siqala futhi. Kulesi simo, kunamabhulokhi amabili angamisa okwesikhashana iskripthi, "ukubambezela" kanye "nokumisa kancane".
Ibhulokhi "yokulibazisa" isetshenziselwa ukubambezeleka kwe-millisecond noma i-microsecond. Le block igcina ngokuqinile isikhawu sesikhathi, ivimba ukusebenza kwayo yonke idivayisi.
Ibhulokhi "yokumisa okwesikhashana" isetshenziselwa ukubambezeleka kwesibili (noma ngaphansi), futhi ayivimbi ukwenziwa kwezinye izinqubo kudivayisi.
Uma iskripthi ngokwaso siqukethe iluphu engapheli, indikimba yayo engaqukathi "ikhefu", umhumushi ngokuzimela uqala ukumisa kancane.
Uma isitaki sememori esabelwe siphelile, umhumushi uzoyeka ukusebenzisa iskripthi esilambele amandla (qaphela imisebenzi ephindaphindayo).
Isinyathelo sesi-3: Ukulungisa iphutha Izikripthi
Ukuze ulungise isikripthi esesivele silayishwe kudivayisi, ungaqalisa uhlelo lokulandelela isinyathelo ngesinyathelo. Lokhu kungaba wusizo kakhulu lapho ukuziphatha kombhalo kuvela kuhlukile kulokho umlobi ayekuhlosile. Kulesi simo, ukulandelela kuvumela umbhali ukuthi athole ngokushesha umthombo wenkinga futhi alungise iphutha kusikripthi.
Isimo sokubala i-factorial kumodi yokususa iphutha:
Ithuluzi lokususa iphutha lilula kakhulu futhi liqukethe izinkinobho ezintathu eziyinhloko: "qala", "isinyathelo esisodwa phambili" kanye "nokumisa" (masingakhohlwa futhi mayelana nemodi yokususa iphutha elithi "ngena" kanye "nophuma". Ngokungeziwe ekulandeleni isinyathelo ngesinyathelo, ungasetha indawo yokuphumula kunoma iyiphi ibhulokhi (ngokuchofoza ibhulokhi).
Ukuze ubonise amanani wamanje wamapharamitha (izinzwa, ama-relays) kumonitha, sebenzisa ibhulokhi ethi "phrinta".
kuyinto
Isigaba sabafuna ukwazi. Yini ngaphansi kwesivalo?
Ukuze imibhalo isebenze kudivayisi eqondiwe, kwasungulwa umhumushi we-bytecode kanye nesihlanganisi esinemiyalelo engama-38. Ikhodi yomthombo kaBlockly inekhodi ekhethekile ekhiqiza amakhodi eyakhelwe kuyo eguqula amabhulokhi abonakalayo abe yimiyalelo yomhlangano. Kamuva, lolu hlelo lokuhlanganisa luguqulwa lube yi-bytecode futhi ludluliselwe kudivayisi ukuze lusetshenziswe.
Isakhiwo salo mshini we-virtual silula futhi akukho phuzu elithile ekulichazeni; ku-inthanethi uzothola izihloko eziningi mayelana nokuklama imishini elula kakhulu.
Ngivamise ukwaba amabhayithi angu-1000 esitaki somshini wami we-virtual, okwanele ukushiya. Yebo, ukuphindaphinda okujulile kungaqeda noma yisiphi isitaki, kodwa mancane amathuba okuthi kube nokusetshenziswa okungokoqobo.
I-bytecode ewumphumela ihlangene impela. Njengesibonelo, i-bytecode yokubala i-factorial efanayo ingamabhayithi angu-49 kuphela. Nansi indlela yayo yokubuka:
Futhi lolu uhlelo lwakhe lokuhlanganisa:
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
Uma indlela yokuhlanganisa yokumelela ingenalo inani elingokoqobo, khona-ke ithebhu ethi “javascrit”, ngokuphambene, inikeza ukubukeka okujwayeleke kakhulu kunamabhulokhi abonakalayo:
function factorial(num) {
if (num > 1) {
return num + factorial(num - 1);
}
return 1;
}
window.alert(factorial(10));
Mayelana nokusebenza. Lapho ngisebenzisa iskripthi esikhanyayo esilula, ngathola igagasi lesikwele elingu-47 kHz esikrinini se-oscilloscope (ngejubane lewashi leprosesa elingu-80 MHz).
Ngicabanga ukuthi lokhu kuwumphumela omuhle, okungenani lesi sivinini sishesha cishe izikhathi eziyishumi kune
Ingxenye yokugcina
Ukufingqa, ngizosho ukuthi ukusetshenziswa kweskripthi kusivumela ukuthi singagcini nje ukuhlela umqondo wokusebenza kwedivayisi ehlukile, kodwa futhi kwenza kube nokwenzeka ukuxhuma amadivaysi amaningana kumshini owodwa, lapho amanye amadivaysi ethonya ukuziphatha kwabanye.
Ngiyaqaphela futhi ukuthi indlela ekhethiwe yokugcina imibhalo (ngokuqondile kumadivayisi ngokwawo, hhayi kuseva) yenza kube lula ukushintsha amadivaysi asevele esebenza kwenye iseva, ngokwesibonelo kuRaspberry wasekhaya, lapha.
Yilokho kuphela, ngizojabula ukuzwa izeluleko nokugxeka okwakhayo.
Source: www.habr.com