Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Комплекс автоматизации Самоварыч

Форум самогонщиков Автоматика
dranek Доктор наук Минск 596 601
Сегодня, 10:30
Не что иное как модификация Самовара , сделанная мной изначально для ESP32S3, в последствии адаптирована обратно под ESP32.
Изначальная цель: довести Самовар до нужной мне функциональности.
Работает на обоих микроконтроллерах.

Коротко о возможностях автоматики (здесь лишь малая часть мои заслуги, в основном наследие Самовара)

  • Модульная частичная сборка под свои нужды, есть разработанные платы, которые можно заказать в соответствующих сервисах, легко собирается на макетках или навесным монтажем.
  • Разработанные модели корпусов, узлов разбора и прочего для 3д печати.
  • Простая прошивка бинарником без заморочек с компиляцией, но исходники в комплекте.
  • Поддержка до 2 перистальтических насосов на шаговых двигателях для отбора тела и голов при ректификации, прокачки браги в НБК (в перспективе барда вторым насосом), управления дозатором инградиентов и мешалкой при варке пива или сыра.
  • Поддержка узла разбора до 11 емкостей для распределения фракций отбора по времени при ректификации (22 в случае с вторым перистальтическим насосом (двухрядный узел)).
  • Поддержка 1 или 3 на ESP32S3 индукционных датчиков уровня для реагирования на захлёб колонны, переключения емкостей при дистилляции по мере их заполнения, в перспективе для регулятора уровня барды НБК.
  • Измерение пяти температур с помощью термисторов и/или DS18B20. (Верх колонны(пар), царга, куб, вода на выходе охлаждения, ТСА.)
  • Учет и регулирование расхода охлаждающей воды, управление её насосом либо двумя клапанами.
  • Возможность использовать модуль с 4 реле для различных функций (нагрев, разгон, вода, мешалка, либо свои через LUA).
  • Поддержка нескольких видов стабилизаторов мощности с проводным управлением (с изоляцией через ADUM), либо беспроводным через HC-12. В том числе поддержка моего варианта стабилизатора с управлением по WiFi.
  • На текущий момент проверена работа с стабилизаторами РМВк, Stab AVR, моим. Со стабилизатором kvic пока никто не отписался об успешной работе, настраивался с помощью эмуляции. Заложены дополнительно управление с помощью ШИМ и по протоколу Modbus RTU для частотных преобразователей - эти режимы не проверялись совсем и наверняка потребуют отладки. Также в списке есть Universal protocol, это наследие StabAVR, некогда хотел задействовать, но отложил пока.
  • Продуманная комплексная система безопасности, аппаратная и в составе алгоритма.
  • Интерфейс в виде вэбстраниц в локальной сети. Его можно выводить себе удаленно с помощью различных технологий VPN. Вывод краткой информации на дисплей. Запись логов на свою флэш, на устройство в локальной сети и в облако Самовара.
  • Удалённое оповещение через личного телеграм бота. Удаленное управление по протоколу blynk. У автора Самовара есть даже своё мобильное приложение с использованием протокола Blynk, оно тоже должно работать, там только нет управления вторым насосом над царгой пастеризации.
  • Режимы работы: Ректификация, Дистилляция, Бражная колонна, Пивоварение, НБК, Сыроварение. Можно приспособить и под другие, например Сувид, Дозреватор, Экстрактор Соцклета.
  • Возможность (хоть и ограниченная) писать свои алгоритмы и дополнять существующие с помощью встроенного языка программирования LUA.
  • Для режимов используются строковые Программы, позволяющие эти режимы гибко настраивать под себя. В режимах Ректификация, Дистилляция, Пивоварение, Сыроварение программы ограничены 29 строками на выбор. В НБК программа фиксированная, можно менять только параметры её строк.

Вот так, сделал себе мод, и решил поделиться. Ибо "Нельзя есть мороженое одному."
Некоторое время уживался в одной теме с Самоваром. Однако мод вырос настолько, что автор Самовара вежливо попросил меня создать свою тему, что я и сделал.
Схема для ESP32 и плата те же, что у Самовара, за исключением энкодера. Вместо энкодера подключается драйвер ШД насоса над царгой пастеризации. Также можно использовать только BMP180.
Схема и плата для ESP32S3 актуализируются здесь . Схемы и платы для ESP32 есть в составе Самовара, они совместимы с небольшими оговорками.
И это хорошо, у пользователей есть альтернатива.
В Самоваре также заложена своя поддержка ESP32S3, его при желании можно запустить на моей плате, но придётся разобраться в нюансах.
Существует мой вариант платы для Самовара на ESP32 здесь и I2C приставка с термисторами
У Самовара есть свой сайт с обширной документацией и другими сервисами.
По большей части изложенная там информация может быть использована для Самоварыча. Не вижу смысла писать тоже самое второй раз и вообще не представляю себе первый пост в теме с таким объёмом, поэтому далее будут описаны только отличия Самоварыча от Самовара версии 6.26 (он ведь тоже продолжает своё развитие).
Желающие, имеющие в наличии только плату с ESP32S3 или ESP32 могут за пару минут прошить в неё Самоварыча, посмотреть и предварительно оценить интерфейс и возможности. Решить, нужно ли им это. Далее можно почитать документацию, приобрести необходимые недостающие компоненты и приступать к сборке.

