Visuell programméiere fir Sonoff Basic

Visuell programméiere fir Sonoff Basic
En Artikel iwwer wéi een e programméierbare Logik Controller vun engem bëllegen chinesesche Gerät erstellt. Esou en Apparat wäert seng Notzung souwuel an der Hausautomatioun an als praktesch Klassen an der Schoulinformatik fannen.
Als Referenz funktionnéiert de Sonoff Basic Programm par défaut mat enger mobiler Applikatioun duerch e chinesesche Cloud Service; no der proposéierter Ännerung ass all weider Interaktioun mat dësem Apparat am Browser méiglech.

Sektioun I. Sonoff mam MGT24 Service verbannen

Schrëtt 1: Erstellt eng Kontrollpanel

Aschreiwen op de Site mbg 24 (wann net scho registréiert) a mellt Iech mat Ärem Kont un.
Login fir de SystemVisuell programméiere fir Sonoff Basic

Fir e Kontrollpanel fir en neien Apparat ze kreéieren, klickt op de "+" Knäppchen.
Beispill fir e Panel ze kreéierenVisuell programméiere fir Sonoff Basic

Wann de Panel erstallt ass, erschéngt se an Ärer Lëscht vu Panelen.

Op der Tab "Setup" vun der erstallt Panel fannt Dir d'Felder "Device ID" an "Autorisatiounsschlëssel"; an Zukunft wäert dës Informatioun erfuerderlech sinn wann Dir de Sonoff Apparat opstellt.
Tab BeispillVisuell programméiere fir Sonoff Basic

Schrëtt 2. Reflash den Apparat

Benotzt den Utility XTCOM_UTIL download der Firmware PLC Sonoff Basic op den Apparat, fir dës braucht Dir en USB-TTL Converter. Hei manuell и Video Uweisunge.

Schrëtt 3. Apparat Ariichten

Gitt d'Kraaft op den Apparat un, nodeems d'LED opgehuewen ass, dréckt de Knäppchen an hält se gedréckt bis d'LED ufänkt periodesch gläichméisseg ze blénken.
An dësem Moment erschéngt en neit Wi-Fi Netzwierk mam Numm "PLC Sonoff Basic", verbënnt Äre Computer mat dësem Netz.
Erklärung vun LED Indikatioun

LED Indikatioun
Apparat Status

periodesch duebel Blëtz
keng Verbindung zu Router

blénkt kontinuéierlech
Verbindung mam Router etabléiert

periodesch eenheetlech blénken
Wi-Fi Access Point Modus

geläscht
Keng Stroumversuergung

Öffnen en Internetbrowser a gitt den Text "192.168.4.1" an der Adressbar, gitt op d'Netzwierk Astellungssäit vum Apparat.

Fëllt d'Felder wéi follegt aus:

  • "Netzwierknumm" a "Passwuert" (fir den Apparat mat Ärem Heem Wi-Fi Router ze verbannen).
  • "Device ID" an "Autorisatiounsschlëssel" (fir den Apparat am MGT24 Service ze autoriséieren).

Beispill vun Astellung Apparat Reseau ParameterenVisuell programméiere fir Sonoff Basic

Späichert d'Astellungen a restart den Apparat.
et ass Video Uweisunge.

Schrëtt 4. Sensoren verbannen (optional)

Déi aktuell Firmware ënnerstëtzt bis zu véier ds18b20 Temperatursensoren. Hei Video Uweisunge fir Installatioun vu Sensoren. Anscheinend wäert dëse Schrëtt am schwieregste sinn, well et riicht Waffen an e Löt Eis brauch.

Abschnitt II. Visuell programméiere

Schrëtt 1: Erstellt Scripten

Benotzt als Programméierungsëmfeld Blockéieren, d'Ëmfeld ass einfach ze léieren, also musst Dir kee Programméierer sinn fir einfach Scripten ze kreéieren.

Ech hunn spezialiséiert Blöcke bäigefüügt fir ze schreiwen an ze liesen Apparatparameter. All Parameter gëtt mam Numm zougänglech. Fir Parameteren vu Ferngeräter ginn zesummegesate Nimm benotzt: "parameter @ Apparat".
Dropdown Lëscht vun OptiounenVisuell programméiere fir Sonoff Basic

Beispillszenario fir zyklesch Ausschalten vun der Belaaschtung (1Hz):
Visuell programméiere fir Sonoff Basic

E Beispill vun engem Skript deen d'Operatioun vun zwee separaten Apparater synchroniséiert. Nämlech widderhëlt de Relais vum Zilapparat d'Operatioun vum Relais vum Fernapparat.
Visuell programméiere fir Sonoff Basic

Szenario fir Thermostat (ouni Hysteresis):
Visuell programméiere fir Sonoff Basic

Fir méi komplex Scripten ze kreéieren, kënnt Dir Variabelen, Loops, Funktiounen (mat Argumenter) an aner Konstruktioune benotzen. Ech wäert dat alles net am Detail hei beschreiwen; et gëtt scho vill um Netz. pädagogesch Material iwwer Blockly.

Schrëtt 2: Uerdnung vun Scripten

