Всех приветствую. С момента последнего поста про мою гидропонику прошло весьма приличное время, но то не зря! Все это время, я не мытьем то катаньем, разрабатывал следующие, а потом ещё следующие и следующие итерации своей системы, и не могу остановится до сих пор. Постоянно изменял и игрался с центральными контроллерами, датчиками и обвязками и тд. В этом посте я очень поверхностно затрону все версии которые были и постараюсь рассказать о последней, текущей версии своей системы. Во всех тонкостях, с фотографиями и скриншотами и пояснениями.
Забудьте про адекватность в этом вопросе. За это время были и меги, и уны и esp32 и stm и малины(что борщ) и чего только не было. За потраченные деньги я мог бы купить фуру(или около того) салатов и других культур и обжираться ими долгими холодными месяцами. Но цель может и не оправдывает средства, за то это безумно интересное хобби. Кто то вливает тонны денег в сноуборд, я вливаю в контроллеры и всякое такое, даже если оно в итоге не пригодится, да и фиг с ним, когда нибудь будет нужно.
В итоге последняя версия сидит на ESP32S3-N16R8, чего и мне и системе хватает за глаза и за уши.
PH: DF Robot PH Sensor
TDS\EC: Самый бюджетный китайцкий TDS метр до 1000 ppm.
TDS\EC2: Уже профисиональный модуль для измерения EC имеющий собственную калибровку на борту отдельной платы, длинный кабель, компенсации температур и тд.
TEMP: Популярнейший ds18b20.
2 Бинарных некотнактных сенсора жидкости.
4 перестальтических насоса.
1 мембранный насос 5 вольт.
24V источник питания на 300W.
DC-DC преобразователи 4 штуки.
Полусамодельный блок реле на 4 реле OMRON G2RL1E5DC.
4 силовых ключа.
HX711 и тензодатчик до 1кг.
Насос 24 вольта, 10 бар. Форсунки 0.3мм 10 штук.
Первую версию ищи у меня в посте (если интересно) Гидропоника начало, вторая версия которая прослужила весьма долго была на том же железе, но с переписанным софтом и измененным подходом. Если раньше это был деревянный стеллаж, то сейчас это уже металический, стелажищще(шучу), маленький стеллажик, на 4 полки. К которому к задней стенке просто открытым монтажем все и крепилось.
Примерно вот так выглядел процесс сборки, задняя панель стеллажа и собственно сам результат (спойлер, все салаты вымахали, без каких либо проблем) А так же был экран управления, закрепленный и вынесенный отдельно, со всеми нужными параметрами(внизу)
У всей этой конструкции был один главный недостаток. Колхозность исполнения и проявлялась она в постоянных проблемах, то с протечками в соединениях шлангов(их в целом было слишком много), то мерцающие китайские лампы которые не давали даже нормально заснять процесс дешевыми способами(на iPhone конечно все шикарно, но вот на какую нибудь IP камеру, отвратительно, несмотря на все включенные галочки для борьбы с мерцанием и полосами) и конечно софтверные постоянные глюки, отвалы или например залипания реле, некорректные измерения PH из за нестабильного напряжения на датчиках и так далее, ну и самый главный пункт - громоздкость конструкции и не возможность переместить саму систему например в другой шкаф или стеллаж, тоесть сам стеллаж и был гидропоникой. Вообщем, дорастил я партию салатов из 40 штук, 3 черри томата на ней и понял, что это мучение а не умная ферма и вообщем то я мог бы обойтись ведром и воздушным аквариумным компрессором за две тыщи и результат возможно вышел бы лучше даже, пусть и в меньшем количестве. В итоге было решено не бросать все это дело, тк ну очень интересен оказался сам процесс. А сделать следующую генерацию и учесть все эти ошибки.
По моим планам, это должны быть вот такие модульные блоки, которые должны собираться в одну башенку. (Размер MAC-MIni) и содержать в себе все необходимые мне функции)
Тут я попробовал другой подход. Модульные блоки. В планах было 3 штуки:
Центральный блок: Блок отвечающий за раствор. Он же опрашивал все датчики, связывался во внешний мир, командовал мини насосами для корректировки раствора по PH / EC и тд. Вообщем все что связано с раствором, это к нему. Он мог получать питание как отдельно через вход питания непосредственно на нём, так и через соседние блоки.
Блок реле: В нём устанавливался блок реле на 8 штук, блок питания 24 вольта и блок комутации 220V. Тоесть по сути, подключалось все одним проводом, а дальше по сути получался умный удленитель на 8 розеток, в каждой из которых уже есть 220V. И в нём есть свой контроллер, который этим всем делом рулил. Мог отдельно, а мог впаре с основным (Master) контроллеров в центральном блоке.
Блок центрального насоса: В нём просто стоял насос на 24 вольта, 10 бар. для аэропоники. Этот блок даже не был смоделирован. Но потенциально мог нести в себе расходомеры\датчики давления и тд. Вообщем вся необходимая обвязка для защиты насоса и блоков.
Соединялось это между друг другом без каких либо проводов, путем использования магнитных разъемов POGO-PIN и I2C шины. По сути был Master контроллер и Slave. Которые просто при соединении начинали пинговать друг друга говоря я тут, а мастер уже понимал, что вот блок реле, значит теперь мы ещё и управляем реле. И так же мог бы детектить ошибки, перезагружать друг друга и так далее.Аналог CAN в машине, где блоки общаются друг с другом и все друг о друге знают. А на экране\веб интерфейсе открывался блок взаимодействия с этим блоком. Но все так же к ним можно было достучаться и по отдельности. Вообщем ультра сложная система, но имела свою гибкость. Но не суждено было даже дойти до момента работы. Собрал я только блок реле и главный блок, а потом начались праздники, упадок сил, осень и на балконе стало прохладно для гидропоники и предстоящий там же ремонт. Вообщем одним словом, энтузиазм закончился на проекте и половинной реализации. Возможно слишком уж переусложнил и неподъемным сделал концепт, не знаю.
Наконец, версия 4.0 и переход в 4.1-4.2 и до 5.0, в процессе.
Прошу прощения, за долгое вступление к теме поста. Но по моему у меня все посты вот такие вот.
Что тут скажешь. Теперь это действительно умная ферма. Имеющая на борту возможность автоматической корректировки EC и PH, да не просто по значениям, а вычисляющее нужное минимальное значение удобрений и PH для каждого из растений в системе или среднее, в зависимости от культур и их фазы роста и других параметров, вообщем есть интеллектуальный режим поддержания EC и\или PH, простой режим поддержания по заданным значениям. Предсказание роста (в граммах ко дню), даты предполагаемого сбора урожая, измерение веса, логирование PH/EC/Веса/Температуры. Интеллектуальное распределение веса для всех растений(хоть однажды измеренных на автоматических весах), управление реле\pwm\виртуальными реле(любыми умными розетками(Xiaomi\Tuya\Яндекс), APi с авторизацией и конечно же многократными защитами от некорректных действий самой же системы, и это только начало, функций ооочень много. Всех их я написал и многократно тестировал. Проект разросся до тысяч и тысяч строк кода и сейчас работа с системой приносит одно удовольствие, ну разве что роборука сама на сажает и не собирает урожай. Но то ли ещё будет. Не зря у меня бакалаврская степень по робототехнике. Авось и диплом пригодится. И всё это влезло в незамысловатых размеров коробченку которая была задана размерами печатной области моего принтера и свободным местом рядом с платформой выращивания.
Выше версия 4.0, сделана ещё 4.1 и 4.2, но с малозначительными отличиями. На цвет прошу не обращать внимания, печатал чем было, не хотел тратить хороший пластик на то, что возможно в будущем претерпит ещё некоторые изменения(а они будут).
Ну и собственно на видео версия уже 4.1. Блок реле был заменен из за проблем с залипанием при включении света. Скорее всего это скачок стартового тока, из за особенности драйверов светодиодных ламп. Но это как минимум странно, т.к. в пике потребления ток составлял около 400мА, что кратно меньше чем пиковый ток написанный на реле(10А),заменил на 6 модульный (из 6 твердотельных реле), что улучшило ситуацию, но добавило новых проблем, ежесекундная зарядка и разрядка конденсаторов в конечных потребителях и их кратковременный запуск(при выключенном реле, как я понял это можно решить Снаббером, но это что то уже совсем очень сложно). Замена на твердотельную схемотехнику, повлекло за собой и добавление силовых ключей для DC 12V на перильстатические насосы (раньше они коммутировались обычными механическими реле) и не требовали такого. Что в свою очередь затребовало изменение конструкции для того что бы освободить место для готовых модулей. В итоге не помогло ничего. Кроме как просто перепайка реле на нормальные механические от OMRON и так же на 10 ампер и всё заработало как часы. Думаю все популярные нынче модули на синих и желтых маркетплейсах зачастую с поддельными компонентами, тк не верю что на 8 реле модуль может стоить 400-500 рублей.
Версия 4.0 была на базе контроллера ESP32, а вот 4.2 уже переехала на ESP32S3, свою DEV плату с пинами и тд. Но все ещё имеет в обвязке кучу готовых китайских модулей, что естественно раздувает корпус до такого состояния. Сейчас у меня используется и тестируется активно (и так же все ещё в процессе разработки) версия 4.2 плавно перетекающая в уже 5.0 и причину этого я опишу в конце поста, там же где и расскажу о будущем этой системы, какие планируются функции и дальнейшие шаги. А сейчас хочу показать вам её поближе и начну структурировано с функций системы:
Напомню, у меня Аэропоника и цель - выращивание в основном салатов.
Ниже длиннющее описание всех(или почти всех) функций системы. Можете пролистать если не интересно.
Функции:
Таймеры. Таймеров у меня есть 2 вида и их можно комбинировать при необходимости. Интервальные и Временные. Соответственно если надо включить любое из реле\силового ключа\виртуальной розетки, он включит либо в нужное время по RTC, либо по отсчету(например раз в 10 секунд на 2 секунды или раз в 5 минут на 10 секунд и тд).
Блок таймеров в веб интерфейсе. Всё обновляется в LIVE режиме, имеет уведомления или возможность блокировки от срабатывания.
Привязка устройств к реле. Каждое из реле в системе\силовой ключ\виртуальное реле можно привязать к насосу, свету. Это нужно что бы система поняла, чем она управляет. У перистальтических насосов есть так же тест и задание производительности. Очень простой механизм включающий насос на 1 минуту, и с помощью мерной емкости можно скорректировать производительность относительно той что пишет производитель.
Блок реле. Все синхронизировано и состояния отображаются в Live режиме, не зависимо от места переключения реле. (Apple Home/Экран/Таймер/веб реле/MQTT и тд) и имена конечно тоже синхронизированы. Их можно переименовывать в настройках реле.
Система показаний. При желании можно изменять панель сенсоров. (у меня например 2 сенсора EC и можно вывести показания сразу с двух, или вес каждого из растений на платформе. Вообщем вещь кастомизируемая.
Графики pH/EC/Температуры/Веса. Логирование - это очень важно в подобного рода системах. Поэтому у меня регулярно прямо в системе пишется лог и строится график. Графики за последние сутки, а логи доступны за месяц. PH/TDS/Температура пишутся каждые 5 минут, а вес - каждый час. Ну и это доступно через веб интерфейс для просмотра. Я сделал себе не больше 100 строк на график из лога. Т.к. больше в веб интерфейсе локальном считаю не нужным. Самый интересный график тут, это конечно веса. Все остальное более менее всегда стабильно.
Любимые любим электронщиком графены. Можно посмотреть всё что нужно за последнее время. (больше мне не нужно, так как долгая инфа хранится в Grafana или HA).
Посадаки и культуры. Это очень большой функционал. Это используется в нескольких случаях. Анализ роста, журнала для себя, что б не забыть куда и что посадил, какая фаза у растения сейчас, когда посадил, когда собирать и так далее. Все просто и информативно.
Текущие тестовые посадки. Реально растут в системе.
На выбор пока моя система поддерживает такой вид культур. В дальнейшем думаю как расширить этот список. Ограничение к сожалению и физическое и биологическое. Тут подобрана в основном всякая зелень и тд. Тк в основном сосредоточился на этом.
Вся система посадок плотно завязана с датчиками, интелектуальным режимом поддержания EC и PH, что позволяет добиться полной автономности. Обладает различными защитами и ограничениями от дурака. Условно посадить какую нибудь голубику к салатам не получится. Система просто не откорректирует раствор под неё никаким образом. Она будет её игнорировать. Интелектуальный режим работает только на поддерживаемых растениях, системой. И тут мы плавно подходим к поддержанию PH и EC, одной из главных функций. умной системы:
Три режима. Ручное управление, поддержание и интелектуальный режим.
Ручное и поддержание - это простые режимы. Если выпадает за 5% свыше или ниже диапазона, значит надо влить N удобрения AB и или PH+/- если выпал этот случай, перемешать и проверить снова через несколько минут. Вообщем чуть усложненное сравнение.
Интелектуальный режим, же обращается к списку посадок, культур, весу, какое удобрение(производитель) используется системой, датам и текущим параметрам с EC\PH, какие насосы есть в системе и тд.
Например, у меня нет в системе растений, но уже подготовлен раствор к примеру с EC 1.5 (1500), что просто дофига для маленьких старта растений. Но пока растений нет, система не сделает ничего. Но стоит посадить к примеру салат Ромэйн в системе, она сразу поймет, что это семечка, такая дозировка сейчас не нужна поскольку нет никаких растений и снизит её до правильной и нужной. Так же и с PH для каждого из посаженных растений. И дальше система просто наблюдает за посаженным растением. Условно спустя N дней, растение как правило переходит в фазу вегетации, что требует уже другой концентрации раствора, система и повышает концетрацию сама и автоматически. И так весь цикл роста. Как вычислить фазы? Примерно прикинув и погуглив и почитав, я расписал все фазы роста для поддерживаемых растений и самое главное примерно интерполировал вес в граммах для этой стадии. Условно вес активно набирается только в стадии Роста, а значит мы имея весы и зная дату посадки, можем вычислить её начало спустя пару тройку дней и подкорректировать EC и самое главное откорректировать этот параметр для дальнейшей эксплуатации. Вообщем это весьма не хитрая, но в то же время сложная система.
Прямой вопрос, что будет если у меня 10 салатов в стадии роста активной и я посадил ещё 5 проращиваться. окей, не проблема. Система возьмет максимум который можно дать семечкам и минимум который можно дать тем кто в стадии роста. Посмотрит сколько дней осталось до окончания фазы роста до финиша и сравнит сколько дней до фазы вегетации к примеру. И постепенно будет корректировать таким образом, что бы и удволетворить фазу роста и подготовить салаты к фазе промывки и при этом не убить семечку салата на этапе проростания, когда она ещё совсем слабая. В цифрах это значит что система снизит концетрацию например до EC ~ 1.2 мСм\см, чего хватит салатам в фазе роста, но много для салатов в стадии всхода многовато, но терпимо. В дальнейшем ближе к концу фазы роста, за 7 дней до конца, система сама будет снижать концентрацию для финиша. до 0.8-1 EC. После окончания этой фазы, вырасшие растения удаляются из расчетов. Но это только с салатами. А если я сделаю тоже самое, но добавлю ещё другую культуру и третью, система запутается? Нет. Она не запутается, а просто будет считать сильно проще. Она возьмет все стадии, вычислит количество преобладающих растений в высшей фазе и подстроит по её нижней границе необходимое значение EC. Тут банально логично предположить,что больше удачно выращенных растений = лучше.
Ну и собственно в самой системе можно выбрать текущее удобрение, увидеть инструкцию по применению и интерактивную таблицу которая покажет в какой стадии большее количество растений в системе и нормальны ли показания для этой стадии сейчас.
Что то вышло ОООЧЕнь длиннопост. Поэтому вскоре я оформлю вторую часть. Где покажу остальные функции, интерфейсы, MQTT и каким образом я прокинул все в Apple Home устройством, расскажу о ежедневных отчетах в телеграмм ботом с фотографией и других возможностях. А пока, как вы могли заметить скриншоты по интерфейсу слегка отличаются по дизайну. Это все по тому, что я в данный момент, переделываю пользовательский интерфейс на React JS и взаимодействие с APi системы. Отказываюсь от SPIFS для веб страниц и переношу фронт на отдельный уже сервер с авторизацией и внешним доступом(хоть он не особо и нужен, но хочется). А так же возможно в следующем посте, уже будет готов проект полностью кастомной печатной платы со всей необходимой переферией, для работы системы. Пока покажу набросок, который я сейчас проектирую и одновременно учусь, я первый раз проектирую свою плату, и в первый раз открыл Easy IDE. Но обо всем, в следующем посте.
А, ну и че вообще, растет что то или нахрен вообще нужны эти салаты?)
Конечно растет. Стахановскими темпами)
Те же самые салаты что в первом видео, но спустя время)
Спасибо за внимание, согласен, это было ту мач)