Кратко:
Упрощены процессы прошивки и инициализации. Самоварыч распространяется на ряду с исходниками также готовыми бинарными файлами.
Доработан интерфейс для удобства, упрощены некоторые настройки и т.п. Проведен ряд оптимизаций и дебаг. Добавлена встроенная поддержка термисторов. Использование второго перистальтического насоса над царгой пастеризации.
Добавлен режим сыроварения. Пока в упрощенном виде.
Есть и другие отличия, не все в пользу Самоварыча. Например нет поддержки I2C Stepper, в качестве датчика атмосферного давления только BMP180.
На многих параметрах в настройках есть всплывающие пояснения.

Подробно:Аппаратные отличия:
  • 1. Отсутствует поддержка I2C Stepper, I2C расширителей портов, датчиков давления MPX, датчик атмосферного давления только BMP180. Отсутствует энкодер.
  • 2. Добавлен дисплей oled i2c 128/64 px. На него при загрузке выводится количество найденных датчиков температуры DS18B20 и NTC, SSID подключенной точки wi-fi и полученный IP либо сообщение о поднятии своей точки доступа, диагностические сообщения: неисправность файловой системы...
    Во время работы на дисплей вывадятся в 2 столбца:
    Время. Продолжительность работы.
    Статус.
    Температура пара. Дельта температур пара и царги.
    Температура царги. Температура ТСА.
    Температура куба. Температура воды.
    Скорость отбора. Мощность/напряжение на ТЭНе.
    SSID Wi-Fi. Давление ДД.
    IP. Текущий RSSI.
  • 3. Поддержка использования второго перистальтического насоса для отбора голов над царгой пастеризации (ЦП). Насос над ЦП такой же как на отборе тела. Для унификации. Настройки скорости общая. Калибровка по основному насосу. В случае ESP32 и платы Самовара второй насос над ЦП подключается вместо энкодера, пины: STEPPER2_STEP 19, STEPPER2_DIR 18, STEPPER2_EN 23.
    В случае установки галки в настройках - "Использовать второй насос для отбора голов":
    В режиме отбора голов вместо основного включается насос над ЦП со скоростью из соответствующей строки программы. В режиме отбора тела и предзахлеб работает со скоростью указанной в настройках "Скорость насоса при отборе тела:". Всегда можно подкорректировать из основной страницы Web интерфейса. На хвостах должен стоять.
    Если галка не стоит всё как у Самовара.
    Есть отличие от Самовара в отображении скорости насосов. У меня отображается скорость, которую возвращает встроенная функция на соответствующий запрос. Там присутствует ступенчатость. На 1/2 может и не заметите. При делителях 1/8-1/32 и высоких скоростях будет хорошо заметна.
    Она есть в любом случае. Чем больше знаменатель и скорость, тем шире ступенька. Так что выбирайте: шум или точность. Или ищите промежуточный компромисс. Для меня тишина важнее, поэтому использую 1/16.
  • 4. Поддержка расширителя I2C с термисторами как хорошая альтернатива DS18B20. В случае платы Самовара собирается отдельно, на плате Самоварыча интегрирован. Сделана удобная их настройка. Расчет характеристики термисторов. Калибровка по 2 замерам (подмышка и кипение с поправкой на атм. давление). Добавлена в настройки возможность включения чтения с термисторов и/или с DS18B20. Сначала пытается читать DS18B20, затем термистор, если термистор есть используется значение с него.
    Код чтения термисторов повзаимствован отсюда [Подключение NTC-термисторов на шину 1Wire как и DS18B20]
    Почему термисторы.
    По сравнению с DS18B20 просто сказка, особенно если подключить обе ADS1117 к I2C Самоварыча. Ни разу не пожалел о переходе на них.
    Маленькие, можно вставить в любую гильзу, после калибровки точные, низкая инерционность, гораздо меньшая дискретность и высокая стабильность измерений. Очень просто примотать к любой трубке. А еще дешевые до безобразия. Я купил на али 20 шт. уже припаянных к проводам 10 см и залитых пластиком, осталось только нарастить до нужной длины.
  • 5. Управление вентилятором охлаждения корпуса по bmp180. На плате Самовара с ESP32 - в случае если не используется насос либо второй клапан воды (не задействован пин 4).
  • 6. Добавлена поддержка простого датчика наличия протока воды, пин должен быть подтянут к земле через резистор 10-20 кОм. Датчик должен подключать пин к 3,3В. 3,3 В есть на пине - вода течет, 0 - не течет. После запуска нагрева и прогрева куба до температуры "Т в кубе открытия клапана/включения насоса воды:" из Настройки/Исполнители (по умолчанию 77+2 гр.Ц) есть 20 сек на подачу воды. Потом, в случае если на пине будет 0, произойдёт аварийное отключение. 20 сек отсчитывается с момента появления 0 на пине. Т.е. кратковременный перерыв подачи воды процесс не остановит. В общем так же как с ротационным, только без расчета количества. Состояние пина в интерфейсе сооветствует индикатору WS. Включается его поддержка выбором типа датчика в выпадающем списке на странице Настроек/Прочие/Контроль потока воды.
    Внимание, у данного датчика важна его ориентация в пространстве и направление протока воды. Вода должна протекать вверх, на датчике есть стрелка.

