Grein um hvernig á að búa til forritanlega rökstýringu úr ódýru kínversku tæki. Slíkt tæki mun nýtast bæði í sjálfvirkni heima og sem verklegir tímar í skólatölvufræði.
Til viðmiðunar, Sonoff Basic forritið virkar sjálfgefið með farsímaforriti í gegnum kínverska skýjaþjónustu; eftir fyrirhugaða breytingu verður öll frekari samskipti við þetta tæki möguleg í vafranum.
Kafli I. Að tengja Sonoff við MGT24 þjónustuna
Skref 1: Búðu til stjórnborð
Skráðu þig á síðunni
Innskráning
Til að búa til stjórnborð fyrir nýtt tæki, smelltu á „+“ hnappinn.
Dæmi um að búa til pallborð
Þegar spjaldið er búið til mun það birtast á listanum þínum yfir spjaldið.
Í flipanum „Uppsetning“ á spjaldinu sem búið var til, finndu reitina „Auðkenni tækis“ og „Heimildarlykill“; í framtíðinni verða þessar upplýsingar nauðsynlegar þegar Sonoff tækið er sett upp.
Dæmi um flipa
Skref 2. Endurræstu tækið
Að nota tólið
Skref 3. Uppsetning tækis
Settu rafmagn á tækið, eftir að ljósdíóðan kviknar, ýttu á hnappinn og haltu honum inni þar til ljósdíóðan byrjar að blikka reglulega jafnt og þétt.
Á þessari stundu mun nýtt Wi-Fi net sem kallast „PLC Sonoff Basic“ birtast, tengdu tölvuna þína við þetta net.
Útskýring á LED vísbendingu
LED vísbending
Staða tækis
reglubundið tvöfalt blikkandi
engin tenging við router
skín stöðugt
tengingu komið á við beininn
reglubundið einkennisbúningur blikkandi
Wi-Fi aðgangsstaðastilling
slökkt
Engin aflgjafi
Opnaðu netvafra og sláðu inn textann „192.168.4.1“ í veffangastikuna, farðu á netstillingasíðu tækisins.
Fylltu út reitina sem hér segir:
- „Netkerfisheiti“ og „Lykilorð“ (til að tengja tækið við Wi-Fi heimabeini).
- „Device ID“ og „Authorization key“ (til að heimila tækið á MGT24 þjónustunni).
Dæmi um að stilla netfæribreytur tækis
Vistaðu stillingarnar og endurræstu tækið.
Hér
Skref 4. Að tengja skynjara (valfrjálst)
Núverandi vélbúnaðar styður allt að fjóra ds18b20 hitaskynjara. Hérna
Kafli II. Sjónræn forritun
Skref 1: Búðu til forskriftir
Notað sem forritunarumhverfi
Ég bætti við sérhæfðum kubbum til að skrifa og lesa tækifæri. Hægt er að nálgast hvaða færibreytu sem er með nafni. Fyrir færibreytur ytra tækja eru samsett heiti notuð: „parameter@device“.
Fellilisti yfir valkosti
Dæmi um að kveikja og slökkva á álagi í hringrás (1Hz):
Dæmi um handrit sem samstillir rekstur tveggja aðskildra tækja. Nefnilega endurtekur gengi marktækisins virkni gengis ytra tækisins.
Atburðarás fyrir hitastillir (án hysteresis):
Til að búa til flóknari forskriftir er hægt að nota breytur, lykkjur, föll (með rökum) og aðrar smíðar. Ég mun ekki lýsa þessu öllu í smáatriðum hér; það er nú þegar töluvert mikið á netinu.
Skref 2: Röð handrita
Handritið keyrir stöðugt og um leið og það nær endanum byrjar það aftur. Í þessu tilviki eru tvær blokkir sem geta gert tímabundið hlé á handritinu, „seinkað“ og „hlé“.
"Töf" blokkin er notuð fyrir millisekúndu eða míkrósekúndu tafir. Þessi blokk heldur nákvæmlega tímabilinu og hindrar virkni alls tækisins.
„Hlé“ blokkin er notuð fyrir seinni (eða minni) tafir og hún hindrar ekki framkvæmd annarra ferla í tækinu.
Ef handritið sjálft inniheldur óendanlega lykkju, þar sem meginmálið inniheldur ekki „hlé“, byrjar túlkurinn sjálfstætt stutta hlé.
Ef úthlutað minnisstafla er uppurið mun túlkurinn hætta að keyra slíka kraftþunga forskrift (farið varlega með endurkvæmar aðgerðir).
Skref 3: Kembiforrit
Til að kemba smáforrit sem þegar hefur verið hlaðið inn í tækið geturðu keyrt forritaspor skref fyrir skref. Þetta getur verið mjög gagnlegt þegar hegðun handritsins reyndist vera önnur en höfundur ætlaði. Í þessu tilviki gerir rakning höfundi kleift að finna fljótt upptök vandans og leiðrétta villuna í handritinu.
Atburðarás til að reikna út þáttaskil í villuleitarham:
Kembiforritið er mjög einfalt og samanstendur af þremur aðalhnöppum: „byrja“, „eitt skref fram á við“ og „stöðva“ (gleymum heldur ekki „enter“ og „exit“ kembiforrit). Auk þess að rekja skref fyrir skref, geturðu stillt brotpunkt á hvaða reit sem er (með því að smella á reitinn).
Til að sýna núverandi gildi færibreyta (skynjara, liða) á skjánum, notaðu „prenta“ blokkina.
Hér
Hluti fyrir forvitna. Hvað er undir húddinu?
Til þess að forskriftirnar virkuðu á marktækinu var þróaður bækikóðatúlkur og assembler með 38 leiðbeiningum. Frumkóði Blockly er með sérhæfðan kóðarafall innbyggðan sem breytir sjónrænum kubbum í samsetningarleiðbeiningar. Í kjölfarið er þessu samsetningarforriti breytt í bætikóða og flutt í tækið til framkvæmdar.
Arkitektúr þessarar sýndarvélar er frekar einfaldur og það er enginn sérstakur tilgangur að lýsa henni; á Netinu er að finna margar greinar um að hanna einföldustu sýndarvélarnar.
Ég úthluta venjulega 1000 bætum fyrir stafla sýndarvélarinnar minnar, sem er nóg til vara. Auðvitað geta djúpar endurtekningar tæmt hvaða stafla sem er, en ólíklegt er að þær hafi hagnýtt gagn.
Bætiskóðinn sem myndast er frekar þéttur. Sem dæmi er bætikóði til að reikna út sömu þáttatölu aðeins 49 bæti. Þetta er sjónræn form þess:
Og þetta er assembler forritið hans:
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
Ef samsetningarformið fyrir framsetningu hefur ekki hagnýtt gildi, þá gefur „javascrit“ flipinn þvert á móti kunnuglegra útlit en sjónrænar blokkir:
function factorial(num) {
if (num > 1) {
return num + factorial(num - 1);
}
return 1;
}
window.alert(factorial(10));
Varðandi frammistöðu. Þegar ég keyrði einfaldasta flasher scriptið fékk ég 47 kHz ferhyrningsbylgju á sveiflusjá skjánum (á örgjörva klukkuhraða 80 MHz).
Mér finnst þetta góður árangur, allavega er þessi hraði næstum tífalt meiri en
Endanleg hluti
Til að draga saman, mun ég segja að notkun forskrifta gerir okkur ekki aðeins kleift að forrita rökfræði reksturs sérstaks tækis, heldur gerir það einnig mögulegt að tengja nokkur tæki í einn vélbúnað, þar sem sum tæki hafa áhrif á hegðun annarra.
Ég tek líka fram að valin aðferð við að geyma forskriftir (beint í tækjunum sjálfum, en ekki á þjóninum) einfaldar skiptingu tækja sem þegar eru í notkun yfir á annan netþjón, til dæmis yfir á Raspberry heima, hér
Það er allt, ég mun vera ánægð að heyra ráðleggingar og uppbyggilega gagnrýni.
Heimild: www.habr.com