下面是一个可以直接在网页界面编辑器中编写的脚本示例。它每秒运行一次,当蒸馏釜温度达到 70 度时,开始交替开关接在 PCF8575 扩展器第一个端口上的设备,并把相应信息写入 UART 和浏览器控制台
if TankTemp > 70 then
if exp_digitalRead(1) == 0 then
exp_digitalWrite(1,1)
print("Включено")
else
exp_digitalWrite(1,0)
print("Выключено")
end
end
下面的脚本示例从 LUA_PIN 输入(DEVKIT 开发板为 34)上的模拟液位传感器读取数值,并控制水泵(例如向蒸馏釜泵入发酵醪)。信号在 1000 到 2000 之间时打开泵;信号为零时关闭泵。脚本直接在浏览器中编写,保存后即可执行。引脚 4 是 DEVKIT 开发板的 WATER_PUMP_PIN;其他开发板请换成自己的编号。
start_pump = getObject("start_pump", "NUMERIC") + 0 --从之前保存的对象中获取数值并转换为数字
sensor = analogRead() --读取 LUA_PIN 的模拟值(为 Lua 保留)
--sensor = 1500
if sensor >= 1000 and sensor <= 2000 and start_pump == 0 then
setObject("start_pump", 1) --把值保存到 Samovar 内存中的对象里,以便在下一个脚本运行周期中使用
digitalWrite(4,1) --在引脚 4 上输出高电平
print("Start pump") --[=[写入 COM 端口。也可以使用 sendMsg("Msg", Level) 命令。如果 Level = -1,消息输出到 COM 端口和浏览器控制台,便于调试。如果 Level 为 0、1 或 2,消息作为系统消息发送]=]
--sendMsg("Start pump",-1)
elseif sensor == 0 then
setObject("start_pump", 0) --把值保存到 Samovar 内存中的对象里,以便在下一个脚本运行周期中使用
if (start_pump == 1) then
digitalWrite(4,0) --在引脚 4 上输出低电平
print("Finish pump")
end
end
随网页界面一起上传到 Samovar 的现成脚本:
rectificat.lua —— 根据液位传感器或水流量传感器用泵给蒸馏釜加料(体积和传感器阈值在文件开头设置)。
dist.lua —— 分三个容器的蒸馏:记住开始沸腾时的蒸馏釜温度,当温度升高设定值(或酒精度下降)时,把舵机切换到下一个容器,并可按需降低功率。
cheese.lua —— 奶酪制作程序 L 行的脚本模板。
btn_<mode>_button1.lua “开始”(«Начать»)和 btn_<mode>_button2.lua “停止”(«Остановить»)—— 为各模式打开和关闭每秒一次的循环。
更多示例见
GitHub 上 Samovar 代码库的 Lua_script 文件夹:发酵温度控制(beer_mash.lua)、用按钮控制水泵转速、带浓缩的蒸馏(dist_degidrate.lua)、通过 HTTP 把读数发送到外部网络服务(http_request_telegram.lua)、借助压力传感器保持预液泛,以及 NBK 脚本。