Visuaalinen ohjelmointi Sonoff Basicille

Visuaalinen ohjelmointi Sonoff Basicille
Artikkeli ohjelmoitavan logiikkaohjaimen luomisesta halvasta kiinalaisesta laitteesta. Tällaista laitetta käytetään sekä kotiautomaatiossa että käytännön tunneilla koulun tietojenkäsittelyssä.
Viitteeksi, oletusarvoisesti Sonoff Basic -ohjelma toimii mobiilisovelluksen kanssa kiinalaisen pilvipalvelun kautta; ehdotetun muutoksen jälkeen kaikki muu vuorovaikutus tämän laitteen kanssa on mahdollista selaimessa.

Osa I. Sonoffin yhdistäminen MGT24-palveluun

Vaihe 1: Luo ohjauspaneeli

Rekisteröidy sivustolla mgt24 (jos et ole jo rekisteröitynyt) ja kirjaudu sisään tililläsi.
jäsenkirjautuminenVisuaalinen ohjelmointi Sonoff Basicille

Luo ohjauspaneeli uudelle laitteelle napsauttamalla +-painiketta.
Esimerkki paneelin luomisestaVisuaalinen ohjelmointi Sonoff Basicille

Kun paneeli on luotu, se näkyy paneeliluettelossasi.

Etsi luodun paneelin "Setup"-välilehdeltä "Device ID"- ja "Authorization Key" -kentät, joita tarvitaan jatkossa Sonoff-laitetta määritettäessä.
Esimerkki välilehdestäVisuaalinen ohjelmointi Sonoff Basicille

Vaihe 2. Päivitä laite

Apuohjelman käyttäminen XTCOM_UTIL lataa laiteohjelmisto PLC Sonoff Basic laitteeseen, tätä varten tarvitset USB-TTL-muuntimen. Tässä opetus и Video-ohje.

Vaihe 3. Laitteen asetukset

Kytke laitteeseen virta, kun LED-valo syttyy, paina painiketta ja pidä sitä painettuna, kunnes LED alkaa vilkkua ajoittain tasaisesti.
Tällä hetkellä ilmestyy uusi wi-fi-verkko nimeltä “PLC Sonoff Basic”, yhdistä tietokoneesi tähän verkkoon.
LED-ilmaisimen selitys

LED-ilmaisin
Laitteen tila

ajoittain kaksinkertainen vilkkuminen
ei yhteyttä reitittimeen

loistaa jatkuvasti
yhteys reitittimeen

säännöllinen tasainen vilkkuminen
wi-fi-tukiasematila

sammunut
Ei virtalähdettä

Avaa Internet-selain ja kirjoita osoiteriville teksti "192.168.4.1", siirry laitteen verkkoasetussivulle.

Täytä kentät seuraavasti:

  • "Verkon nimi" ja "Salasana" (laitteen yhdistämiseksi kodin Wi-Fi-reitittimeen).
  • “Device ID” ja “Authorization key” (valtuuttamaan laite MGT24-palvelussa).

Esimerkki laitteen verkkoparametrien asettamisestaVisuaalinen ohjelmointi Sonoff Basicille

Tallenna asetukset ja käynnistä laite uudelleen.
Täällä Video-ohje.

Vaihe 4. Antureiden liittäminen (valinnainen)

Nykyinen laiteohjelmisto tukee jopa neljää ds18b20-lämpötila-anturia. Tässä Video-ohje anturien asennukseen. Ilmeisesti tämä vaihe on vaikein, koska se vaatii suoria käsivarsia ja juotosraudan.

Osa II. Visuaalinen ohjelmointi

Vaihe 1: Luo komentosarjat

Käytetään ohjelmointiympäristönä Jaksoittain, ympäristö on helppo oppia, joten sinun ei tarvitse olla ohjelmoija luodaksesi yksinkertaisia ​​skriptejä.

Lisäsin erikoislohkoja laiteparametrien kirjoittamiseen ja lukemiseen. Kaikkiin parametreihin päästään nimellä. Etälaitteiden parametreille käytetään yhdistettyjä nimiä: "parameter@device".
Vaihtoehtojen pudotusvalikkoVisuaalinen ohjelmointi Sonoff Basicille

Esimerkki skenaario kuorman syklisestä kytkemisestä päälle ja pois (1 Hz):
Visuaalinen ohjelmointi Sonoff Basicille

Esimerkki komentosarjasta, joka synkronoi kahden erillisen laitteen toiminnan. Nimittäin kohdelaitteen rele toistaa etälaitteen releen toiminnan.
Visuaalinen ohjelmointi Sonoff Basicille

Termostaatin skenaario (ilman hystereesiä):
Visuaalinen ohjelmointi Sonoff Basicille

Monimutkaisempien komentosarjojen luomiseksi voit käyttää muuttujia, silmukoita, funktioita (argumenteilla) ja muita rakenteita. En kuvaile tätä kaikkea tässä yksityiskohtaisesti, verkossa on jo melko paljon. opetusmateriaalia Blocklysta.

Vaihe 2: Skriptien järjestys

