Inqaku elimalunga nendlela yokwenza isilawuli sengqiqo ecwangcisiweyo kwisixhobo samaTshayina esitshiphu. Isixhobo esinjalo siya kufumana ukusetyenziswa kwayo kokubini kwi-automation yasekhaya kunye neeklasi ezisebenzayo kwisayensi yekhompyuter yesikolo.
Ukwenzela ireferensi, ngokungagqibekanga inkqubo yeSiseko yeSonoff isebenza kunye nesicelo esiphathwayo ngenkonzo yelifu yaseTshayina; emva kohlengahlengiso olucetywayo, lonke unxibelelwano oluqhubekayo nesi sixhobo luyakwenzeka kwibhrawuza.
Icandelo I. Ukuqhagamshela iSonoff kwinkonzo ye-MGT24
Inyathelo 1: Yenza ipaneli yolawulo
Bhalisa kwisiza
Ngena
Ukwenza indawo yolawulo yesixhobo esitsha, cofa kwiqhosha elithi "+".
Umzekelo wokudala iphaneli
Nje ukuba indawo yolawulo yenziwe, iya kuvela kuluhlu lwakho lweephaneli.
Kwithebhu ethi "Setup" yephaneli eyenziweyo, fumana i-ID yesixhobo kunye ne "Isitshixo soGunyaziso" amasimi; kwixesha elizayo, olu lwazi luya kufuneka xa ucwangcisa isixhobo seSonoff.
Umzekelo wethebhu
Inyathelo 2. Hlaziya isixhobo kwakhona
Ukusebenzisa isixhobo
Inyathelo 3. Ukuseta isixhobo
Faka amandla kwisixhobo, emva kokukhanyisa kwe-LED, cofa iqhosha kwaye ulibambe licofe de i-LED iqalise ukudanyaza ngamaxesha athile ngokulinganayo.
Ngeli xesha, inethiwekhi entsha ye-wi-fi ebizwa ngokuba yi-"PLC Sonoff Basic" iya kuvela, qhagamshela ikhompyutha yakho kule nethiwekhi.
Inkcazo yesalathisi se-LED
Isibonakaliso se-LED
Ubume besixhobo
ukudanyaza kabini ngamaxesha
akukho nxibelelwano kwi-router
likhanya rhoqo
uqhagamshelo lusekiwe nge-router
ukudanyaza kweyunifomu ngamaxesha athile
imowudi yendawo yokufikelela kwi-wi-fi
icinyiwe
Akukho mbane
Vula isikhangeli se-Intanethi kwaye ufake umbhalo othi "192.168.4.1" kwibha yedilesi, yiya kwiphepha lesethingi yenethiwekhi yesixhobo.
Gcwalisa iindawo ngolu hlobo lulandelayo:
- "Igama lenethiwekhi" kunye "nePassword" (ukudibanisa isixhobo kwirutha ye-wi-fi yasekhaya).
- βI-ID yesixhoboβ kunye βneqhosha logunyazisoβ (ukugunyazisa isixhobo kwinkonzo ye-MGT24).
Umzekelo wokuseta iiparamitha zenethiwekhi yesixhobo
Gcina useto kwaye uqalise kwakhona isixhobo.
kuyinto
Inyathelo 4. Ukuqhagamshela izixhobo zoluvo (ukhetho)
I-firmware yangoku ixhasa ukuya kuthi ga kwi-ds18b20 izinzwa zobushushu ezine. Apha
Icandelo II. Udweliso lwenkqubo olubonakalayo
Inyathelo 1: Yenza izikripthi
Isetyenziswa njengendawo yokucwangcisa
Ndongeze iibhloko ezikhethekileyo zokubhala nokufunda iiparamitha zesixhobo. Nayiphi na iparameter ifikeleleka ngegama. Kwiiparameters zezixhobo ezikude, amagama ahlanganisiweyo asetyenziswa: "iparameter@device".
Uluhlu oluhlayo lokhetho
Umzekelo wemeko yokuvula nokucima umthwalo ngomjikelo (1Hz):
Umzekelo weskripthi esingqamanisa ukusebenza kwezixhobo ezibini ezahlukeneyo. Oko kukuthi, i-relay yesixhobo ekujoliswe kuyo iphinda ukusebenza kogqithiso lwesixhobo esikude.
Imeko ye-thermostat (ngaphandle kwe-hysteresis):
Ukwenza izikripthi ezinzima ngakumbi, ungasebenzisa izinto eziguquguqukayo, iilophu, imisebenzi (kunye neengxabano) kunye nezinye izakhiwo. Andizukuchaza yonke le nto ngokweenkcukacha apha; sele kuninzi kakhulu kwi-Intanethi.
Inyathelo 2: Ulandelelwano lwezikripthi
Iskripthi siqhuba ngokuqhubekayo, kwaye ngokukhawuleza ukuba sifikelele ekupheleni, siqala kwakhona. Kule meko, kukho iibhloko ezimbini ezinokumisa okwethutyana iskripthi, "ukulibazisa" kunye "nokumisa".
Ibhloko "yokulibazisa" isetyenziselwa ukulibaziseka kwe-millisecond okanye i-microsecond. Le block igcina ngokungqongqo ixesha lokuphumla, ivalela ukusebenza kwesixhobo sonke.
Ibhloko "yekhefu" isetyenziselwa ukulibaziseka kwesibini (okanye ngaphantsi), kwaye ayithinteli ukuphunyezwa kwezinye iinkqubo kwisixhobo.
Ukuba iskripthi ngokwaso siqulethe i-loop engapheliyo, umzimba wayo ongenayo "ikhefu", itoliki iqalisa ngokuzimeleyo ikhefu elifutshane.
Ukuba uvimba wenkumbulo owabelweyo uphelile, itoliki iya kuyeka ukwenza umbhalo olambayo onjalo (lumkela imisebenzi ephindaphindayo).
Inyathelo 3: Ukulungisa iimpazamo kwiscripts
Ukulungisa iscript esele silayishiwe kwisixhobo, ungaqhuba inkqubo yokulandelela inyathelo ngenyathelo. Oku kunokuba luncedo kakhulu xa indlela yokuziphatha yeskripthi ibonakala yahlukile kwinto ecetywa ngumbhali. Kule meko, ukulandelela kuvumela umbhali ukuba afumane ngokukhawuleza umthombo wengxaki kwaye alungise impazamo kwiskripthi.
Imeko yokubala i-factorial kwimo ye-debug:
Isixhobo sokucoca silula kakhulu kwaye siquka amaqhosha amathathu aphambili: "ukuqala", "inyathelo elinye phambili" kunye "nokuyeka" (masingakulibali malunga "nokungena" kunye "nokuphuma" kwimodi yokucoca). Ukongeza ekulandeleni inyathelo ngenyathelo, unokuseta indawo yokuphumla kuyo nayiphi na ibhloko (ngokuchofoza kwibhloko).
Ukubonisa amaxabiso angoku eparameters (iinzwa, iirelays) kwimonitha, sebenzisa ibhloko "yokushicilela".
kuyinto
Icandelo labanomdla. Yintoni phantsi kwe-hood?
Ukuze izikripthi zisebenze kwisixhobo ekujoliswe kuso, itoliki ye-bytecode kunye ne-assembler enemiyalelo engama-38 yaphuhliswa. Ikhowudi yomthombo kaBlockly inejenereyitha yekhowudi ekhethekileyo eyakhelwe kuyo eguqula iibhloko ezibonakalayo zibe yimiyalelo yendibano. Emva koko, le nkqubo yokuhlanganisa iguqulwa ibe yi-bytecode kwaye idluliselwe kwisixhobo ukuze iphunyezwe.
Uyilo lwalo matshini wenyani lulula kwaye akukho nqaku lithile lokuluchaza; kwi-Intanethi uya kufumana amanqaku amaninzi malunga nokuyila abona matshini balula benyani.
Ndidla ngokunikezela nge-1000 ye-bytes kwi-stack yomatshini wam wenyani, owaneleyo ukuba angagcinwa. Ewe kunjalo, ukuphindaphinda okunzulu kunokuphelisa nasiphi na isitakhi, kodwa akunakwenzeka ukuba nokusetyenziswa okusebenzayo.
I-bytecode enesiphumo ixinene kakhulu. Njengomzekelo, i-bytecode yokubala i-factorial efanayo yi-49 bytes kuphela. Le yimbonakalo yayo:
Kwaye le yinkqubo yakhe yokuhlanganisa:
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
Ukuba indibano yokumelwa ayinalo naliphi na ixabiso elisebenzayo, ke ithebhu ye "javascrit", ngokuchaseneyo, inika inkangeleko eqhelekileyo kuneebhloko ezibonakalayo:
function factorial(num) {
if (num > 1) {
return num + factorial(num - 1);
}
return 1;
}
window.alert(factorial(10));
Ngokumalunga nokusebenza. Xa ndibaleka esona sikripthi silula, ndafumana i47 kHz square wave kwiscreen se-oscilloscope (ngesantya sewotshi ye80 MHz).
Ndicinga ukuba esi sisiphumo esihle, ubuncinane esi santya siphantse siphindwe kalishumi kunoko
Inxalenye yokugqibela
Ukushwankathela, ndiza kuthetha ukuba ukusetyenziswa kwezikripthi kusivumela ukuba singagcini nje ukucwangcisa ingqiqo yokusebenza kwesixhobo esahlukileyo, kodwa kwenza kube lula ukudibanisa izixhobo ezininzi kwindlela enye, apho ezinye izixhobo zichaphazela ukuziphatha kwabanye.
Ndikwaqaphela ukuba indlela ekhethiweyo yokugcina izikripthi (ngokuthe ngqo kwizixhobo ngokwazo, kwaye kungekhona kumncedisi) yenza lula ukutshintsha izixhobo esele zisebenza kwenye iseva, umzekelo kwiRaspberry yasekhaya, apha.
Kuphelele apho, ndingavuya ukuva iingcebiso kunye nokugxekwa okwakhayo.
umthombo: www.habr.com