Авторизация
Регистрация

Напомнить пароль

Система управления брожением пива на esp32c6 (быстрый обзор)

  1. Цена: 390₽ + модули реле и термодатчики
  2. Перейти в магазин

Очень давно не писал обзоры на муське, решил это исправить.

Ранее я писал обзоры и часть про пивоварение. Несколько лет я не варил пиво из-за смены деятельности, но в 2024 году решил продолжить варить своё вкусное пиво. Только, конечно, я слегка объёмы увеличил — со 100 литров на 300+ литров.

 

Про оборудование напишу, если будет интересно, но в данном посте хотелось бы рассказать о том, как я с нуля «навайбкодил» проект по управлению холодильниками.

Сразу честно: проект делался в формате «вопрос-ответ», где я — постановщик задач/тестер/руками в железо, а существенную часть кода помогала писать нейросеть. На доведение до состояния «не стыдно дать другому человеку» ушло примерно 6 месяцев (с переделками, багфиксами и полировкой).

Для чего мне это понадобилось?

— На данный момент работаю вахтовым методом и управлять температурой пива достаточно проблематично.
— Конечно есть готовые проекты для Smart Life, но для каждого холодильника надо своё устройство, да и последнее время РКН начали блокировать данный сервис.
— Хотелось бы, чтобы был режим профилей, т.е. сначала контроллер выдерживал одну температуру несколько дней, потом другую, третью и т.д. (я ориентировался на до 10 шагов в одном профиле).

Почему nanoESP32-C6?

Выбрал я контроллер nanoESP32-C6. Почему именно он:

— Wi-Fi + BLE: в проекте используется BLE как основной канал управления, а Wi-Fi/MQTT — для удалёнки и сервисных функций.
— 16MB Flash: это важно, потому что внутри контроллера хранятся не только настройки, но и графики/история/логи, плюс нужен запас под OTA.
— Разметка памяти под задачу: в скриптах сборки/прошивки используется профиль PartitionScheme=app3M_fat9M_16MB.

Сколько «холодильников» в системе?

Мне надо было управлять тремя устройствами: охладитель (для охлаждения ЦКТ) и для двух ЦКТ (левый и правый) на 200 литров, насосы перекачивают хладогент в рубашки ЦКТ.

Но для проекта решил сделать управление 5 устройствами: 3 сейчас и плюс 2 на будущее.

MQTT / удалёнка

Как я и писал выше, хочу управлять всеми холодильниками удалённо и самый удачный вариант — это брокер MQTT.

Я использовал сервис wqtt.ru, т.к. ценник всего 299 рублей в год.

Структура топиков сделана аккуратно, чтобы несколько устройств не мешали друг другу:
— топики строятся как {mac}/esp/… и {mac}/app/…
— где {mac} — суффикс устройства (последние 4 hex-символа MAC).

Датчики температуры

Датчики температуры — DS18B20.

Почему:
— можно посадить на OneWire (в прошивке шина — GPIO4)
— все датчики можно повесить на один порт (а не на 5 отдельных)
— погрешность у датчиков около ±0.5°C

Подключение (пины)

Ключевые пины из config.h:
— OneWire (DS18B20): GPIO4 (подтяжка 4.7 кОм к 3.3V)
— Реле (5 каналов): GPIO18, GPIO19, GPIO20, GPIO21, GPIO22
— Кнопка сброса: GPIO3

Уровень реле настраивается (Active LOW / Active HIGH) — чтобы не было сюрпризов типа «включено наоборот».

Логика работы холодильника (защиты)

В прошивке есть нормальные защиты и тайминги:
— отложенный старт после команды: 10 сек
— анти-флаппинг (минимум между остановками): 10 сек
— грейс-период потери датчика: 10 сек
— «отдых компрессора» по умолчанию: 60 мин работа / 10 мин пауза

Ограничения настроек:
— Целевая: от -20°C до +30°C
— Гистерезис: от 0.1°C до 10°C

Профили температур:

Профиль — это последовательность шагов (температура/гистерезис/длительность в секундах).
— можно стартовать / поставить на паузу / продолжить / остановить
— на паузе компрессор выключается и фиксируется отдельный статус
— во время выполнения профиля запрещены некоторые «опасные» изменения настроек (например, датчик)

Графики и статистика (хранится в контроллере)

Графики хранятся во внутренней памяти контроллера (FFat), папка /charts.

Агрегации:
5m, 1h, 1d, 1mo, 1y

 

Сроки хранения (кольцевые буферы, по проекту):
— 1h: 1440 точек (около 60 суток по часам)
— 1d: 360 точек (около года по дням)
— 1mo: 60 точек (около 5 лет по месяцам)
— 1y: 5 точек (около 5 лет по годам)

Плюс есть лента статусов компрессора (для дневного графика) со статусами:
0 стоп
1 охлаждение
2 поддержание
3 отдых компрессора
4 пауза
5 ошибка

OTA обновление

OTA реализовано через временный HTTP-сервер на контроллере:
— порт 8080
— POST /update
— GET /status
— токен выдаётся примерно на 300 сек
 

Backup / Restore

Бэкап/восстановление делается через временный HTTP-сервер:
— порт 80
— GET /backup.zip (настройки)
— GET /charts_backup.zip (графики)
— POST /restore (восстановление)
— GET /backup/status

Уведомления

Внутри контроллера события пишутся в FFat:
— /alarms.log, /errors.log, /notifications.log (ограничение ~50KB)

Если MQTT недоступен, уведомления ставятся в очередь:
— /push_queue.json и /tg_queue.json (FIFO, до 50 сообщений)

 

Ссылка на прошивку/архив: https://disk.yandex.ru/d/Eknr33MVx1n2WQ
MQTT сервис (как у меня): https://wqtt.ru — 299₽/год

Прошивка «в 1 клик»

В репозитории сделан сценарий прошивки для обычных людей:
— подключаешь контроллер
— запускаешь flash_holodos.bat

Скрипт:
— сам находит ESP32-C6 по VID/PID (VID_303A&PID_1001)
— сама скачивает самую свежую прошивку и приложение, а также скачивает все необходимые файлы для прошивки контроллера
 

После прошивки, нужно установить apk файл приложения на android устройство и перейти в мастер настройки, либо перейти в раздел справки, там всё детально расписано. 

Итоги

— один контроллер → до 5 холодильников/каналов
— датчики DS18B20 → до 5 на одной шине
— управление: BLE + удалёнка через MQTT
— профили температуры
— графики и история внутри контроллера
— OTA и Backup/Restore

Видео обзор приложения:
Клуб домашних пивоваров 18+

Планирую купить 0 Добавить в избранное
+4 +4
свернутьразвернуть
Комментарии (6)
RSS
+
avatar
+1
  • MrBoston
  • 31 декабря 2025, 01:26
Cut бы чуть раньше поставить…

Upd. Ага, уже, спасибо!
+
avatar
0
  • v-b
  • 31 декабря 2025, 01:26
Сделано )
+
avatar
0
  • DIMAace
  • 31 декабря 2025, 01:35
Актуально будет только послезавтра утром.
+
avatar
0
  • ZeRNoVoz
  • 31 декабря 2025, 01:51
мало что в этом понимаю, но написано хорошо и «вкусно»
+
avatar
+1
  • CTAHOK
  • 31 декабря 2025, 01:55
С возвращением! Много лет не было обзоров от главного пивовара муськи:)
+
avatar
0
  • v-b
  • 31 декабря 2025, 01:59
Я скучал по этому, но времени как-то мало стало последнее время ))
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.