Skripti toimii jatkuvasti, ja heti kun se saavuttaa loppunsa, se alkaa uudelleen. Tässä tapauksessa on kaksi lohkoa, jotka voivat keskeyttää komentosarjan väliaikaisesti, "viive" ja "tauko".
"Viive"-lohkoa käytetään millisekunnin tai mikrosekunnin viiveille. Tämä lohko ylläpitää tiukasti aikaväliä ja estää koko laitteen toiminnan.
"Tauko"-lohkoa käytetään toiselle (tai pienemmälle) viiveelle, eikä se estä muiden prosessien suorittamista laitteessa.
Jos skripti itsessään sisältää äärettömän silmukan, jonka rungossa ei ole "taukoa", tulkki käynnistää itsenäisesti lyhyen tauon.
Jos varattu muistipino on käytetty loppuun, tulkki lopettaa tällaisen tehonnälkäisen skriptin suorittamisen (ole varovainen rekursiivisten funktioiden kanssa).

Vaihe 3: Skriptien virheenkorjaus

Jos haluat korjata laitteeseen jo ladatun skriptin vian, voit suorittaa ohjelman jäljityksen vaihe vaiheelta. Tämä voi olla erittäin hyödyllistä, kun käsikirjoituksen käyttäytyminen osoittautui erilaiseksi kuin kirjoittaja tarkoitti. Tässä tapauksessa jäljityksen avulla kirjoittaja voi nopeasti löytää ongelman lähteen ja korjata skriptin virheen.

Skenaario factorial-laskennassa virheenkorjaustilassa:
Visuaalinen ohjelmointi Sonoff Basicille

Debug-työkalu on hyvin yksinkertainen ja koostuu kolmesta pääpainikkeesta: "aloita", "yksi askel eteenpäin" ja "pysäytys" (älkäämme myöskään unohtako "enter" ja "exit" -virheenkorjaustilaa). Vaiheittaisen jäljityksen lisäksi voit asettaa keskeytyskohdan mille tahansa lohkolle (napsauttamalla lohkoa).
Voit näyttää parametrien (anturit, releet) nykyiset arvot näytössä käyttämällä "print" -lohkoa.
Täällä yleiskuvausvideo debuggerin käytöstä.

Osio uteliaille. Mitä konepellin alla on?

Jotta komentosarjat toimisivat kohdelaitteella, kehitettiin tavukooditulkki ja 38 käskyn kokoaja. Blocklyn lähdekoodiin on sisäänrakennettu erikoistunut koodigeneraattori, joka muuntaa visuaaliset lohkot kokoonpanoohjeiksi. Myöhemmin tämä kokoonpanoohjelma muunnetaan tavukoodiksi ja siirretään laitteeseen suoritettavaa varten.
Tämän virtuaalikoneen arkkitehtuuri on melko yksinkertainen, eikä sen kuvailemisessa ole erityistä järkeä; Internetistä löydät monia artikkeleita yksinkertaisimpien virtuaalikoneiden suunnittelusta.
Varaan yleensä 1000 tavua virtuaalikoneeni pinolle, mikä riittää ylimääräiseksi. Tietysti syvät rekursiot voivat tyhjentää minkä tahansa pinon, mutta niistä ei todennäköisesti ole käytännön hyötyä.

Tuloksena oleva tavukoodi on melko kompakti. Esimerkkinä, tavukoodi saman faktoriaalin laskemiseksi on vain 49 tavua. Tämä on sen visuaalinen muoto:
Visuaalinen ohjelmointi Sonoff Basicille

Ja tämä on hänen kokoonpanoohjelmansa:

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

Jos esitysmuodolla ei ole käytännön arvoa, "javascrit" -välilehti päinvastoin antaa tutumman ilmeen kuin visuaaliset lohkot:

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

window.alert(factorial(10));

Suoritukseen liittyen. Kun suoritin yksinkertaisinta flasher-skriptiä, sain oskilloskoopin näytölle 47 kHz:n neliöaallon (prosessorin kellotaajuudella 80 MHz).
Visuaalinen ohjelmointi Sonoff BasicilleVisuaalinen ohjelmointi Sonoff Basicille
Mielestäni tämä on hyvä tulos, ainakin tämä nopeus on melkein kymmenen kertaa nopeampi kuin lua и Espruino.

Viimeinen osa

Yhteenvetona sanon, että komentosarjojen käyttö antaa meille mahdollisuuden paitsi ohjelmoida erillisen laitteen toiminnan logiikkaa, myös mahdollistaa useiden laitteiden yhdistämisen yhdeksi mekanismiksi, jossa jotkut laitteet vaikuttavat muiden käyttäytymiseen.
Huomaa myös, että valittu skriptien tallennustapa (suoraan itse laitteisiin, ei palvelimelle) yksinkertaistaa jo toimivien laitteiden vaihtamista toiseen palvelimeen, esimerkiksi kotivadelmaan, täällä opetus.

Siinä kaikki, kuulen mielelläni neuvoja ja rakentavaa kritiikkiä.

Lähde: will.com

Lisää kommentti