Отличия интерфейса
  • 1. Убран wi-fi manager, своя реализация инициализации WiFi. Настройки WiFi можно просто записать в файл wifi.ini и закинуть вместе с остальными файлами во флэш. Если Самоварыч его найдет, то в случае наличия там одной точки доступа попытается первым делом подключиться к ней, если их там больше он поищет их и подключится к той у которой сигнал лучше. После успешного подключения запишет её как точку по умолчанию в NVS. После этого wifi.ini можно удалить если поиск быстрой точки доступа не нужен больше.
  • 2. Веб интерфейс быстрее. Переход полностью на ajax запросы с отказом от плейсхолдеров. Использование gzip сжатия всех html страниц. Сокращен с 0.9 до 0.5 кБ размер регулярно отправляемой JSON строки. Частота её генерации - не чаще запросов от одного клиента, т.е. 2 сек. Если запросы перемежаются от разных клиентов передаётся сгенерированный ранее JSON. Клиент подавший запрос первым по прошествии с предыдущего запроса 3000 мс назначается ведущим, для него JSON генерируется всегда, остальным шлются актуальные копии. Если ведущий перестаёт слать запросы через 3000 мс ведущим может быть назначен первый клиент приславший запрос. Таким образом все онлайн клиенты должны получать все сообщения. Теперь задосить esp32 запросами JSON стало чуть сложнее. Заменил в интерфейсе алерты на менее надоедливые, сделаны исчезающими, выскакивают в центре экрана, если ошибка - красный, уведомление - зеленый.Индикация состояния основных пинов датчиков и реле на главной странице. Нужно для проверки проходжения сигнала от датчика захлёба, для более четкого понимания процесса, например видим что на кнопках, что на реле и т.п. Сделана возможность вручную переключать состояние пина WATER_PUMP_PIN и любое из 4 реле кликом на соответствующем статусе внизу в интерфейсе.
    Индикация подключенного состояния стабилизатора мощности в случае получения от него отчетов.
    Количество возможных строк программ увеличено до 29. Автоматическое сохранение программ в виде файлов в текстовом формате, а так-же восстановление их при загрузке.
    Заменил в интерфейсе алерты на менее надоедливые, сделаны исчезающими как в техстранице, выскакивают в центре экрана, если ошибка - красный, уведомление - зеленый.
    Переделан способ отправки сообщений пользователю. (кольцевой буфер на 10 сообщений по 300 байт (не менее 150 русских символов), отправка FIFO. Каждый запрос сервера получит 1 сообщение из очереди буфера. Т.о. если сообщений в буфере будет несколько будет выводиться по одному каждых 2 секунды, пока все не выведет. В случае переполнения буфера самые старые сообщения удаляются. Время пишется в начале сообщения при его добавлении, чтобы при выводе оно было корректным. Если есть PSRAM буфер создаётся в ней на 100 сообщений. Json создаётся раз в 2 секунды, если поступает более 1 запроса отдаётся уже созданный, т.о. два и более клиентов получают все сообщения. Урезан до минимума объём Json строки. (Для Devkit v.1 из-за недостатка памяти буфер на 4 сообщения.)
  • 3. Практически все настройки находятся на странице Setup.htm и они аналогичны настройкам Самовара, те что у него в Samovar_ini.h и выбираются до компиляции тоже в Setup.htm и их там даже больше. Все параметры инициализированы безопасными значениями. Остаётся донастроить под своё железо.
    Поддержка отдельной настройки скорости шагов на мл насоса НБК, со своей калибровкой.
    Калибровка узла разбора и ручное управление им. Также калибровка датчика протока воды. Использование простого датчика протока воды без вращающихся деталей.
    Добавлена возможность управления регулятором мощности с помощью ШИМ, Modbus, Universal protocol. Это пока задел на будущее, если будут заинтересованные настроить будет просто. Реализовано управление стабилизатором мощности от dranek по WiFi.
    Реализован простейший фильтр на датчик атмосферного давления с настройкой в Setup.htm, 0-отключен, 99 - максимальное сглаживание. (Измерения BMP180 сильно болтает, это сказывается на температурах и соответственно на процессе, имхо надо фильтровать и 99 считаю в самый раз. По умолчанию стоит 50.)
    Адреса датчиков DS18B20 в настройках сохраняются отдельной кнопкой для исключения случайного их сбрасывания.
    В настройках есть возможность отключить запись логов и статуса в флэш память. По умолчанию логи и статус отключены, бережем флэш ESP32, да и надежности LittleFS это не добавляет. Соответственно при отключенном логировании встроенные графики работать не будут, надо - включайте. При этом если включена отправка в облако логи по MQTT отправляться всё равно будут.
    В INI.h осталось только плавное ускорение ШД. Остальное я перенёс в Setup.htm c целью во первых упростить отладку, во вторых упростить прошивку бинарниками.
    Отказ от файлов профилей.
  • 4. Другой edit.htm для работы с файлами в файловой системе ESP32. В отличие от оригинала умеет сжимать/разжимать файлы, редактировать сжатые файлы, открывать страницы в новой вкладке, удалять папки, показывает размеры файлов, навигация по папкам. Плюс строка состояния с полезной инфой (она поддерживается только Самоварычем и Регистратором в виде отдельного устройства на ESP32S3).
  • 5. Независимая страница преднастройки: WiFi + файлы в флэш памяти (техстраница). Откроется при попытке открытия интерфейса сама, если нужные файлы отсутствуют или файловая система не инициализирована. Можно открыть самостоятельно по кнопке Преднастройка в Настройках.
  • 6. Изменена функция и страница калибровки насоса. В режиме НБК калибруется насос НБК, 1000 мл, отдельный параметр шагов/мл в SamSetup и setup.htm. Добавлена вторая страница калибровок: Расчет характеристики термисторов. Калибровка по 2 замерам (подмышка и кипение с поправкой на атм. давление). Калибровка датчика протока воды, узла разбора.
  • 7. Убрано меню на дисплее. Вэб интерфейс обновляется пользователем самостоятельно каждый раз при обновлении путем перезаливки содержимого папки data в флэш память esp32 с помощью техстраницы.

Режимы работы.
  • 1. Убрано предварительное смачивание насадки в начале ректификации. Сделан автостарт отбора после стабилизации в начале работы. Добавлена настройка продолжительности стабилизации в ректификации.
  • 2. Использование датчика уровня (захлеба)(WHLS) для перехода к следующей программе при дистилляции. На ESP32S3 есть возможность подключить еще два датчика уровня (BLU и BLD), пока можно использовать как второй и третий для перехода к следующей программе при дистилляции. В последствии они надеюсь также будут задействованы в регуляторе уровня барды НБК. Их пины также должны быть подтянуты к земле резистором 20 кОм (используются только P-N-P), для WHLS - к земле или к 3,3В в зависимости от типа датчика. Состояние датчиков показано в интерфейсе соответствующими индикаторами.
    Порядок установки датчиков WHLS - Тара 1, BLU - Тара 2, BLD - Тара 3. От этого зависят только сообщения выводимые Самоварычем. Если один из датчиков сработает произойдёт переход на следующую строку программы и его показания до перезапуска программы учитываться больше не будут. Соответственно, на какой строке это произойдёт также не важно. Функция включается в Setup.htm.
  • 3. В режимах варки пива и сыра.
    При экспорте программы вместе с ней на диск сохраняется описание. Возможная длина описания увеличена с 250 до 1500 символов. Мне не известно как воспримет такие тексты облачное хранилище логов Самовара.
    1) Настроена работа мешалки, запрограммировано 3 вида подключения мешалок.
    1 - Простая релейная: реле 2 (вкл/выкл) и пин STEPPER2_DIR (направление).
    2 - Шаговый двигатель №2 (тот, что вместо энкодера)
    3 - Драйвер коллекторного двигателя BTS7960 (HW-039), управление тремя пинами STEPPER2_EN - вперед, STEPPER2_DIR - назад, WATER_PUMP_PIN - скорость (ШИМ 0-1024)
    В настройки исполнителей добавлены выбор типа мешалки и скорость/ШИМ двигателя.
    В интерфейс добавлена возможность изменять уровени напряжения/мощности, используемые ПИД регулятором. Но во флэш они сохраняются только из Setup.htm.
    Кроме коррекции по атмосферному давлению температур куба, пара и царги Самовара реализована отключаемая дополнительная коррекция по датчику давления в кубе для Т куба и 1/3 от него для Т царги.
