Дозаторы добавок (Пиво и Сыр)
В режимах Пиво и Сыроварение по ходу программы нужно вносить добавки: в пиво — хмель (обычно 2–4 раза за кипячение), в сыр — закваску, фермент, хлористый кальций, соль, специи. Самовар умеет делать это сам или подсказывать момент. Ниже — четыре штатных варианта реализации дозатора, от самого простого к самому гибкому, с указанием, что для каждого нужно и как это задаётся в программе, а затем обзор самодельных конструкций, которые применяют пивовары по всему миру, и как их подключить к Самовару.
Вариант 1. Вручную по сигналу Самовара
Никакого оборудования не нужно. Самовар в нужный момент включает зуммер, показывает сообщение на дисплее и в веб-интерфейсе и отправляет push-уведомление в мобильное приложение и на сайт. Вы вносите добавку сами.
Пиво. За 30 секунд до конца каждой строки «B» (кипячение) Самовар присылает сообщение «Засыпьте хмель!». Сколько внесений хмеля — столько строк «B»: например, кипячение 60 минут с хмелем за 60, 30 и 5 минут до конца записывается как строки «B» на 30, 25 и 5 минут. Программа при этом не ждёт подтверждения и идёт дальше.
Сыр. Строка «W» (ручное действие) с действием «Внести закваску», «Внести фермент», «Внести добавку»: Самовар останавливает программу (мешалка, если задана, продолжает работать) и ждёт нажатия кнопки «Подтвердить» на странице режима, в приложении или на сайте. То же делает строка «D» (дозирование) со способом «Вручную» — в ней дополнительно фиксируется компонент и объём.
Плюсы: ничего не нужно собирать. Минусы: нужно быть рядом; в пиве точность момента зависит от вас.
Вариант 2. Карусельный дозатор хмеля на шаговом двигателе (Пиво)
Это штатный автоматический дозатор сухих добавок для режима Пиво. Одновременно с сообщением «Засыпьте хмель!» Самовар поворачивает основной шаговый двигатель (тот, что в других режимах крутит насос отбора) ровно на 1/20 оборота (18°). На вал двигателя ставится диск с ячейками, а под ним — неподвижная пластина с одним отверстием над котлом. После каждого поворота очередная ячейка оказывается над отверстием, и её содержимое высыпается в сусло.
Что нужно. Шаговый двигатель NEMA17 (подключается к разъёму насоса Самовара, отдельного драйвера или настроек не требуется), диск из пищевого пластика или нержавейки диаметром 150–200 мм с 20 ячейками по кругу (или меньшим числом — см. ниже), нижняя пластина с одним отверстием и крышка, чтобы пар от кипящего сусла не увлажнял хмель. Диск удобно напечатать на 3D-принтере. Хмель кладут в ячейки по порядку вращения, начиная с ячейки, следующей за окном выгрузки.
Как задаётся в программе. Ничего дополнительного: каждая строка «B» — одно внесение. Шаг делается в конце строки, поэтому первая порция (например, «хмель за 60 минут») высыпается в конце первой строки «B», которую можно сделать короткой, например 1 минуту. Режим микрошага драйвера должен быть 1/16, как и для насоса.
Если ячеек не 20. Угол одного шага задан в прошивке в функции HopStepperStep() (файл beer.h): TargetStepps = 360 / 1.8 * 16 / 20, где 20 — число ячеек на полный круг. Для диска на 10 ячеек замените 20 на 10 и перепрошейте Самовар. Вместо диска можно сделать барабан с продольными отсеками на горизонтальном валу — расчёт тот же.
Плюсы: полностью автоматическая варка, нет электроники сверх штатной. Минусы: только сыпучие добавки; в режиме Сыр этот шаг не выполняется (там двигатель занят насосом).
Вариант 3. Перистальтический насос для жидкостей (Сыр)
В режиме Сыроварение основной шаговый двигатель Самовара работает как дозирующий насос. Строка программы «D» (дозирование) со способом «Локальный шаговый двигатель» подаёт заданный объём в миллилитрах с заданной скоростью в мл/мин: например, 25 мл раствора хлористого кальция за 1 минуту или 50 мл разведённого фермента за 2 минуты. По окончании подачи программа сама переходит к следующей строке; если объём не набран за «Тайм-аут, мин», сыроварение останавливается с сообщением.
Что нужно. Перистальтическая головка на шаговый двигатель NEMA17 (такая же, как для отбора в ректификации) и силиконовая пищевая трубка. Входной конец трубки опускается в ёмкость с раствором, выходной заводится в сыроварню выше уровня молока. Раствор готовят заранее; закваску и фермент разводят в кипячёной воде — так объём получается достаточно большим, чтобы насос подал его точно.
Калибровка. Объём переводится в шаги по значению «Количество шагов насоса» (шагов на 1 мл). Оно задаётся на вкладке Настройки → Насос кнопкой «Калибровка насоса» (см.
Насос): насос прокачивает жидкость в мерную ёмкость, вы вводите фактический объём, и Самовар сохраняет коэффициент. Калибруйте с той же трубкой и той же жидкостью, что будете дозировать, и заранее заполните трубку — иначе первая порция уйдёт на заполнение.
Несколько компонентов. Один насос — один раствор. Если за варку нужно внести два-три разных раствора, между строками «D» ставят строку «W» «Внести добавку» и переставляют входную трубку в другую ёмкость (промыв её), либо используют второй насос на плате I2CStepper (вариант 4).
Плюсы: точный объём и время, без ручной работы. Минусы: только жидкости; один компонент на насос.
Вариант 4. Плата I2CStepper: насос и реле из Lua-скрипта (Пиво и Сыр)
Плата
I2CStepper добавляет Самовару второй шаговый двигатель (адрес 2 — насос) и четыре реле. Прошивка сама их не дозирует, но всё это доступно из Lua-скрипта, который запускается строкой программы «L»: в строке выбирают файл .lua и задают ему параметры (например, номер реле и объём) — так один скрипт обслуживает все внесения. Скрипт включает насос или реле, ждёт окончания и вызывает setNextProgram() — переход к следующей строке.
Жидкости — I2C-насос. Функция i2cpump_start(rate, volume) перекачивает volume мл со скоростью rate л/ч; шаги на 1 мл берутся из поля «Количество шагов I2C насоса» (Настройки → Насос), калибровка — на странице «I2CStepper». Пример скрипта dose_pump.lua, вносящего объём из первого параметра строки (в программе: файл dose_pump.lua, параметр 20) со скоростью 6 л/ч:
-- dose_pump.lua: внести arg[1] мл раствора насосом I2CStepper
if i2cpump_start(6, tonumber(arg[1])) == 1 then
while i2cpump_get_running() == 1 do delay(500) end
sendMsg("Раствор внесён", 2)
else
sendMsg("Насос I2CStepper не отвечает", 1)
end
setNextProgram()
Сыпучие — реле и бункеры с заслонкой. На каждую порцию хмеля (или соли, специй) делается небольшой бункер над котлом, дно которого закрывает заслонка на электромагните (соленоиде) 12 В. Реле платы подаёт питание на электромагнит — заслонка открывается, порция падает в котёл. Четыре реле — четыре порции; отмеряется каждая заранее, при закладке. Пример скрипта dose_rele.lua, открывающего заслонку бункера на реле с номером из параметра строки (в программе: файл dose_rele.lua, параметр 3) на полторы секунды:
-- dose_rele.lua: высыпать порцию из бункера на реле arg[1]
set_i2c_rele_state(tonumber(arg[1]), 1)
delay(1500)
set_i2c_rele_state(tonumber(arg[1]), 0)
sendMsg("Хмель внесён", 2)
setNextProgram()
Для каждого внесения в программе делается своя строка «L» с тем же файлом и своим параметром (номер реле или объём); тайм-аут строки задаётся в секундах.
Какие реле свободны. В режиме Пиво первое реле платы занято насосом перекачки сусла (см. страницу «I2CStepper»); остальные три прошивка не использует. В режиме Сыроварение прошивка реле платы не занимает (мешалка и сливной клапан сидят на собственных реле Самовара 2 и 4). Проверить, что плата отвечает, можно функцией check_I2C_device(2).
Особенность в Пиве. Строка «L» — отдельная строка программы, на ней кипячение автоматически не поддерживается, поэтому её делают короткой (несколько секунд), а следующая строка «B» заново определяет кипение — сусло к этому моменту ещё кипит, так что это быстро. Если нужен только хмель по расписанию, проще вариант 2: он не требует ни платы, ни скрипта.
Плюсы: любое число компонентов, жидкие и сыпучие, полная свобода в логике. Минусы: нужна плата I2CStepper, прошивка с поддержкой Lua и скрипт.
Вариант 5. Самодельные конструкции: что ещё делают пивовары
Промышленные автоматические пивоварни решают ту же задачу по-разному: Brewie и PicoBrew Zymatic держат хмель в четырёх корзинах и в нужный момент прогоняют через очередную корзину сусло; MiniBrew ставит на крышку карусель с шестью цилиндрами; Grainfather и Braumeister хмель не вносят, а только присылают уведомление (как вариант 1). В домашних мастерских (форумы Homebrew Talk, проекты для CraftBeerPi и BrewTroller, статьи Brew Your Own) чаще всего встречаются конструкции ниже. Все они подключаются к Самовару одним из уже описанных способов: шаг основного шагового двигателя по строке «B», строка «D» в сыре, либо реле или двигатель платы I2CStepper из Lua.

