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:
rectificat.lua – llenado de la caldera con una bomba según un sensor de nivel o un sensor de caudal de agua (el volumen y los umbrales de los sensores se indican al principio del archivo).
dist.lua – destilación repartida en tres recipientes: recuerda la temperatura de la caldera al empezar la ebullición y, cuando sube en una consigna dada (o cuando baja la graduación alcohólica), mueve el servo al recipiente siguiente y, si se desea, baja la potencia.
cheese.lua – una plantilla de script para la línea L de un programa de elaboración de queso.
btn_<mode>_button1.lua «Iniciar» («Начать») y btn_<mode>_button2.lua «Detener» («Остановить») – encendido y apagado del ciclo de un segundo para cada modo.
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.