Альтернатива облачному логированию.
  • В состав исходников включен обновленный регистратор для PC v.4. Он при запуске может автоматически заменить облачное хранилище логов Самовара.
    В нем добавлена в настройки config.ini маска UDP рассылки. Её нужно отредактировать под свою локальную сеть, для уменьшения охвата рассылки и надежного опознавания Самоварычем, в большинстве случаев это должно быть 192.168.0.255 или 192.168.1.255. По умолчанию стоит 255.255.255.255, потому что я не знаю местного адресного пространства. Можно было бы попробовать определять маску автоматически, но на РС часто бывает несколько подсетей, локалка/впн/блютуз и т.д., сложно определить в какой находится Самоварыч. У меня есть опыт при написании эмулятора стабилизаторов, он не всегда корректно определяет нужную маску сети. Поэтому вручную.
  • Реализовано получение текущего времени от Регистратора на PC в случае отсутствия связи с интернетом у NTC библиотеки.
  • Кроме того как альтернатива есть поддержка автономного MQTT регистратора на основе Lilygo T-Dongle S3. Если включить этот свисток, Самоварыч автоматически его обнаружит в сети и вместо сервера будет отправлять MQTT данные ему, а тот запишет на micro sd. Со своим веб интерфейсом, графиками, логи можно потом смотреть, экспортировать. Ну и часы по совместительству.