Секторный дозатор: стаканы или банки на валу. На горизонтальный вал шагового двигателя жёстко крепят N стаканов (пластиковые стаканчики, обрезанные бутылки, небольшие банки с откидной крышкой на петле) веером, через 360°/N. Пока стакан находится в верхней половине круга, он стоит открытой стороной вверх; поворот на очередной сектор переводит следующий стакан через горизонталь, и порция высыпается в котёл. Банка с откидной крышкой удобнее открытого стакана: до опрокидывания крышка защищает хмель от пара, а при опрокидывании открывается под собственным весом. Достоинство — простота: не нужны ни точные ячейки, ни нижняя пластина. Для Самовара: двигатель на разъём насоса, в HopStepperStep() вместо 20 подставить число стаканов N (для 4 стаканов один шаг — 90°), каждая строка «B» опрокидывает один стакан. Вал должен быть выше кромки котла и по возможности сбоку от столба пара; над стаканами — козырёк.

Диск с трубками («Lazy Susan»). Самая частая самоделка на Homebrew Talk: диск диаметром 150 мм с 6–8 вертикальными трубками (⌀25–30 мм, высота 100–150 мм, вмещает около 30 г гранул), под ним неподвижная пластина с одним отверстием; привод — серво с большим моментом либо дешёвый шаговый 28BYJ-48 с драйвером ULN2003, для точной остановки ставят микровыключатель или оптический датчик на кулачке. Это та же карусель из варианта 2, только с высокими прямыми трубками вместо мелких ячеек. Опыт авторов: в трубках с конусным дном гранулы зависают — стенки должны быть прямыми и гладкими; хмель в порошке и мокрый хмель не сыплется, нужны сухие гранулы; над котлом обязателен козырёк или отвод пара, иначе через 20–30 минут кипячения гранулы отсыревают и слипаются. С Самоваром используется как вариант 2, число трубок подставляется в HopStepperStep(); при желании диск можно посадить на двигатель платы I2CStepper и крутить его из Lua функцией set_stepper_by_time.
Шнековый (винтовой) дозатор. Конструкция из автоматических кормушек для рыб и кошек (см. проекты на Instructables и GitHub): бункер над горизонтальной трубой, внутри трубы — шнек на валу шагового двигателя, объём дозы задаётся числом оборотов. Детали печатаются на 3D-принтере, шнек — 20–30 мм диаметром. Дозирует любой сыпучий продукт из одного бункера порциями любого размера: соль, сахар, специи, гранулы хмеля. Для Самовара такой дозатор — это тот же «насос»: в режиме Сыр его ставят на разъём насоса, калибруют кнопкой «Калибровка насоса» (в мерный стакан сыплется продукт, вводится его объём в мл) и дозируют строкой «D» со способом «Локальный шаговый двигатель». Второй такой же дозатор можно повесить на плату I2CStepper (адрес 2) и запускать из Lua функцией i2cpump_start(rate, volume). Минус: один бункер — один продукт; для 3–4 разных сортов хмеля нужны 3–4 шнека либо карусель.
Непрерывная подача хмеля. Для сортов с «непрерывным охмелением» (хмель вносится тонкой струёй всё кипячение) в Brew Your Own описан дозатор из отрезка трубы ⌀100 мм длиной 60 см, в нижнем торце которой вращается перфорированный диск на моторе 1 об/мин; гранулы сыплются со средней скоростью около 8 г за 10 минут, штырьки на диске не дают им сводиться в свод. С Самоваром мотор включается реле платы I2CStepper (set_i2c_rele_state) на всё время строки «B» или крутится шаговым двигателем платы (set_stepper_by_time).
Заслонка на серво или мотор-редукторе. В проектах для CraftBeerPi (плагин HopDropper) лоток с секциями сдвигает медленный мотор-редуктор 12 В через пару шестерён, а контроллер лишь подаёт питание на заданное время; другая популярная схема — стаканчик на рычаге серво, подвешенный на стенке котла в стороне от пара. Серво подключается к выходу SERVO_PIN Самовара (тому же, что переключает ёмкости в ректификации) и поворачивается из Lua функцией setServoAngle(угол): например, setServoAngle(90) — открыть заслонку, delay(1500), setServoAngle(0) — закрыть. Серво с большим моментом питайте от отдельного источника 5–6 В, а не от платы. Механизм на мотор-редукторе 12 В включается реле платы I2CStepper на 1–3 секунды (столько занимает поворот до упора или до кулачка с микровыключателем). Управление — как в варианте 4. Пример скрипта tip_cup.lua со стаканчиком на рычаге серво (в программе — строка «L» с этим файлом):
-- tip_cup.lua: опрокинуть стаканчик на рычаге серво
setServoAngle(150)
delay(1500)
setServoAngle(0)
sendMsg("Хмель внесён", 2)
setNextProgram()
Корзины с промывкой суслом. Принцип Brewie/Zymatic: хмель лежит в сетчатых корзинах вне котла, а насос перекачки сусла в нужный момент направляет поток через очередную корзину. В домашних условиях это самый сложный путь (нужны насос, несколько электромагнитных клапанов на реле I2CStepper и обвязка), зато хмель гарантированно защищён от пара и не требуется ничего сыпать над котлом. Для Самовара клапаны включаются из Lua функцией set_i2c_rele_state, насос — первым реле платы (в режиме Пиво оно уже управляет насосом перекачки).
Общие уроки из чужих конструкций.
Главный враг любого сухого дозатора — пар: над котлом ставьте козырёк, отводите дозатор в сторону, а лучше закрывайте порции крышками до момента внесения (банки с откидной крышкой, заслонки).
Гранулы плохо идут через сужения и конусы: ячейки, трубки и лотки делайте с прямыми стенками, дно — плоское, окно выгрузки не меньше сечения ячейки.
Порции отмеряйте заранее при закладке, а автомат пусть лишь выбирает момент — так точность не зависит от механики.
Перед варкой прокрутите дозатор вхолостую в режиме теста, а первую варку с ним проведите рядом: строки «B» всё равно пришлют уведомление, и порцию можно досыпать вручную.
Источники идей:
Lazy Susan hop dropper (Homebrew Talk),
Automatic pellet hop dropper (Homebrew Talk),
3D printed hop carousel (Homebrew Talk),
Automated hop addition (Homebrew Talk),
HopDropper для CraftBeerPi (GitHub),
Continuous wort hopper (Brew Your Own),
Шнековый микродозатор (Instructables),
MiniBrew Hop Carousel,
обзор автоматических пивоварен (Brew Your Own).
Что выбрать
Пиво, хмель 2–4 раза — вариант 2 (карусель на штатном двигателе) или его упрощённая версия из варианта 5 — стаканы или банки на валу. Пока дозатор не собран — вариант 1, строки «B» уже присылают сигнал.
Сыр, закваска / фермент / CaCl₂ — вариант 3 (строка «D», штатный насос). Один насос — один компонент за варку, остальные вручную строкой «W». Соль и сухие специи — шнековый дозатор из варианта 5 на том же разъёме.
Несколько жидких и сыпучих компонентов автоматически — вариант 4 (I2CStepper и Lua).
Общие советы: держите добавки под крышкой (пар и конденсат — главный враг сухих дозаторов), заранее проверяйте дозатор на воде и в режиме теста, а объёмы жидкостей делайте не меньше 10–20 мл — так погрешность насоса не заметна.