Автоматика Самовар
Fnr
Специалист
Иркутск
115 10
Отв.1040 24 Авг. 23, 12:56
очисти есп полностью и поставь с нуля.
logvinov
Магистр
Москва
259 45
Отв.1041 24 Авг. 23, 12:56, через 1 мин
ну хз, любят меня глюкиdranek, 24 Авг. 23, 12:45я сейчас новую взял esp32 и загрузился все но новой сначала код ардуино далее интерфейс .. все ок.. правда скачано у меня сразу как выпушен релиз .
dranek
Кандидат наук
Минск
326 257
Отв.1042 24 Авг. 23, 13:01, через 5 мин
очисти есп полностью и поставь с нуля.Fnr, 24 Авг. 23, 12:56Если вы про пункт в Инструментах Erase All Flash Before Sketh Upload, то его в Enabled ставил.
logvinov
Магистр
Москва
259 45
Отв.1043 24 Авг. 23, 13:04, через 4 мин
Если вы про пункт в Инструментах Erase All Flash Before Sketh Upload,dranek, 24 Авг. 23, 13:01выкл надо
dranek
Кандидат наук
Минск
326 257
Отв.1044 24 Авг. 23, 13:53, через 49 мин
Так оно и выкл обычно, если не надо память полностью очистить.
В общем придёт через пару дней новая ESP буду дальше пробовать, пока установил 5.26 и отбираю головы. И так сутки не мог начать.
Возможно это сетевой глюк с кэшированием файлов, через несколько дней кэш почистится и всё подгрузится как надо.
Upd. С утра "осенило". Можно же руками в version.txt поменять 6.8 на 6.9, прошить интерфейс локально и Самовар не будет подгружать ничего с сервера.
В общем придёт через пару дней новая ESP буду дальше пробовать, пока установил 5.26 и отбираю головы. И так сутки не мог начать.
Возможно это сетевой глюк с кэшированием файлов, через несколько дней кэш почистится и всё подгрузится как надо.
Upd. С утра "осенило". Можно же руками в version.txt поменять 6.8 на 6.9, прошить интерфейс локально и Самовар не будет подгружать ничего с сервера.
сообщения удалены (2)
dranek
Кандидат наук
Минск
326 257
Отв.1045 25 Авг. 23, 20:50
Я недавно писал, что при навешивании на куб начинали плохо распознаваться датчики DS18B20.
Решил попробовать соединить общий минус Самовара с проводом заземления электросети, хоть это и возможно не правильно. Однако у меня собственноручно сделанный контур заземления и я в нём уверен, а ноль с этим контуром нигде не соединяется явно.
Так вот, такой стабильной работы датчиков я ещё не видел у Самовара до этого. Температура в царге при ректификации стоит как вкопанная до тысячных, я даже думал зависла и специально датчик рукой охладил немного чтоб проверить.
Из минусов, хуже стал Wi-Fi ловить.
Не уверен, что так можно делать, но факт.
Правда всё это на прошивке 5.26, по понятным причинам. Так что в моём случае это всё таки были электростатические наводки.
Решил попробовать соединить общий минус Самовара с проводом заземления электросети, хоть это и возможно не правильно. Однако у меня собственноручно сделанный контур заземления и я в нём уверен, а ноль с этим контуром нигде не соединяется явно.
Так вот, такой стабильной работы датчиков я ещё не видел у Самовара до этого. Температура в царге при ректификации стоит как вкопанная до тысячных, я даже думал зависла и специально датчик рукой охладил немного чтоб проверить.
Из минусов, хуже стал Wi-Fi ловить.
Не уверен, что так можно делать, но факт.
Правда всё это на прошивке 5.26, по понятным причинам. Так что в моём случае это всё таки были электростатические наводки.
lkosoj
Куратор
Видное
495 513
Отв.1046 25 Авг. 23, 23:32
После подгрузки файлов с сервера http://web.samovar-tool.ru/6.9/ у меня опять пустышка в браузере.dranek, 24 Авг. 23, 10:42Проблема связана с использованием SDK версии больше чем 2.09. На SDK с номерами версии выше ESP32 не хватает памяти. На SDK 2.09 все работает. Ну и была ошибка в номере версии интерфейса, из-за чего загрузка веб-интерфейса через Ардуино не помогала - интерфейс пытался загрузиться через интернет, ему не хватало памяти, он не мог корректно загрузиться.
На текущий момент необходимо использовать SDK версии 2.09
logvinov
Магистр
Москва
259 45
Отв.1047 26 Авг. 23, 14:09
Ребята, привет.
Напишите, пожалуйста, как запускать Луа скрипты в самоваре?
При выборе в самоваре программы "пиво"и добавлен через редактор скрипт фаил " Beer. Lya" Во вкладке дополнительно, при нажатии кнопки "начать" , результат нулевой. Если запущена программа затирки, то скрипт не работает. При достижении температуры 98.5,скрипт должен был запускать шаговый двигатель и отправлять уведомление что добавлен хмель. С разрешения автора скрипта выложу на общее пользования данный скрипт, на проверку ошибок, может быть кто то хорошо разбирается в данных Луа командах и поможет с решением данной загвоздки. Спасибочки большое dranek за код.
-- Исходные данные
Steps=1200 -- количество шагов в минуту шагового двигателя для подачи хмеля
MaxPower=1800 --максимальная мощность либо напряжение регулятора
-- Чтение глобальных переменных
Regim = getObject("Regim","NUMERIC")+0 -- читаем глобальную переменную Regim
-- Чтение текущих температур и мощности
TankTemp = getNumVariable("TankTemp")+0 --значение температуры куба
local function Stop() -- функция останова
Regim = 0 -- сброс алгоритма
--setPower(0) -- можно в конце нагрев отключить, но я не знаю надо ли?
setNumVariable("SetScriptOff",1)-- прерываем цикл скрипта
setLuaStatus("Скрипт остановлен")
end
if Regim == 0 then --включение ТЭН-а.
setPower(1) -- включаем нагрев
setCurrentPower(maxPower) -- ставим мощность ТЭН-а на максимум
Regim = 1
sendMsg("Включаем нагрев", 0)
elseif Regim == 1 then --Нагрев чана
if TankTemp>=98.5 then --закипело
Regim = 2 -- переходим к дозировке хмеля
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 1 дозы
sendMsg("Подача хмеля 1 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
setTimer(2,60*60+10) --задаём паузу 60 мин 10 сек.
end
elseif Regim == 2 and getTimer(1)==0 then -- 1 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 1 дозы
if getTimer(2)==0 then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 2 дозы
sendMsg("Подача хмеля 2 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 3 -- началась выдача 2 дозы
setTimer(2,60*30+10) --задаём паузу 30 мин 10 сек.
end
elseif Regim == 3 and getTimer(1)==0 then -- 2 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 2 дозы
if getTimer(2)==0 then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 3 дозы
sendMsg("Подача хмеля 3 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 4 -- началась выдача 3 дозы
setTimer(2,60*20+10) --задаём паузу 20 мин 10 сек.
end
elseif Regim == 4 and getTimer(1)==0 then -- 3 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 3 дозы
if getTimer(2)==0 then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 4 дозы
sendMsg("Подача хмеля 4 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 5 -- началась выдача 4 дозы
setTimer(2,60*10+10) --задаём паузу 10 мин 10 сек.
end
elseif Regim == 5 and getTimer(1)==0 then -- 4 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 4 дозы
if getTimer(2)==0 then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 5 дозы
sendMsg("Подача хмеля 5 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 6 -- началась выдача 5 дозы
-- тут специально не вводил Regim в качестве индекса массива таймера пауз, просто так наглядней, хотя можно было бы использовать массив с паузами и записать все выдачи хмеля одним блоком elseif.
end
elseif Regim == 6 and getTimer(1)==0 then -- 5 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 5 дозы
Stop() -- вызов функции останова
end
--Обработка нажатия кнопки ручного останова скрипта
--проверяем признак завершения работы скрипта, если он установлен, то завершаем работу
if (getNumVariable("SetScriptOff") + 0) == 1 then
Stop() --всё отключаем
end
setObject("Regim",Regim) -- сохраняем глобальную переменную Regim
Добавлено через 1дн. 35мин.:
Здравствуйте , обращаюсь к разработчику
можно добавить так же как в ректификации сохранение статуса программы отбора. Программа отбора сохраняется в файл prg.csv, статус сохраняется в файл state.csv и для пива , т.к после аварии все выключается и отследить где закончилась программа затирки и сколько прошло времени на определенной паузе
Напишите, пожалуйста, как запускать Луа скрипты в самоваре?
При выборе в самоваре программы "пиво"и добавлен через редактор скрипт фаил " Beer. Lya" Во вкладке дополнительно, при нажатии кнопки "начать" , результат нулевой. Если запущена программа затирки, то скрипт не работает. При достижении температуры 98.5,скрипт должен был запускать шаговый двигатель и отправлять уведомление что добавлен хмель. С разрешения автора скрипта выложу на общее пользования данный скрипт, на проверку ошибок, может быть кто то хорошо разбирается в данных Луа командах и поможет с решением данной загвоздки. Спасибочки большое dranek за код.
-- Исходные данные
Steps=1200 -- количество шагов в минуту шагового двигателя для подачи хмеля
MaxPower=1800 --максимальная мощность либо напряжение регулятора
-- Чтение глобальных переменных
Regim = getObject("Regim","NUMERIC")+0 -- читаем глобальную переменную Regim
-- Чтение текущих температур и мощности
TankTemp = getNumVariable("TankTemp")+0 --значение температуры куба
local function Stop() -- функция останова
Regim = 0 -- сброс алгоритма
--setPower(0) -- можно в конце нагрев отключить, но я не знаю надо ли?
setNumVariable("SetScriptOff",1)-- прерываем цикл скрипта
setLuaStatus("Скрипт остановлен")
end
if Regim == 0 then --включение ТЭН-а.
setPower(1) -- включаем нагрев
setCurrentPower(maxPower) -- ставим мощность ТЭН-а на максимум
Regim = 1
sendMsg("Включаем нагрев", 0)
elseif Regim == 1 then --Нагрев чана
if TankTemp>=98.5 then --закипело
Regim = 2 -- переходим к дозировке хмеля
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 1 дозы
sendMsg("Подача хмеля 1 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
setTimer(2,60*60+10) --задаём паузу 60 мин 10 сек.
end
elseif Regim == 2 and getTimer(1)==0 then -- 1 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 1 дозы
if getTimer(2)==0 then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 2 дозы
sendMsg("Подача хмеля 2 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 3 -- началась выдача 2 дозы
setTimer(2,60*30+10) --задаём паузу 30 мин 10 сек.
end
elseif Regim == 3 and getTimer(1)==0 then -- 2 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 2 дозы
if getTimer(2)==0 then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 3 дозы
sendMsg("Подача хмеля 3 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 4 -- началась выдача 3 дозы
setTimer(2,60*20+10) --задаём паузу 20 мин 10 сек.
end
elseif Regim == 4 and getTimer(1)==0 then -- 3 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 3 дозы
if getTimer(2)==0 then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 4 дозы
sendMsg("Подача хмеля 4 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 5 -- началась выдача 4 дозы
setTimer(2,60*10+10) --задаём паузу 10 мин 10 сек.
end
elseif Regim == 5 and getTimer(1)==0 then -- 4 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 4 дозы
if getTimer(2)==0 then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 5 дозы
sendMsg("Подача хмеля 5 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 6 -- началась выдача 5 дозы
-- тут специально не вводил Regim в качестве индекса массива таймера пауз, просто так наглядней, хотя можно было бы использовать массив с паузами и записать все выдачи хмеля одним блоком elseif.
end
elseif Regim == 6 and getTimer(1)==0 then -- 5 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 5 дозы
Stop() -- вызов функции останова
end
--Обработка нажатия кнопки ручного останова скрипта
--проверяем признак завершения работы скрипта, если он установлен, то завершаем работу
if (getNumVariable("SetScriptOff") + 0) == 1 then
Stop() --всё отключаем
end
setObject("Regim",Regim) -- сохраняем глобальную переменную Regim
Добавлено через 1дн. 35мин.:
Здравствуйте , обращаюсь к разработчику
можно добавить так же как в ректификации сохранение статуса программы отбора. Программа отбора сохраняется в файл prg.csv, статус сохраняется в файл state.csv и для пива , т.к после аварии все выключается и отследить где закончилась программа затирки и сколько прошло времени на определенной паузе
lkosoj
Куратор
Видное
495 513
Отв.1048 27 Авг. 23, 15:20
можно добавить так же как в ректификации сохранение статуса программы отбора. Программа отбора сохраняется в файл prg.csv, статус сохраняется в файл state.csv и для пиваlogvinov, 26 Авг. 23, 14:09Да, сделаю.
logvinov
Магистр
Москва
259 45
Отв.1049 27 Авг. 23, 15:29, через 10 мин
а, сделаю.lkosoj, 27 Авг. 23, 15:20с lua кодом я заметил так что если один раз я нажимаю "начать" во вкладке дополнительно, то код выполняется , но после нажатия кнопки остановить -больше не запускается .или я что то не так делаю? в файлах:
btn_button1.lua
код
--|Начать^
setNumVariable("SetScriptOff",1)
setNumVariable("loop_lua_fl",1)
файл init.lua --Запустить или деактивировать ежесекундный цикл выполнения скрипта lua
setNumVariable("loop_lua_fl",1)
файл beer.lua
код выше.. в посте.
dranek
Кандидат наук
Минск
326 257
Отв.1050 27 Авг. 23, 18:01
logvinov, Проблема в вызове setCurrentPower(maxPower) -- ставим мощность ТЭН-а на максимум
Скрипт на ней почему то останавливается.
Попробуй так
Скрипт на ней почему то останавливается.
Попробуй так
-- Исходные данные
Steps=1200 -- количество шагов в минуту шагового двигателя для подачи хмеля
MaxPower=1800 --максимальная мощность либо напряжение регулятора
-- Чтение глобальных переменных
Regim = getObject("Regim","NUMERIC")+0 -- читаем глобальную переменную Regim
-- Чтение текущих температур и мощности
TankTemp = getNumVariable("TankTemp")+0 --значение температуры куба
local function Stop() -- функция останова
Regim = 0 -- сброс алгоритма
--setPower(0) -- можно в конце нагрев отключить, но я не знаю надо ли?
setNumVariable("SetScriptOff",1)-- прерываем цикл скрипта
setLuaStatus("Скрипт остановлен кнопкой")
end
setLuaStatus("Regim="..Regim.. ", Т куба= "..TankTemp)
if (Regim==0) then --включение ТЭН-а.
setPower(1) -- включаем нагрев
--setCurrentPower(maxPower) -- ставим мощность ТЭН-а на максимум
Regim = 1
setObject("Regim",Regim) -- сохраняем глобальную переменную Regim
sendMsg("Включаем нагрев", 0)
end
if (Regim == 1) then --Нагрев чана
--setLuaStatus("Нагрев чана")
if TankTemp>=98.5 then--закипело
Regim = 2 -- переходим к дозировке хмеля
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 1 дозы
sendMsg("Подача хмеля 1 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
setTimer(2,60*60+10) --задаём паузу 60 мин 10 сек.
end
end
if ((Regim == 2) and (getTimer(1)==0)) then -- 1 доза выдана
setLuaStatus("1 доза выдана")
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 1 дозы
if (getTimer(2)==0) then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 2 дозы
sendMsg("Подача хмеля 2 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 3 -- началась выдача 2 дозы
setTimer(2,60*30+10) --задаём паузу 30 мин 10 сек.
end
end
if ((Regim == 3) and (getTimer(1)==0)) then -- 2 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 2 дозы
if (getTimer(2)==0) then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 3 дозы
sendMsg("Подача хмеля 3 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 4 -- началась выдача 3 дозы
setTimer(2,60*20+10) --задаём паузу 20 мин 10 сек.
end
end
if ((Regim == 4) and (getTimer(1)==0)) then -- 3 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 3 дозы
if (getTimer(2)==0) then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 4 дозы
sendMsg("Подача хмеля 4 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 5 -- началась выдача 4 дозы
setTimer(2,60*10+10) --задаём паузу 10 мин 10 сек.
end
end
if ((Regim == 5) and (getTimer(1)==0)) then -- 4 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 4 дозы
if (getTimer(2)==0) then -- время паузы вышло.
set_stepper_target(Steps, 0, 0) -- Включаем шаговый двигатель для 5 дозы
sendMsg("Подача хмеля 5 доза", 0)
setTimer(1,10) -- задаём таймер 10 сек
Regim = 6 -- началась выдача 5 дозы
end
end
if ((Regim == 6) and (getTimer(1)==0)) then -- 5 доза выдана
set_stepper_target(0, 0, 0) -- Отключаем шаговый двигатель после 5 дозы
Stop() -- вызов функции останова
end
--Обработка нажатия кнопки ручного останова скрипта
--проверяем признак завершения работы скрипта, если он установлен, то завершаем работу
if ((getNumVariable("SetScriptOff") + 0) == 1) then
Stop() --всё отключаем
end
setObject("Regim",Regim) -- сохраняем глобальную переменную Regim
Chernik_
Специалист
Липецк
129 62
Отв.1051 31 Авг. 23, 23:43
Привет.
Очень странная история наблюдается с сервоприводом, почти детектив.
С месяц назад перестал работать. Заказал новый и забыл. Пришел новый, втыкаю, тоже не работает.
Напрягаюсь, проверяю приводы на Ардуино нано - оба работают.
Прозваниваю клемму, через которую подключается сервопривод к ЕСП - земля, +5В, сигнал на D25 звонятся замечательно, сопротивление ноль.
Сажаю сервопривод на клемму напрямую его проводами - не работает. Тестирую нажатием кнопки Самотестирование.
Ну как же так, думаю я. Вынимаю ЕСП из кроватки и подключаю провода привода к ногам ЕСП. Работает.
Получается, косяк в замыкании клеммы сигнала на землю или +5В.
Отсоединил питание, проверил сопротивление.
Сопротивление клеммы сигнал с землей 1,25 кОм, сигнал с +5В 30 кОм.
И при подключении питания на клемме сигнала 3,26 В.
Как с этим должно быть?
Спасибо.
Добавлено через 7ч. 38мин.:
Ещё наблюдение. В процессе пробовал перепрошивать ЕСП. Обнаружил, что с моим набором компонентов и СДК 2.09 прошивка v6.9 не влезает в память - 102%. Если опуститься на 2.05 то размер 93%. Промежуточные не тестировал. Это надо учитывать.
Добавлено через 13ч. 8мин.:
Решил, что раз на голом ЕСП все работает, буду собирать все постепенно с нуля.
Разобрал дотла Самовар, проверил сопротивление клеммы ШИМ сигнала сервопривода с землей и +5В (бесконечность) на голой плате Самовара со всеми снятыми компонентами и начал добавлять в нее компоненты, начиная от ЕСП32 и кончая датчиками температуры. После добавления каждого контролировал сопротивление.
После полной сборки Самовара сопротивление клеммы ШИМ сигнала сервопривода с землей и +5В так и осталось в районе 5МОм.
Что это было - непонятно. Он просто испугался методичного подхода, так как понял, что шансов взбрыкнуть нет.
Работает и славно.
Добавлено через 23ч. 38мин.:
В процессе разбирательств сделал фото, как в моем "двухэтажном" корпусе на "первом" этаже организовано размещение компонентов. Там очень удачно расположилось компактное твердотельное реле управления насосом. Для самоуспокоения я приклеил на силовой транзистор радиатор, хотя он и без него совершенно не грелся. Реле прикрепил на плату LCD монитора с помощью толстого двустороннего скотча. Это реле работает у меня с апреля, выдержало больше десятка процедур дистилляции/ректификации. Считаю, что можно смело рекомендовать его для использования вместо канонического SSR DD. Это в разы компактнее, дешевле и удобнее.
Еще на фото можно заметить в верхней правой части замотанный синей изолентой DC-DC преобразователь на проводе к вентилятору. Я выставил на нем напряжение вольт 7-8, чтобы вентилятор не шумел слишком сильно. Еще раз спасибо Kuban за совет.
И все это без проблем влезло в тот же компактный корпус. При этом одно реле там у меня лишнее - реле управления клапаном после подключения насоса я уже давно не использую. Так что есть еще резерв места и неиспользуемый разъем.
Очень странная история наблюдается с сервоприводом, почти детектив.
С месяц назад перестал работать. Заказал новый и забыл. Пришел новый, втыкаю, тоже не работает.
Напрягаюсь, проверяю приводы на Ардуино нано - оба работают.
Прозваниваю клемму, через которую подключается сервопривод к ЕСП - земля, +5В, сигнал на D25 звонятся замечательно, сопротивление ноль.
Сажаю сервопривод на клемму напрямую его проводами - не работает. Тестирую нажатием кнопки Самотестирование.
Ну как же так, думаю я. Вынимаю ЕСП из кроватки и подключаю провода привода к ногам ЕСП. Работает.
Получается, косяк в замыкании клеммы сигнала на землю или +5В.
Отсоединил питание, проверил сопротивление.
Сопротивление клеммы сигнал с землей 1,25 кОм, сигнал с +5В 30 кОм.
И при подключении питания на клемме сигнала 3,26 В.
Как с этим должно быть?
Спасибо.
Добавлено через 7ч. 38мин.:
Ещё наблюдение. В процессе пробовал перепрошивать ЕСП. Обнаружил, что с моим набором компонентов и СДК 2.09 прошивка v6.9 не влезает в память - 102%. Если опуститься на 2.05 то размер 93%. Промежуточные не тестировал. Это надо учитывать.
Добавлено через 13ч. 8мин.:
Решил, что раз на голом ЕСП все работает, буду собирать все постепенно с нуля.
Разобрал дотла Самовар, проверил сопротивление клеммы ШИМ сигнала сервопривода с землей и +5В (бесконечность) на голой плате Самовара со всеми снятыми компонентами и начал добавлять в нее компоненты, начиная от ЕСП32 и кончая датчиками температуры. После добавления каждого контролировал сопротивление.
После полной сборки Самовара сопротивление клеммы ШИМ сигнала сервопривода с землей и +5В так и осталось в районе 5МОм.
Что это было - непонятно. Он просто испугался методичного подхода, так как понял, что шансов взбрыкнуть нет.
Работает и славно.
Добавлено через 23ч. 38мин.:
В процессе разбирательств сделал фото, как в моем "двухэтажном" корпусе на "первом" этаже организовано размещение компонентов. Там очень удачно расположилось компактное твердотельное реле управления насосом. Для самоуспокоения я приклеил на силовой транзистор радиатор, хотя он и без него совершенно не грелся. Реле прикрепил на плату LCD монитора с помощью толстого двустороннего скотча. Это реле работает у меня с апреля, выдержало больше десятка процедур дистилляции/ректификации. Считаю, что можно смело рекомендовать его для использования вместо канонического SSR DD. Это в разы компактнее, дешевле и удобнее.
Еще на фото можно заметить в верхней правой части замотанный синей изолентой DC-DC преобразователь на проводе к вентилятору. Я выставил на нем напряжение вольт 7-8, чтобы вентилятор не шумел слишком сильно. Еще раз спасибо Kuban за совет.
И все это без проблем влезло в тот же компактный корпус. При этом одно реле там у меня лишнее - реле управления клапаном после подключения насоса я уже давно не использую. Так что есть еще резерв места и неиспользуемый разъем.
lkosoj
Куратор
Видное
495 513
Отв.1052 15 Сент. 23, 12:22
Напишу небольшой план по дальнейшему развитию Самовара:
1. Исправить ошибку - не выключается мешалка в режиме Пиво после включения. Ошибка не подтвердилась.
2. В режиме Пиво в строку программы добавить выбор, какой температурный датчик использовать для управления нагревом (нужно для реализации различных варочных порядков). Будет добавлена возможность выбора 5 датчиков.
3. Увеличить время работы насоса в режиме самотестирования (не хватает времени на прокачку воды)
4. Исправить скетч "простого регулятора мощности" Stab-avr для корректной работы с Самоваром, сейчас периодически он теряет команды от Самовара и не корректно отвечает на запросы Самовара.
5. Добавить в режиме Пиво возможность управления автоматическим добавлением хмеля на основе шарового двигателя. Так же нужно добавить датчик для позиционирования в начальной позиции.
6. Сделать 3Д-модель для печати автомата по добавлению хмеля.
7. Сделать возможность работы Самовара в режиме точки доступа, чтобы можно было использовать без роутера и интернета. На текущий момент такая возможность есть, но не штатная, и работает через раз.
8. Проверить наличие проблемы в вызове setCurrentPower(maxPower) в Lua Работает
9. В режиме Пиво и Дистилляция сделать сохранение программы и текущего статуса выполнения программы в текстовые файлы, аналогично тому, как это реализовано в режиме Ректификация.
10. На экран режима Дистилляции и Пиво вывести показания всех датчиков температур.
11. В Lua добавить возможность регулирования производительности насоса воды. Добавлена функция setPumpPwm(p), p=0 - насос выключен, p=1023 - максимальная производительность.
12. Сделать возможность отключения контроля датчика протока воды в настройках.
13. Добавить опцию в настройки - не понижать мощность при кипении в режиме Пиво.
14. Добавить опцию в настройки - использовать при ректификации датчик уровня флегмы.
15. Шрифт текущей мощности ТЕН-а сделать крупнее.
Если у вас есть еще какие-то пожелания, или я что-то из того, что обсуждали в личке, забыл упомянуть, напишите пожалуйста.
Зачеркнутое - доступно в версии 6.10, остальное чуть позже.
4. Исправить скетч "простого регулятора мощности" Stab-avr для корректной работы с Самоваром, сейчас периодически он теряет команды от Самовара и не корректно отвечает на запросы Самовара.
5. Добавить в режиме Пиво возможность управления автоматическим добавлением хмеля на основе шарового двигателя. Так же нужно добавить датчик для позиционирования в начальной позиции.
6. Сделать 3Д-модель для печати автомата по добавлению хмеля.
7. Сделать возможность работы Самовара в режиме точки доступа, чтобы можно было использовать без роутера и интернета. На текущий момент такая возможность есть, но не штатная, и работает через раз.
14. Добавить опцию в настройки - использовать при ректификации датчик уровня флегмы.
15. Шрифт текущей мощности ТЕН-а сделать крупнее.
Если у вас есть еще какие-то пожелания, или я что-то из того, что обсуждали в личке, забыл упомянуть, напишите пожалуйста.
Зачеркнутое - доступно в версии 6.10, остальное чуть позже.
dranek
Кандидат наук
Минск
326 257
Отв.1053 15 Сент. 23, 13:16, через 54 мин
Пожелания:
1. В настройках сделать возможность отключения контроля датчика протока воды "на лету".
Я его использую иногда.
2. В Lua добавить возможность регулирования производительности насоса воды.
Расширит возможные сферы применения Самовара. Можно будет управлять каким нибудь другим движком.
1. В настройках сделать возможность отключения контроля датчика протока воды "на лету".
Я его использую иногда.
2. В Lua добавить возможность регулирования производительности насоса воды.
Расширит возможные сферы применения Самовара. Можно будет управлять каким нибудь другим движком.
Chernik_
Специалист
Липецк
129 62
Отв.1054 15 Сент. 23, 13:28, через 13 мин
Привет.
После самотестирования происходит выключение РМ. Иногда делаешь самотестирование при включённом нагреве и это кажется неправильным.
После самотестирования происходит выключение РМ. Иногда делаешь самотестирование при включённом нагреве и это кажется неправильным.
lkosoj
Куратор
Видное
495 513
Отв.1055 15 Сент. 23, 13:50, через 22 мин
После самотестирования происходит выключение РМChernik_, 15 Сент. 23, 13:28С точки зрения самотестирования - это правильно. Нужно же проверить, что все работает, в том числе, и отключение.
logvinov
Магистр
Москва
259 45
Отв.1056 15 Сент. 23, 16:51
Сделал добавления хмеля так, на шаговым двигатели выше код подачи. .
Добавлено через 4мин.:
Можно вкл насос в режиме пиво. Так как он не работает при выборе затирания
Добавлено через 6мин.:
Так же имеется такой вопрос или я что то не до понял. Когда идёт кипячения, по программе, сусло греется до температуры которая указана в скетче, как только данная температура достигнута, вкл поддержка даной температуры,т.е которая установлена во вкладке "пиво" У меня стоит 1500вт
То Сусло уже не кипит, а остывает, можно при кипячении данную функцию выкл.
Добавлено через 4мин.:
Можно вкл насос в режиме пиво. Так как он не работает при выборе затирания
Добавлено через 6мин.:
Так же имеется такой вопрос или я что то не до понял. Когда идёт кипячения, по программе, сусло греется до температуры которая указана в скетче, как только данная температура достигнута, вкл поддержка даной температуры,т.е которая установлена во вкладке "пиво" У меня стоит 1500вт
То Сусло уже не кипит, а остывает, можно при кипячении данную функцию выкл.
lkosoj
Куратор
Видное
495 513
Отв.1057 15 Сент. 23, 17:51, через 60 мин
То Сусло уже не кипит, а остывает, можно при кипячении данную функцию выкл.logvinov, 15 Сент. 23, 16:51
В Samovar_ini.h есть такой параметр:
//Температура кипения (для режима пиво)
#define BOILING_TEMP 98.9
Можно поставить 110 вместо 98.9, и будет всегда работать на полную мощность.
logvinov
Магистр
Москва
259 45
Отв.1058 15 Сент. 23, 18:07, через 17 мин
Можно поставить 110 вместо 98.9, и будет всегда работать на полную мощность.lkosoj, 15 Сент. 23, 17:51Да, но тогда не вкл обратный отсчёт, пока не достигнет данного температурного режима и программа будет ждать
lkosoj
Куратор
Видное
495 513
Отв.1059 15 Сент. 23, 18:21, через 15 мин
Да, справедливо. Ок, добавлю опцию - не понижать мощность при кипении.