Смысл использования ESP32S3.Количество свободной памяти значительно увеличивается, вкупе с более быстрым процессором это дает ощутимый прирост скорости и стабильности. Под управление вентилятором охлаждения корпуса по bmp180 задействован отдельный пин. Два дополнительных датчика уровня и два дополнительных LUA пина в перспективе.
При покупке ESP32S3 берите вариант с размером флэш памяти 8 или 16 Мб и наличием PSRAM, а так-же с возможностью использования выносной антенны (без антенны его не включать, помрёт). Кнопки reset и boot на использованного мной модуля расположены вдоль его пинов, у него свой типоразмер, разводка моей платы под него.
Такой
395027.png
395027. Комплекс автоматизации Самоварыч. Автоматика.

Маркировка чипа должна содержать в конце нечто вроде N8R2, здесь 8 - размер флэш памяти, 2 - размер PSRAM. Преимущество наличия PSRAM будет даже при прошивке Самовара, поскольку библиотеки её используют, нужно только перед компиляцией включить её поддержку в Arduino IDE: Выбрать плату ESP32S3 Dev module, Инструменты - PSRAM - QSPI PSRAM. Увеличенный размер флэш памяти позволит записать более длинный лог. Прошивка мной будет компилироваться именно под 8 Мб. Антенны есть разные в продаже, важно чтоб продавец указал, что подходит для ESP32S3, разъем там свой.
Компиляция.Перед запуском ide скопируйте partations.csv из папки partations shemes/#mb_OTA (#mb - размер флэш памяти вашей ESP32, OTA/NOOTA - создавать две партации для обновления по WiFi (OTA) или нет).
Arduino IDE весии 2.3.8 c SDK ESP32 v. 3.3.8. плата ESP32 DEV MODULE или ESP32S3 DEV MODULE, PSRAM: QSPI PSRAM (если есть), Erase All Flash Before Sketh Upload: Enable, Partations Sheme: custom