De Skript leeft kontinuéierlech, a soubal et säin Enn erreecht, fänkt et erëm un. An dësem Fall sinn et zwee Blocken, déi de Skript temporär pauséiere kënnen, "Verzögerung" an "Paus".
De Block "Verzögerung" gëtt fir Millisekonnen oder Mikrosekonnen Verspéidungen benotzt. Dëse Block hält strikt den Zäitintervall, blockéiert d'Operatioun vum ganzen Apparat.
De Block "Paus" gëtt fir zweet (oder manner) Verspéidungen benotzt, an et blockéiert net d'Ausféierung vun anere Prozesser am Apparat.
Wann de Skript selwer eng onendlech Loop enthält, de Kierper vun deem keng "Paus" enthält, initiéiert den Dolmetscher onofhängeg eng kuerz Paus.
Wann de zougewisen Erënnerung Stack erschöpft ass, wäert den Dolmetscher ophalen esou e Kraafthonger Skript auszeféieren (opgepasst mat rekursive Funktiounen).

Schrëtt 3: Debugging Scripten

Fir e Skript ze debuggen deen schonn an den Apparat gelueden ass, kënnt Dir e Programm Trace Schrëtt fir Schrëtt lafen. Dëst kann extrem nëtzlech sinn wann d'Behuele vum Skript anescht ausgeet wéi dat wat den Auteur geduecht huet. An dësem Fall erlaabt d'Tracing den Auteur séier d'Quell vum Problem ze fannen an de Feeler am Skript ze korrigéieren.

Szenario fir Faktorial Berechnung am Debug Modus:
Visuell programméiere fir Sonoff Basic

D'Debug-Tool ass ganz einfach a besteet aus dräi Haaptknäppercher: "Start", "Ee Schrëtt no vir" an "Stop" (loosst eis och net vergiessen iwwer "Enter" an "Exit" Debug Modus). Zousätzlech zu Schrëtt-fir-Schrëtt Tracing, kënnt Dir e Breakpoint op all Block setzen (andeems Dir op de Block klickt).
Fir déi aktuell Wäerter vun de Parameteren (Sensoren, Relais) am Monitor ze weisen, benotzt de Block "Drécken".
et ass Iwwersiichtsvideo iwwer d'Benotzung vum Debugger.

Sektioun fir déi virwëtzeg. Wat ass ënnert der Hood?

Fir datt d'Skripte op dem Zilgerät funktionnéieren, goufen e Bytecode-Interpreter an en Assembler mat 38 Instruktiounen entwéckelt. Dem Blockly säi Quellcode huet e spezialiséierte Codegenerator dran agebaut deen visuell Blocken an d'Versammlungsinstruktiounen konvertéiert. Duerno gëtt dësen Assemblerprogramm an Bytecode ëmgewandelt an op den Apparat fir Ausféierung transferéiert.
D'Architektur vun dëser virtueller Maschinn ass zimmlech einfach an et gëtt kee besonnesche Punkt et ze beschreiwen; um Internet fannt Dir vill Artikelen iwwer den Design vun den einfachsten virtuelle Maschinnen.
Ech verdeelen normalerweis 1000 Bytes fir de Stack vu menger virtueller Maschinn, wat genuch ass fir ze schounen. Natierlech kënnen déif Rekursiounen all Stack erschöpfen, awer si sinn onwahrscheinlech praktesch ze benotzen.

De resultéierende Bytecode ass relativ kompakt. Als Beispill ass de Bytecode fir dee selwechte Faktorial ze berechnen nëmmen 49 Bytes. Dëst ass seng visuell Form:
Visuell programméiere fir Sonoff Basic

An dëst ass säi Versammlungsprogramm:

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

Wann d'Versammlungsform vun der Representatioun kee praktesche Wäert huet, da gëtt de Tab "Javascrit", am Géigendeel, e méi vertraute Look wéi visuell Blocks:

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

window.alert(factorial(10));

Betreffend Leeschtung. Wann ech am einfachsten Flasher Skript gelaf hunn, krut ech eng 47 kHz Quadratwelle um Oszilloskopbildschierm (bei enger Prozessor Auergeschwindegkeet vun 80 MHz).
Visuell programméiere fir Sonoff BasicVisuell programméiere fir Sonoff Basic
Ech mengen dat ass e gutt Resultat, op d'mannst ass dës Geschwindegkeet bal zéng Mol méi séier wéi Lua и Espruino.

D'Finale Deel

Zesummefaassend, wäert ech soen datt d'Benotzung vu Skripte erlaabt eis net nëmmen d'Logik vun der Operatioun vun engem separaten Apparat ze programméieren, awer et mécht et och méiglech e puer Apparater an engem eenzege Mechanismus ze verbannen, wou e puer Apparater d'Behuele vun aneren beaflossen.
Ech bemierken och datt d'gewielte Method fir Scripten ze späicheren (direkt an den Apparater selwer, an net um Server) vereinfacht de Wiessel vu scho funktionnéierende Geräter op en aneren Server, zum Beispill op en Heem Raspberry, hei manuell.

Dat ass alles, ech wäert frou Rotschléi a konstruktiv Kritik ze héieren.

Source: will.com

Setzt e Commentaire