Пример скрипта, который можно написать прямо в редакторе в веб-интерфейсе, он будет выполняться раз в секунду и при достижении температуры в кубе 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 (34 для платы DEVKIT) и управляет насосом воды (например, для перекачки браги в куб). Если сигнал находится в диапазоне от 1000 до 2000, включает насос, при нулевом сигнале - отключает его. Скрипт пишется прямо в браузере, при сохранении сразу доступен для выполнения. Вывод 4 – WATER_PUMP_PIN платы DEVKIT, для других плат подставьте свой номер.
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) --сохраняем значение в объекте в памяти Самовара, чтобы его можно было использовать в следующем цикле запуска скрипта
digitalWrite(4,1) --устанавливаем на 4 ноге высокий уровень
print("Start pump") --[=[пишем в com-port. Так-же можно использовать команду sendMsg("Msg", Level). Если Level = -1, сообщение будет выведено в com-port и в консоль браузера, удобно для отладки. Если Level 0,1,2 - сообщение отправляется как сообщение системы]=]
--sendMsg("Start pump",-1)
elseif sensor == 0 then
setObject("start_pump", 0) --сохраняем значение в объекте в памяти Самовара, чтобы его можно было использовать в следующем цикле запуска скрипта
if (start_pump == 1) then
digitalWrite(4,0) --устанавливаем на 4 ноге низкий уровень
print("Finish pump")
end
end
Готовые скрипты, которые загружаются на Самовар вместе с web-интерфейсом:
rectificat.lua – наполнение куба насосом по датчику уровня или по датчику потока воды (объём, пороги датчика задаются в начале файла).
dist.lua – дистилляция с разбиением по трём ёмкостям: запоминает температуру куба в начале кипения и при её росте на заданную уставку (или по снижению спиртуозности) переключает сервопривод на следующую ёмкость, при желании снижая мощность.
cheese.lua – заготовка сценария для строки L программы сыроварения.
btn_<режим>_button1.lua «Начать» и btn_<режим>_button2.lua «Остановить» – включение и выключение секундного цикла для каждого режима.
Ещё примеры лежат в папке Lua_script репозитория
Samovar на GitHub: контроль температуры брожения (beer_mash.lua), управление скоростью насоса воды кнопками, дистилляция с укреплением (dist_degidrate.lua), отправка показаний на внешний веб-сервис по HTTP (http_request_telegram.lua), удержание предзахлёба по датчику давления и скрипты для НБК.