В папке с прошивкой есть три удобных батника для Windows:
clear_arduino_cashe.bat - очистка прежней папки компиляций, сразу и без лишних вопросов, перед прошивкой этой версии скетча запустить обязательно. Чистит папку C:Users<Пользователь>AppDataLocalarduinosketches
install_libraries.bat - переименование прежней папки libraries в libraries_old_0 (1,2...) и копирование библиотек вместо неё из папки со скетчем, также запускать обязательно, библиотеки изменились.
restore_libraries.bat - восстановить прежние библиотеки из libraries_old_0 (1,2...).
Запускаем install_libraries.bat (копируем нужные библиотеки).
В файле INI.h выберите ESP32 DEVKIT или ESP32S3. Там же вбиваем свои логин и пароль WiFi (не обязательно, но удобно).
Компилируем (Ctrl + Alt + S).
Как прошить Самоварыча в первый раз за считанные минуты.Здесь описана прошивка ESP32 или ESP32S3, у них разные бинарные файлы прошивок (находятся в соответствующих подпапках папки build после компиляции в Arduino IDE, в выкладываемом архиве они уже есть).
  • 1. Если драйверы еще не установлены. Идем в руководство Самовара, подготовка ESP32 к загрузке. Скачиваем и устанавливаем там драйверы CH340/CH341 или CP210х в зависимости от платы (можно и оба на будущее). Подключаем ESP32 к USB, в диспетчере устройств убеждаемся что появился доступный СОМ порт. ESP32S3 подключать в её правый UCB-C порт, если смотреть с их стороны.
  • 2. Идем на страницу сервиса для управления прошивками https://thelastoutpostworkshop.github.io/...kit/espconnect/. Жмем сверху CONNECT, выбираем на запрос СОМ порт ESP32. Заходим в подраздел Flash Tools. Обязательно, сохраняем на всякий случай бэкап предыдущей прошивки (Самовара например, потом можно будет откатиться за пару минут) нажав DOWNLOAD FLASH BACKUP, переподключаемся (DISCONNECT и CONNECT). Жмем на поле под надписью Flash Firmware и выбираем предварительно распакованный bin файл полной прошивки ESP32 Samovaritch_v1_5_0.ino.merged.bin (merged - значит полная прошивка), убеждаемся, что Flash offset установлен 0x00. Жмем FLASH FIRMVARE, соглашаемся с предупреждением, ждем пока прошьётся.
  • 3. Инициализация файловой системы и подключение к WIFi.
    Жмём DISCONNECT , нажать на ESP32 кнопку reset, дождаться когда Самоварыч поднимет точку доступа, подключиться к ней (пароль по умолчанию 12345678), зайти в браузере на 192.168.4.1, Попадёте на техстраницу. Здесь прописываем свой SSID и пароль от WiFi. Сохраняем с перезагрузкой. Самоварыч должен подключиться к WiFi, убедиться можно в мониторе COM порта (мониторы есть разные, в сетевом сервисе для прошивки тоже свой есть). Там же узнать его IP и опять зайти на техстраницу уже из браузера компа (ну или опять из телефона, но файлы заливать удобней с PC). Там инициализировать файловую систему, нажав FormatFS. После залить все файлы из папки data, нажав Выбрать файлы (можно все сразу выбирать в папке), Открыть, Upload selected. Дождаться через несколько секунд зеленого алерта, перезагрузить ESP32 кнопкой reset.
  • Если модуль новый дайте ему после прошивки не трогая поработать минут 10. Пока займитесь роутером. В настройках роутера сразу желательно сделать привязку определенного IP к MAC адресу данной ESP32, чтоб в дальнейшем он не изменялся. Роутеров разных много, обычно это мной интуитивно делается. Не знаете как, почитайте к нему инструкцию.
  • Всё, можно вставлять в плату, и заходить в вэбинтерфейс по его IP. IP можно увидеть на дисплее, в мониторе COM порта, на вэбстранице своего роутера.

Прошивка с помощью flash_download_tool (родная утилита от Espressif).Это много раз и много где описано, потому кратко.
При запуске выберите com порт на котором ваша плата. Файл с полной прошивкой (merged) шить по адресу 0x00, адрес прошивки обновления зависит от выбранного при компиляции файла partations.csv.
При полной прошивке сначала жмём ERASE, ждем пока не закончит стирать, потом жмём START, ждём пока не закончит шить.
Первичный запуск.Если в INI.h не прописаны ваши WiFi SSID и пароль Самоварыч поднимет точку доступа. Подключаемся к ней, заходим с телефона на http://192.168.4.1/, попадаем на техстраницу, там прописываем адрес и пароль своей точки доступа, сохраняем, Самоварыч перезагрузится, смотрим в мониторе ком порта, либо на дисплее, либо в интерфейсе роутера его IP адрес, заходим на него с компа, попадаем опять на техстраницу. Если файловая система не инициализирована нужно её отформатировать, нажав Format FS. Если форматирована, то нажав на эту кнопку ничего не испортите. Заливаем файлы из папки data скетча все скопом: Жмем Жмем Выбрать файлы, находим папку data, выбираем внутри все файлы (Ctrl+A), жмем Открыть. После этого Upload Selected. После паузы в несколько секунд в центре страницы должен появиться зеленый алерт, значит загрузка успешна. Если алерт красный, значит загрузка не удалась. Можно попробовать выбирать меньшее количество файлов за раз. Как вариант можно с ноутбука к WiFi точке доступа Samovarich изначально подключиться, зайти на http://192.168.4.1/ отформатировать файловую систему и залить файлы, прописать адрес точки WiFi и пароль, нажать Save & Reboot, всё.
При открытии вэбинтерфейса следите чтоб браузер не пытался использовать https. Иначе увидите белый экран.
После загрузки файлов жмем на техстранице Exit to Main и попадаем в интерфейс Самоварыча.
Прошивка Самоварыча при обновленииВ дальнейшем при выходе обновлений можно будет прошивать их по OTA.
  • 1. Для этого в настройках (Setup.htm) надо это OTA включить, после сохранения Самоварыч перезагрузится с задействованным OTA. Рядом с бинарниками есть bat файл, в нем нужно изменить IP Самоварыча на свой и актуализировать имя бинарника, запустить. Прошивка зальётся по воздуху. После этого в настройках OTA надо отключить, чтобы не загружать лишней нагрузкой чип.
  • 2. Можно прошиться обновлением с помощью указанного в первичной прошивке вэбсервиса. Бинарник выбираем тот же что при OTA обновлении, выбираем app0 в recommended offset и прошиваем его, если вдруг обновления не произошло - app1.
