PDF herunterladen
        SAMOVAR 
×
Menü

Skriptbeispiele

Ein Beispiel für ein Skript, das Sie direkt im Editor der Weboberfläche schreiben können. Es läuft einmal pro Sekunde und beginnt, sobald die Brennblasentemperatur 70 Grad erreicht, das am ersten Port des Expanders PCF8575 angeschlossene Gerät ein- und auszuschalten; außerdem meldet es dies an den UART und an die Browserkonsole
if TankTemp > 70 then
  if exp_digitalRead(1) == 0 then
    exp_digitalWrite(1,1)
    print("Включено")
  else
    exp_digitalWrite(1,0)
    print("Выключено")
  end
end
 
Ein Beispiel für ein Skript, das einen Wert von einem analogen Füllstandssensor am Eingang LUA_PIN (34 bei der Platine DEVKIT) liest und die Wasserpumpe steuert (zum Beispiel, um Maische in die Brennblase zu pumpen). Liegt das Signal im Bereich von 1000 bis 2000, schaltet es die Pumpe ein; bei einem Signal von null schaltet es sie aus. Das Skript wird direkt im Browser geschrieben und kann sofort nach dem Speichern ausgeführt werden. Pin 4 ist WATER_PUMP_PIN der Platine DEVKIT; bei anderen Platinen setzen Sie Ihre eigene Nummer ein.
start_pump = getObject("start_pump", "NUMERIC") + 0 --den numerischen Wert aus einem zuvor gespeicherten Objekt holen und in eine Zahl umwandeln
sensor = analogRead() --den analogen Wert von LUA_PIN lesen (für Lua reserviert)
--sensor = 1500
if sensor >= 1000 and sensor <= 2000 and start_pump == 0 then
  setObject("start_pump", 1) --den Wert in einem Objekt im Speicher von Samovar ablegen, damit er im nächsten Durchlauf des Skripts verwendet werden kann
  digitalWrite(4,1) --High-Pegel an Pin 4 setzen
  print("Start pump") --[=[in den COM-Port schreiben. Sie können auch den Befehl sendMsg("Msg", Level) verwenden. Bei Level = -1 wird die Meldung an den COM-Port und an die Browserkonsole ausgegeben, was beim Debuggen praktisch ist. Bei Level 0, 1 oder 2 wird die Meldung als Systemmeldung gesendet]=]
  --sendMsg("Start pump",-1)
elseif sensor == 0 then
  setObject("start_pump", 0) --den Wert in einem Objekt im Speicher von Samovar ablegen, damit er im nächsten Durchlauf des Skripts verwendet werden kann
  if (start_pump == 1) then
    digitalWrite(4,0) --Low-Pegel an Pin 4 setzen
    print("Finish pump")
  end
end
 
Fertige Skripte, die zusammen mit der Weboberfläche auf Samovar hochgeladen werden:
Weitere Beispiele finden Sie im Ordner Lua_script des Samovar-Repositorys auf GitHub: Temperaturregelung der Gärung (beer_mash.lua), Steuerung der Drehzahl der Wasserpumpe per Tasten, Destillation mit Aufkonzentrierung (dist_degidrate.lua), Senden von Messwerten an einen externen Webdienst über HTTP (http_request_telegram.lua), Halten des Vorflutens anhand eines Drucksensors sowie Skripte für die NBK.