27 МОСКОВСКАЯ ВСТРЕЧА
Форум самогонщиков Сайт Барахолка Магазин 27 МОСКОВСКАЯ ВСТРЕЧА

Автоматика Самовар

Форум самогонщиков Вопросы по электр(он)ике
1 ... 50 51 52 53 54 55 56 ... 130 53
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
выкл надо
IMG_20230824_130348.jpg
IMG_20230824_130348. Автоматика Самовар. Вопросы по электр(он)ике.
dranek Кандидат наук Минск 326 257
Отв.1044  24 Авг. 23, 13:53, через 49 мин
Так оно и выкл обычно, если не надо память полностью очистить.
В общем придёт через пару дней новая ESP буду дальше пробовать, пока установил 5.26 и отбираю головы. И так сутки не мог начать.
Возможно это сетевой глюк с кэшированием файлов, через несколько дней кэш почистится и всё подгрузится как надо.
Upd. С утра "осенило". Можно же руками в version.txt поменять 6.8 на 6.9, прошить интерфейс локально и Самовар не будет подгружать ничего с сервера.
сообщения удалены (2)
dranek Кандидат наук Минск 326 257
Отв.1045  25 Авг. 23, 20:50
Я недавно писал, что при навешивании на куб начинали плохо распознаваться датчики DS18B20.
Решил попробовать соединить общий минус Самовара с проводом заземления электросети, хоть это и возможно не правильно. Однако у меня собственноручно сделанный контур заземления и я в нём уверен, а ноль с этим контуром нигде не соединяется явно.
Так вот, такой стабильной работы датчиков я ещё не видел у Самовара до этого. Температура в царге при ректификации стоит как вкопанная до тысячных, я даже думал зависла и специально датчик рукой охладил немного чтоб проверить.
Из минусов, хуже стал 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 и для пива , т.к после аварии все выключается и отследить где закончилась программа затирки и сколько прошло времени на определенной паузе
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 за совет.
И все это без проблем влезло в тот же компактный корпус. При этом одно реле там у меня лишнее - реле управления клапаном после подключения насоса я уже давно не использую. Так что есть еще резерв места и неиспользуемый разъем.
Самовар.jpg
Самовар.jpg Автоматика Самовар. Вопросы по электр(он)ике.
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, остальное чуть позже.
dranek Кандидат наук Минск 326 257
Отв.1053  15 Сент. 23, 13:16, через 54 мин
Пожелания:
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
Сделал добавления хмеля так, на шаговым двигатели выше код подачи.
IMG_20230831_215809.jpg
IMG_20230831_215809. Автоматика Самовар. Вопросы по электр(он)ике.
IMG_20230829_200053.jpg
IMG_20230829_200053. Автоматика Самовар. Вопросы по электр(он)ике.
IMG_20230828_201517.jpg
IMG_20230828_201517. Автоматика Самовар. Вопросы по электр(он)ике.
IMG_20230828_201526.jpg
IMG_20230828_201526. Автоматика Самовар. Вопросы по электр(он)ике.
.

Добавлено через 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 мин
Да, справедливо. Ок, добавлю опцию - не понижать мощность при кипении.