При обычной компиляции бинарники тоже можно легко найти в папке вроде C:Users<Пользователь>AppDataLocalarduinosketchesFABB4BB9F13AD1B9E860CFDE528639BF Здесь FABB4BB9F13AD1B9E860CFDE528639BF папка создаваемая для каждой новой компиляции, найти последнюю легко по дате создания. Имя файла бинарника = Имя файла прошивки + .bin
Находим утилиту espota.exe по пути вроде C:Users<Пользователь>AppDataLocalArduino15packagesesp32hardwareesp323.3.3 ools, здесь 3.3.3 версия вашего SDK. Копируем её вместе с бинарником в отдельную папку.
В той же папке создаем cmd или bat файл с содержимым:
espota.exe -r -i 192.168.0.124 -p 3232 "--auth=admin" -f "Samovaritch_v1_3_2.ino.bin"
pause
Здесь 192.168.0.124 ip адрес вашей ESP32, Samovaritch_v1_3_2.ino.bin - файл с бинарником.
Запускаем, и видим прошивку по OTA, если конечно в Setup.htm она включена.
Не получилось - пробуем ещё, повторная компиляция не нужна.

При обновлении также нужно перезалить вручную файлы из папки data на случай обновления интерфейса.

Мод не проверен мной на всём заявленном спектре режимов и оборудования (это затруднительно), только на том, которым пользуюсь я и другие уже использующие. Желающие проверяют у себя, если что то не работает, я по возможности исправлю.

Будет развиваться, есть еще нереализованные планы.

Я принимаю благодарности в виде багоотчетов, замечаний, предложений, доработок скетча, написанных мануалов, схем, разводки собственных плат, опыта эксплуатации и т.п. В общем коллективная доводка до нужной каждому кондиции.

Раз уж завёл тему буду по возможности следить в ней за порядком.

Продолжая традиции темы Самовара здесь обращение строго на Вы. С уважением ко всем участникам.
Пустой трёп, оскорбления и прочее непотребство буду удалять сразу. Шутить без оскорблений можно.

Предвосхищая вопросы типа "Почему вы сделали это так? Ведь можно было... Вот здесь всё уже есть." сразу ответ "Так уж получилось. Это хоббийная поделка. А я не всеведущ."

Данный пост будет периодически актуализироваться. Сейчас он на стадии написания.

Посты со 2 по 4 хочу зарезервировать для других составляющих комплекса автоматики, Стабилизатор и т.п.

Текущие прошивка, схема для ESP32S3, корпуса, герберы:
Samovaritch_v1_5_0.7z

Schematic_Samovar-in-ESP32-S3_2026-05-09.png
Schematic_Samovar-in-ESP32-S3_2026-05-09. Комплекс автоматизации Самоварыч. Автоматика.


box_and_gerber.7z

P.S. У Самоварыча есть группа для техподдержки в Макс, там реакция на ваши трудности со сборкой и настройкой будет быстрее. Вход пока свободный.
dranek Доктор наук Минск 596 601
Отв.1  Сегодня, 10:34 (через 4 мин)
Стабилизатор на на ESP32-C3 Supermini и PZEM-004t с управлением по WiFi и UART.
Пока что это копия поста отсюда. Собираю всё в одно место.
Входит в комплекс Самоварыч.
stab_esp32c3_v4_2_3.zip внутри исходники, бинарники, схемы, корпус на дин рейку.
В корпусе возможно не до конца точно выставлены крепежные отверстия для плат.

