Клубничная чудо-коробка 2.0. Часть вторая
Это уже третий пост из серии моих клубничных приключений. В первом я рассказывал про свой круглогодичный гроубокс на балконе, во втором я начал строить аэропонную клубничную мини-ферму в контейнере: подготовил помещение, провел электричество, установил 4 подвижных стеллажа, по 3 уровня на каждом, сделал аэропонные каналы на 336 посадочных мест, вентиляцию, отопление, систему отвода дренажа, поставил растворные баки. В этой части я расскажу про доработку окружения к высадке, про датчики, собственную систему управления контейнером, высадку рассады, эксперимент с питанием растений и подведу итоги первых 4-х недель жизни клубники.
Освещение
Освещение я решил собирать самостоятельно. Заказал отдельно платы со светодиодами. Сейчас жалею, что не провел исследование рынка осветительных приборов для растений перед заказом. Приехали платы на светодиодах DURIS S5 (OSRAM), 4000K. Не самые эффективные в плане энергопотребления, ещё и греются прилично.
В качестве радиатора использовал алюминиевые швеллеры. Линейки я приклеил на двустороннюю теплопроводящую клейкую ленту и спаял их между собой. На каждый швеллер повесил по две линии, т.к. диммируемые драйверы дорогие, я добавил возможность включения сначала половины освещения, а затем второй половины, чтобы растения не так сильно стрессовали от резкого перепада.
В итоге получилось 48 метров светильников. При тестировании я понял, что помещение будет нагреваться критично на полной мощности и даже кондиционер, скорее всего, не справится. Поэтому запараллелил линейки, чтобы на них шло не 700mA, а 350mA. Такой приём уменьшает световой поток не в 2 раза, а немного меньше, но температура падает прилично, т.к. при пиковых нагрузках больше энергии уходит в нагрев, чем в свет. Так что хоть освещенность и пострадала, но улучшилась энергоэффективность. К тому же за счет невысокого нагрева, лампы можно держать ближе к растениям. А освещённость обратно пропорциональна квадрату расстояния.
А это значит, что при линейном приближении источника освещения мы получаем квадратичный рост энергии света. Так что не так уж и много я потерял. Чтобы использовать эту фичу по полной, я сделал регулировку светильников по высоте. Особенно это выгодно при выращивании молодых кустов, пока они не высокие. Свет опускать и поднимать можно перетыкиванием штырька в швеллере.
Данные после замеров освещения
При 700 mA потребление составляет 92 W на метр. Освещенность 67K люкс на расстоянии 10 см или 0.72 люкс/ватт/метр. Радиатор быстро нагревается.
При 350 mA потребление составляет 44 W на метр. Освещенность 36K люкс на расстоянии 10 см или 0.82 люкс/ватт/метр. Радиатор еле тёплый.
36K люкс на 10 см при низком нагреве - это отличный показатель, можно и ближе к растениям держать. Клубнике должно хватить света. Новый вариант на 12% эффективнее и мало греется. Ещё один несомненный плюс - требуется в два раза меньше драйверов.
Датчики и устройства
Температура
Использовал мои любимые DS18B20. Всего разместил 9 штук:
один для измерения температуры снаружи
три для измерения температуры в контейнере: снизу, посередине и на верху
три для измерения температуры в корневой зоне: снизу, посередине и на верху
по одному в каждом из растворных баков
Соединяются датчики по шине 1-Wire, которая прекрасно работает в маленьких DIY-проектах, но чем ближе к прому, тем больше возникает проблем, связанных с особенностями обмена сигналами между ведущим и ведомыми устройствами. Например, шина очень чувствительна к наводкам и на длинных расстояниях требуется использовать экранированный проводник и ни в коем случае не пускать кабель вблизи силовой линии. Следует также учитывать потери напряжения, которые зависят от длины проводника, сечетия и материала. В сети встречается множество рецептов, как избежать проблем при использовании 1-Wire. Например, вот полезная статья. Также работа с датчиками чувствительна к топологии и их рекомендуется соединять последовательно.
Общая протяженность 1-Wire сети в контейнере — 20 метров и у меня периодически отваливаются датчики. В качестве проводника я использовал сначала не экранированную витую пару. Затем заменил её на экранированный кабель МКЭШ-3х0.5, но это не решило проблему. Потом я повесил на конец линии диод Шоттки, проблема осталась. В скором времени я попробую перевести питание с 3.3В на 5В. Т.к. на сигнал от Raspberry Pi идет 3.3В, мне потребуется двунаправленный преобразователь логических уровней. Кроме этого попробую поиграться с pull-up резистором.
Датчики уровня жидкости
Я поставил по поплавковому датчику в растворные баки, для отслеживания уровня раствора, а также по датчику в дренажные баки, чтобы, когда в них накопится достаточно жидкости, возвращать её обратно в растворные баки. Эти датчики являются, по сути, переменными резисторами, в которых сопротивление зависит от уровня. Подобрав под питание от малинки нужный резистор, можно собрать делитель напряжения и снимать это напряжение через АЦП (ADS1115).
АЦП
ADS1115 нужен для того, чтобы получать напряжение с датчиков и преобразовывать в цифровой сигнал, который затем можно интерпретировать.
Датчики давления
Эти датчики я использую, чтобы измерять давление в накопительных баках (об этом позже).
Датчики EC/TDS
Одни из самых важных датчиков. Для отслеживания концентрации питательного раствора. Питание и вода расходуются растениями не равномерно и зависят как от внешних факторов, таких как температура или время суток, так и от состояния самих растений. Чтобы показатели не ушли сильно вверх или вниз, их нужно постоянно мониторить и поправлять.
Я изначально купил датчик и диапазоном 0-44000 uS/cm. Думал, круто, что такой широкий диапазон, но не подумал о погрешности в 2%. А это почти 900 uS/cm. Пришлось отказаться от использования. Заказал новые, где разброс ближе к реальности (0-4400 uS/cm).
Датчики pH
Этот показатель не менее важен, чем EC и тоже имеет тенденцию к изменению в зависимости от различных условий и его необходимо корректировать.
Датчик CO2
Углекислый газ принимает участие в фотосинтезе растений. И при хорошем освещении его можно подавать больше, чем содержится в воздухе. Это будет способствовать набору биомассы. Я как-то выключал вентиляцию и надышал в контейнере до 2000 ppm, а когда вернулся на следующий день, то уровень CO2 упал до 300 ppm, что ниже уличного уровня (400-450 ppm). В скором времени я планирую сделать подачу газа из баллона на основании показаний датчика.
Датчик влажности воздуха
Для клубники подходит влажность на уровне 50-70%. Изначально я ожидал, что из-за аэропоники и респирации растений влажность в контейнере будет выше нормы, но на данный момент она не превышает пороговых значений и есть хороший запас для контроля.
Датчики протечки
По контейнеру в потенциально опасных местах я раскидал датчики протечки. Они уже дважды меня выручали. В первый раз протекало соединение у дренажного насоса, а в другой раз капал конденсат с вентиляционного канала.
Блок бесперебойного питания
Полив в аэропонике очень чувствителен к отказам. Несколько часов без орошения могут погубить растения. Поэтому, на случай отключения электричества я подключил к бесперебойнику самые необходимые устройства и интернет, чтобы оставаться на связи. В режиме работы от ИБП контейнер должен протянуть не менее суток.
Реле
В моей системе множество устройств, которые необходимо включать и выключать. Для этого я использую 8-канальные управляемые реле. В местах, где высокая нагрузка, например, при освещении и отоплении, эти реле включают не сами устройства, а подают питание на более мощные контакторы, которые, в свою очередь, включают то, что нужно.
Когда я только начал проектировать систему, рассчитывал на то, что буду управлять каждой релешкой через выводы GPIO на малинке, но в один момент выводы закончились (только для подачи раствора на форсунки мне потребовалось 12 выключателей). Поэтому, для новых модулей реле я купил RS-485 плату для подачи сигнала на модули.
Вентилятор
Чтобы разница температуры в верхней и нижней части контейнера не была большой, я установил вентилятор для перемешивания воздуха. Поток от него очень мощный и пришлось направить в потолок, чтобы не травмировать кусты. Вентилятор включается автоматически, когда разница велика и выключается, когда нормализуется.
Кондиционер
Установил в контейнере недорогой кондиционер. Как показала практика, для площади 13 кв. м. при 32°C на улице и включенном освещении проблем с перегревом не возникает. С местом установки я только не угадал и холодный поток идет на растения. В последующем опыте учту.
У кондиционера нет интерфейса для подключения к моей системе, зато есть возможность использовать умный ИК-пульт. Я купил BroadLink RM mini 4. Пока ещё не было времени настроить, но в скором времени добавлю и его.
Осушитель воздуха
Осушитель можно было бы не покупать, т.к. уже есть встроенный в кондиционер. Но я решил перебдеть, пусть будет. Он включается только если влажность поднимается выше 75%. Когда кусты вырастут, скорее всего пригодится.
Обогреватель
При наступлении холодов потребуется отопление. Для этого я повесил на стену простой конвектор, защитив на всякий случай стену алюминиевым листом. С этим обогревателем у меня произошла оказия. На улице лето, а температурные датчики заглючили и стали возвращать 0°C. Что делает в это время обогреватель? Правильно! Начинает греть. И грел он так два дня. Хорошо, что я это словил на этапе отладки без растений.
Видеокамеры
Я установил несколько IP-камер. Сейчас по ним слежу за состоянием растений. В далеких планах есть желание собирать с камер данные и подтянуть ML для анализа состояния растений.
Плата для разводки устройств
Чтобы скоммутировать между собой все устройства, я спаял на макетке клеммники и штырьки. Под спойлерами привожу схему подключения устройств к плате с распиновной, а также схему соединения всех устройств.
Распиновка
Схема соединения
Приборная панель
На стене я повесил панель с Raspberry Pi, датчиками, блоками питания и пр. На всякий случай разместил их на огнеупорном влагостойком гипсокартоне. С малинкой я могу работать через Wi-Fi на ноутбуке, но для удобства повесил монитор.
Система управления
Сначала я хотел использовать Home Assistant для управления контейнером, но столкнулся с рядом проблем и неудобств и принял решение писать собственный велосипед, заточенный под мои хотелки.
Удалённый доступ
В контейнер я провёл мобильный интернет от Yota. Статический IP-адрес у них слишком дорогой. Сначала я рассчитывал, что настрою dyn dns, но оказалось, что динамические IP у них серые, по ним нельзя достучаться снаружи. Хорошо, что у меня есть VPS с выделенным IP-адресом. Запустил реверс-туннель + autossh. Теперь можно удаленно подключаться по SSH.
Telegram
Для получения уведомлений о событиях в системе я завёл Telegram-бота. Оказалось очень просто и удобно. Я даже думаю, не отказаться ли мне от веб-интерфейса для управления системой, если всё в боте реализовать.
Помимо уведомлений о событиях я также несколько раз в сутки получаю в канал изображения с графиками с датчиков.
Мониторинг полива
Самое страшное, что может случиться в аэропонике - проблемы с поливом. Достаточно нескольких часов без воды, чтобы нанести вред растениям. Программный код я научился мониторить, тут проблем нет. А как быть с механикой? Что, если загнулась релешка или клапан или внезапно засорились форсунки или какую-нибудь из форсунок выбьет давлением из фитинга? Для решения этой проблемы я анализирую давление в системе полива. Делаю замер до открытия клапана и во время. Если падение давления слишком большое, значит выбило форсунку или обрыв линии, а если наоборот низкое, то либо клапан или реле перестали работать, либо форсунки забились.
Мониторинг системы управления
В контейнере работает приложение, которое управляет системой выращивания и, если что-то работает не так как ожидается, мне в Telegram приходят уведомления. Но что делать, если умерло само приложение? Например, Raspberry Pi сломалась или какие-то проблемы в системе. Чтобы отслеживать такую ситуацию, само приложение периодически отправляет запросы на выделенный сервер, а на сервере ведется проверка, когда в последний раз был запрос. Если активности не было давно, то приходит уведомление в тот же Telegram.
Функции системы управления
Итак, что же умеет моя система управления?
Сбор данных с датчиков
Хранение данных о любых событиях в БД за очень длительный период времени. Для хранения подключил к малинке жесткий диск, а позже сделаю репликацию базы на внешний источник.
Отправка уведомлений и других данных в Telegram. Позже добавлю получение команд в систему из бота.
Имеется специальная сущность для хранения различных состояний, от которых зависят другие функции системы. Например, время суток или состояние, что обнаружена протечка.
Управление освещением со ступенчатым включением.
Все вызовы неблокирующие, асинхронные. Т.е., если зависнет запрос к БД или к датчику, это не повлияет на работу других сценариев.
Удобная работа с событиями, зависящими от времени. Можно запускать задачи/скрипты автоматизации, используя cron-синтаксис или создавать цикличные интервальные задачи с высокой точностью по времени, например 1.7 секунды работаем и 2 минуты ждем
Возможность асинхронной работы с Modbus
Управление форсунками
Запуск вентилятора, если разница между температурой сверху и снизу больше требуемой
Управление вентиляцией
Управление обогревом
Управление возвратом дренажа в растворные баки
Введена специальная абстракция “скрипт” для написания любой автоматизации
Контроль и отправка уведомлений по следующим позициям
Протечка
Давление в системе полива
Уровень pH
Уровень EC
Влажность
CO2
Температура
Уровень в растворных баках
Уровень в дренажных баках
Работа полива
Мониторинг работоспособности самой системы
Система получилась простой с точки зрения расширения. Можно легко добавить новый датчик, устройство, состояние, скрипт, внести изменения в конфиг.
Есть система логирования проблем и ошибок
Автозапуск при вылетании программы или перезагрузке малинки
В скором времени появятся
Управление кондиционером
Автодолив обратноосмотичнской воды
Управлением доливом чистой воды
Долив концентрата минеральных солей
Автокоррекция pH
Управление подачей CO2
Полив
Обратный осмос
Для приготовления растворов я использую воду из обратного осмоса. Чтобы процесс получения воды происходил быстрее, я купил производительную мембрану на 400 GPD. Изготовителем заявлено, что можно получать до 60 л в час, но по факту оказалось около 30 л в час.
Воду для обратного осмоса я получаю из скважины. Чтобы не травмировать скважинный насос, который значительно производительнее, я установил буферную бочку с поплавковым выключателем. При заполнении бочки насос выключается. Вода в скважине богата железом, поэтому, чтобы поберечь мембрану я установил к предварительным фильтрам дополнительно фильтр для обезжелезивания.
Вода холодная, а в контейнере не самая низкая влажность, поэтому на буферной бочке, фильтре и трубках образуется конденсат. Эту проблему я пока не решил. Сначала попробую простой вариант: планирую сделать автодолив чистой воды и буду запускать его порционно. Конденсат, скорее всего, не будет успевать образовываться. Если не выйдет, то придется подогревать воду на входе в контейнер.
Для хранения чистой воды установлена отдельная бочка на 200 литров.
Видео
На видео вода заливается в верхней части бочки. Это была ошибка. Позже врезал подачу в нижнюю часть.
Два растворных бака
Чтобы проводить эксперименты с питанием и с периодичностью запуска форсунок, я установил два растворных бака. Один бак на первые два ряда, другой на вторые два ряда. Таким образом я смогу организовать тестовую и контрольную группы и собрать достаточно данных, чтобы проводить статистические тесты.
Система подачи раствора
Жидкость из растворного бака нагнетается при помощи обратноосмотической бустерной помпы в накопитель давления. Забор прекращается автоматически благодаря реле давления. В системе поддерживается давление на уровне 5-7 атм. Перед накопителями установлены фильтры на 10 микрон, чтобы защитить форсунки от мусора.
Основную магистраль подачи на форсунки я сделал из трубки 6 мм. Из-за толщины трубки напора хватает только на один канал из 12 (14 форсунок). Поэтому я установил на каждый канал по электромагнитному клапану, которые включаю через реле.
Видео
Дренажная система
Я думал, что основной причиной засорения форсунок является отложение солей, но оказалось иначе. Главная причина — мусор в растворном баке. Образуется осадок, плавает какая-то взвесь. Вот как выглядел раньше растворный бак изнутри в домашней установке.
Решение этой проблемы нашлось у заводчиков аквариумов. Они гоняют воду через фильтры, задерживающие всю взвесь из воды. А мне даже гонять специально не требуется. После того, как раствор стекает из канала, он попадает через такой фильтр в дренаж. Фильтр очень простой - лист специального синтепона. Стоит дёшево, можно мыть.
После установки дома такого фильтра прошло уже 4 месяца, раствор стал прозрачным, а я всё ещё ни разу не чистил форсунки и они прекрасно работают.
Система полива в сборе имеет следующую схему:
Приготовление раствора
Питание, как и раньше, я готовлю самостоятельно из минеральных солей и комплекса микроэлементов YaraTera REXOLIN APN. Заказал сразу с запасом. Для экономии оформил ИП, т.к. юрлицам значительно дешевле, но разорился на налогах. Надо было подробнее сначала разобраться и переходить на ПНД.
У меня есть 3 рецепта раствора, в зависимости от жизненного этапа растений:
От высадки до вегетации (Первые 4 недели)
От запуска режима вегетации и до того как зацветут 70% растений
Для цветения/плодоношения.
Я выращиваю сорта НСД, они за год должны давать около 5-7 волн плодоношения. Между этими волнами растения снова переводятся в режим вегетации.
На Википедии я читал про аэропонику и наткнулся, что распыление (> 4.5 Bar) увеличивает биодоступность питательных веществ, следовательно, сила питательных веществ должна быть значительно снижена в аэропонной системе, иначе разовьется ожог листьев и корней. Поэтому я решил поставить эксперимент: в один растворный бак я залил раствор с 70% концентрацией от той, что принято использовать в субстрате, а в другой - 50%. Результатами эксперимента я делюсь в конце поста.
Защита воды от света
Все элементы, где содержится вода необходимо защищать от света. В противном случае поверхности быстро покрываются зеленым налётом. Это одноклеточная водоросль. Её споры повсюду, поэтому другим способом защищаться не имеет смысла. Необходимо закрыть следующие элементы:
дренажные трубки
дренажные баки
фильтры накопительных баков
фильтры обратного осмоса
баки с раствором
скорее всего придется защищать аэропонные каналы, а не хотелось бы, пока наблюдаю
Хорошим средством защиты от света являются фольга и фольгированный пенофол.
Подготовка к посадке
Перед приездом рассады погонял несколько дней контейнер, чтобы убедиться, что всё работает. Записал отчетное видео.
Рассада
Рассаду я заказывал у проверенного поставщика, прямиком из питомника. Дожидался я её долго, т.к. оформлял заявку накануне известных событий и имели место быть проблемы с логистикой из Европы. Приехала рассада фриго, размер A+ сортов Фурор и Фавори. На посадку 336 кустов у нас с женой ушло 15 часов. Мы отмывали кусты, очищали их, обрезали лишние корни, замачивали в Превикуре, готовили специальным образом горшки, фиксировали в этих горшках растения и к 5 утра работа была закончена.
Видео
Отдельно отпишусь про применимость гидропонных горшков в аэропонике. В оригинальном виде их использовать не стоит. Чтобы зафиксировать растение в горшке, его требуется чем-то присыпать, например, керамзитом. При том расположении форсунок, что я использовал, смачивание верхушек корней будет минимальным. Поэтому я придумал сворачивать горшок в гармошку, чтобы он стал плоским, а в центре горшка требуется вырезать отверстие, в котором фиксируется саженец. Потом сверху можно присыпать тонким слоем керамзита.
Большая проблема со смачиванием корней
Каждая форсунка находится у растения только с одной стороны. Когда я так делал, я был уверен, что канал заполнится аэрозолем полностью и даже в домашней тестовой установке при аналогичном размещении я не заметил этой проблемы, но на большем объеме растений образовался небольшой процент корней, которые стали сохнуть в верхней части. Если бы я добавил форсунки и на вторую сторону, то это бы только частично решило проблему, т.к. у форсунок не очень большой угол распыления и в верхнюю часть канала попадает только мелкая аэрозольная взвесь, которая клубится в системе. Я пока не нашел решение этой проблемы. Если подавать поток снизу вверх, то в скором времени его закроет корнями. Можно попробовать разместить форсунки в верхних углах, с потоком вдоль канала, но тогда потребуется помещать их внутрь и будет нужна съемная крышка, чтобы их можно было обслуживать. Опробую этот вариант на следующей версии аэропонной установки.
Подведение итогов этапа «Посадка»
Этот этап длился 4 недели от момента высадки. Приживаемость - 95%. Рассада была прекрасной. Все проблемы я связываю с качеством увлажнения корней. Скорее всего выпадов будет ещё больше. В целом растения выглядят неплохо. Я проводил эксперимент с концентрацией питания и написал на эту тему небольшой пост. Результат пока приемлимый, но можно значительно лучше и я знаю куда двигаться.
Затраты
Ресурсов мне, конечно, не хватало. В первую очередь, временных и человеческих. Я всё, за небольшими исключениями, делал сам. При таких темпах становится очень сложно и дальше надо искать единомышленников или средства на наемный труд. У меня есть прекрасная основная работа, которая мне приносит доход и есть аэропоника — хобби, на которое я трачу всё своё свободное время и средства. Если на работу у меня уходит 40 часов в неделю, то последний год я трачу ещё около 20-30 часов в неделю на хобби.
Но вас, наверное, больше интересует, сколько же на такую игрушку я угрохал денег? Рассказываю. Без малого — миллион. Много ли это? Всё относительно. Кто-то вкладывается в тачку, катается в отпуска, у кого-то вообще яхта. А у меня аэропоника. Возможность есть. Почему бы и нет? Если кому-то интересно более подробно о затратах, то я вёл таблицу с расходами. Наверняка я что-то забыл туда добавить.
Кроме расходов на строительство есть ещё и постоянные расходы. Я плачу за аренду участка, на котором находится контейнер, необходимо иногда менять фильтры, платить за электричество, тратить время на обслуживание растений.
А доходы возможны?
В текущем виде это явно не самая прибыльная модель. Можно построить хорошую ферму на более простых и менее дорогих технологиях и она будет давать реальный результат. Посмотрите, например, на Илью Патиева. Он вполне себе успешно запускает фермы. На подобных фермах делают упор на качество, вкус, цену и продажи не в сезон. Небольшие фермы продают такую клубнику по 1500-2500 р за кг. Вот эти ребята вообще продавали в этом году по 4000 р в Москве. Если создать товару дополнительную ценность - будут брать. За год на такой ферме с октября по май можно получить до 1000-1300 г с куста. При текущих условиях я рассчитываю примерно на такую же урожайность. Т.е. можно взять мои 330 кустов (6 не выжили), 1 кг с куста за сезон по 1500 р., получаем 495000 р. грязными. Около 30%-50% от этой суммы уйдет на аренду, электричество, удобрения, маркетинг и прочие расходники. Т.е. в моем случае окупаемость будет, скорее всего, не менее 4 лет. Но сейчас я не хочу заниматься продажами. Я верю в то, что с помощью технологий можно добиться урожайности более 2 кг с куста. Вот когда получится, тогда и поговорим. Например, ребята из Айфарм (теперь Городские теплицы) утверждают, что получают 2-2.4 кг с посадочного места в год. Там, конечно, за этими цифрами стоит немного лукавства (обратите внимание — не с куста, а с посадочного места), но тем не менее я верю в достижимость таких практических результатов.
Что дальше?
Ну а дальше я буду дорабатывать свою систему. Буду подбирать наилучшее питание, условия развития, буду совершенствовать аэропонную установку, пробовать другие культуры, искать единомышленников. Ещё планирую развернуть микро-лабораторию по микроклонированию так что, если всё будет хорошо, то напишу ещё как минимум 2 поста продолжения.
Для объединения единомышленников я создал сообщество в Telegram, посвященное аэропонике. Поиск не дал достойных результатов по этой теме, а ресурс такой полезен. Можно делиться своими успехами, полезными материалами, новостями по теме, задавать вопросы и общаться с заинтересованными людьми. Если есть аэропонщики, закидывайте в канал результаты своих трудов. Но соответствующие законодательсту РФ :) Добро пожаловать!
Так же подписывайтесь на телеграм-канал проекта, в котором я веду дневник своих растениеводческих приключений.