Descargar PDF
        SAMOVAR 
×
Menú

Ejemplos de scripts

Un ejemplo de script que puede escribir directamente en el editor de la interfaz web. Se ejecuta una vez por segundo y, cuando la temperatura de la caldera alcanza 70 grados, empieza a encender y apagar el dispositivo conectado al primer puerto del expansor PCF8575, y además lo escribe en la UART y en la consola del navegador
if TankTemp > 70 then
  if exp_digitalRead(1) == 0 then
    exp_digitalWrite(1,1)
    print("Включено")
  else
    exp_digitalWrite(1,0)
    print("Выключено")
  end
end
 
Un ejemplo de script que obtiene un valor de un sensor de nivel analógico en la entrada LUA_PIN (34 para la placa DEVKIT) y controla la bomba de agua (por ejemplo, para bombear mosto fermentado a la caldera). Si la señal está en el intervalo de 1000 a 2000, enciende la bomba; con una señal cero, la apaga. El script se escribe directamente en el navegador y se puede ejecutar nada más guardarlo. El pin 4 es WATER_PUMP_PIN de la placa DEVKIT; para otras placas, ponga su propio número.
start_pump = getObject("start_pump", "NUMERIC") + 0 --obtener el valor numérico de un objeto guardado anteriormente y convertirlo en número
sensor = analogRead() --leer el valor analógico de LUA_PIN (reservado para Lua)
--sensor = 1500
if sensor >= 1000 and sensor <= 2000 and start_pump == 0 then
  setObject("start_pump", 1) --guardar el valor en un objeto en la memoria de Samovar para poder usarlo en el siguiente ciclo de ejecución del script
  digitalWrite(4,1) --poner un nivel alto en el pin 4
  print("Start pump") --[=[escribir en el puerto COM. También puede usar el comando sendMsg("Msg", Level). Si Level = -1, el mensaje se envía al puerto COM y a la consola del navegador, lo que resulta útil para depurar. Si Level es 0, 1 o 2, el mensaje se envía como mensaje del sistema]=]
  --sendMsg("Start pump",-1)
elseif sensor == 0 then
  setObject("start_pump", 0) --guardar el valor en un objeto en la memoria de Samovar para poder usarlo en el siguiente ciclo de ejecución del script
  if (start_pump == 1) then
    digitalWrite(4,0) --poner un nivel bajo en el pin 4
    print("Finish pump")
  end
end
 
Scripts ya preparados que se cargan en Samovar junto con la interfaz web:
Hay más ejemplos en la carpeta Lua_script del repositorio de Samovar en GitHub: control de la temperatura de fermentación (beer_mash.lua), control de la velocidad de la bomba de agua con botones, destilación con concentración (dist_degidrate.lua), envío de lecturas a un servicio web externo por HTTP (http_request_telegram.lua), mantenimiento de la preinundación mediante un sensor de presión y scripts para la NBK.