Принцип регулирования.Датчик Zerocross, нужен обязательно, и именно тот что на схеме. Он выдаёт отрицательный импульс при пересечении синусоиды напряжения с нулем, при этом ширина импульса у него стабильна. Стабилизатор после включения определяет времена начала и конца импульса, усредняет 100 замеров и запоминает смещение от начала импульса до реального момента пересечения с 0. При сборке он обычно начинает работать сразу. Обычные проблемы непропай. Легко собирается на макетке.
Для быстрого регулирования используется калибровочная таблица сопоставления времени задержки открытия симистора заданию мощности, в прошивке она уже есть, однако для более быстрого выполнения задания калибровку из вэб интерфейса с подключенным ТЭН-ом желательно запустить. Длительность около 6 минут, за это время стабилизатор пройдет по диапазону задержек и запомнит мощности на 32 ступенях с пересчетом в относительные единицы.
В настройках есть поле с максимальной мощностью текущего ТЭН-а. Можно внести вручную, однако через 6 секунд после включения разгона стабилизатор его все равно перепишет и только после этого включит контактор разгонного ТЭН-а. Таким образом к нему можно подключать любой ТЭН до 10 кВт (это ограничение в прошивке, можно поменять) и он с ним после одного разгона сможет корректно работать.
После получения задания на загрузку определенной мощностью стабилизатор мгновенно выставляет соответствующую задержку с помощью таблицы и интерполяции.
Через 4 секунды (меняется в настройках вэб интерфейса) он производит первый замер мощности и с периодичностью из настроек (по умолчанию 4 сек) начинает работать регулятор. У регулятора есть два вида коррекции:
1) Адаптивная. Если отклонение от задания больше 0.2% (на ТЭН 2 кВт это 4 Вт). Её величина зависит от процентного от максимальной отклонения от задания мощности и коэффициента воздействия из настроек. В случае например внезапной просадки напряжения в сети из-за подключения другой мощной нагрузки (или наоборот или если калибровочная таблица неверна) изменение задержки открытия симистора будет пропорционально недостающей мощности, коэффициенту, и с поправкой на калибровочную таблицу, поскольку зависимость между мощностью и задержкой нелинейная из-за синусоидальности напряжения. Таким образом при правильной настройке первая же адаптивная коррекция должна вернуть мощность к заданию.
2) Плавная. Она поддерживает мощность как можно ближе к заданию изменяя с периодом регулирования задержку на 1 мкс (из 10000 мкс в полупериоде синусоиды 50 гЦ). Таким образом при плавном изменении напряжения стабилизатор будет на это медленно реагировать.
Управление1) Web интерфейс, самый удобный для ручного.
Есть возможность отключить регулятор, например если захочется выяснить какая мощность соответствует какой задержке для более точного установления пределов (по умолчанию 500-9500).
2) Две кнопки. Короткое зажатие +-10 Вт, длительное - с нарастающей скоростью, Зажатие обеих вкл/выкл разгона.
3) Внешнее управление по UART, используется модифицированный протокол Stab AVR с префиксами в ответах для асинхронности. Если захотите использовать с Самоваром префиксы надо самостоятельно убрать из прошивки. Самоварыч с ними работает по умолчанию.
4) Внешнее управление по WiFi. Стабилизатор шлет в подсети UDP пакеты с текущим режимом, заданием и мощностью, по умолчанию на порт 12345 (настраивается через web интерфейс). Самоварыч, при включенном виде стабилизатора "WiFi c UDP" слушает этот порт (тоже настраивается номер в настройках) и при получении пакетов определяет IP стабилизатора и начинает им управлять через эндпоинты. Настройки минимальные, в одной подсети может быть множество пар Самоварыч-Стабилизатор, мешать друг другу не будут. Работает у меня хорошо.
НастройкиВ ВЭБ интерфейсе настраиваются:
SSID и пароль WiFi (первый вход классический через точку доступа и пароль 12345678).
Мощность ТЭНа (Вт).
Периодичность регулирования (с):4
Коэффициент воздействия (1-100):50
Нижний предел задержки, 0-1000 (мкс):500
Верхний предел задержки, 9000-10000 (мкс):9500
Порт UDP вещания:12345
Галка "Запомнить в NVS при применении" сохраняет настройки в флэш память чтобы они восстановились при следующем включении.

Итого: собираем, настраиваем, подключаем ТЭН любой мощности, пользуемся.
Раз выполнение заданий мгновенное будет работать и с ПИД регулятором при варке пива.
Стабилизатор.png
Стабилизатор. Комплекс автоматизации Самоварыч. Автоматика.
dranek Доктор наук Минск 596 601
Отв.2  Сегодня, 10:34 (через 1 мин)
Резерв 2
dranek Доктор наук Минск 596 601
Отв.3  Сегодня, 10:35 (через 2 мин)
Резерв 3