Контроллер измерения влажности почвы для вертикальной фермы — АСУ ТП: сообщество инженеров

Контроллер измерения влажности почвы для вертикальной фермы

Статья о разработке контроллера измерения влажности почвы с передачей данных по Wi‑Fi. Конкретно это устройство было разработано для вертикальной фермы на 64 ячейки.

Вертикальная ферма – обобщённое название высокоавтоматизированного агропромышленного комплекса для выращивания культурных растений методами гидропоники или аэропоники в закрытых помещениях внутри специально спроектированного или адаптированного для этого здания (Материал из Википедии).

Наше устройство сложно назвать высокоавтоматизированным комплексом. В данный момент это лишь часть системы. Помимо влажности почвы выращиваемых растений необходимо заботиться о таких деталях, как: температура, освещение, газовоздушный состав почвы/атмосферы, и многие другие. В ряде случаев важными параметрами являются цветовая температура освещения, влажность воздуха и кислотность почвы. На данном этапе разработки необходимо только измерение влажности с передачей данных на сервер. Остальное реализовано на стороннем оборудовании. Поэтапное внедрение новых ячеек системы (полив, освещение и т.д.) позволит постепенно отладить каждое из звеньев. Следующим этапом планируется разработка системы полива для этой же фермы.

Схема реализована на микроконтроллере STM32F030C6T6 и довольно распространенном Wi-Fi модуле ESP-12E. Конечно, существует масса возможных вариантов реализации данной задумки, но так как контроллер и модуль уже были освоены в других проектах, было решено применять именно эту связку. Я занимался аппаратной частью, все ПО на Алексее, который программировал другой наш совместный проект (https://habr.com/ru/post/411537/). Также есть непосредственно заказчик, который придумывает функционал, тестирует и дает рекомендации. Например, в качестве датчиков влажности применены готовые емкостные, что-то типа:

Это обусловлено их дешевизной и легкой доступностью. Даже через лаковое покрытие на плате со временем появляется коррозия и датчики являются расходниками (нет смысла производить свои датчики в данный момент, хотя готовое и проверенное решение у нас есть). Задачу гидроизоляции верхней части датчиков тоже на заказчике. Протяжка проводов для подключения происходит на этапе установки фермы.

Наше устройство питается от блока питания 12В. С помощью DC/DC на датчики подается 4,2В. Напряжение выдается на два отдельных разъема, с каждого на 32 ячейки (включением и отключением можно управлять через WEB интерфейс). Для питания контроллера и модуля Wi-Fi стоит LDO.

Для опроса всех каналов задействованы 8 АЦП STM32, сигналы на которые подаются через мультиплексоры CD74HC4051M96. То есть каждый мультиплексор (соответственно один АЦП) получает данные от 8 ячеек.

Рис.2.1. Схема одного мультиплексора

Входы каждого мультиплексора заведены на разъемы TJ2-8P8C (RJ-45) позже стали использовать прямые, а не угловые – это упрощает прокладку проводов внутри корпуса. Тесты показали, что данные с датчиков без искажений приходят по витой паре. В другом нашем проекте мы заземляли экран кабелей аналоговых датчиков, так как в противном случае были существенные наводки от внешнего оборудования, но здесь этого не потребовалось.

С ESP все стандартно. Один программный UART используется для связи с микроконтроллером. Второй UART для вывода консольных логов. Две кнопки используются для сброса настроек и обновления прошивки. Для удобства есть индикация светодиодами и буззером.

Рис.2.1. Схема включение ESP

Программная часть

Микроконтроллер одновременно переключает все мультиплексоры и читает данные со всех датчиков. Данные копятся в скользящее окне и усредняются. Отправка в ESP происходит по 128 байт. Далее ESP запаковывает все в JSON и отправляет на сервер по MQTT. На сервере вместе живут три сущности: Node-RED, influxdb и Grafana. Мы решили использовать облачный сервер, хотя можно запустить и на своей машине.

Node-RED с брокером MQTT получает данные, парсит их (level->function 1) и отправляет в базу данных influxdb. Тут все настраивается как в детском конструкторе – просто и удобно.

Рис.3. Node-RED

Также у Node-RED есть GUI для настройки системы и отображения, например, статуса. В данный момент он сделан в минималистическом виде. Сюда уходят статусные сообщения и применяются параметры. Параметры летят в ESP (какие каналы передаем) и STM32 (управление питанием и интервал отправки данных).

Рис.4. Dashboard GUI

influxdb позволяет копить (хранить) данные и отображать их на графике в реальном времени. На кривизну графиков не обращайте внимания – мы тестируем отображение данных, постоянно меняем положение датчиков и т.д.

Рис.5. База данных influxdb

В принципе, на этом можно уже и остановиться, но, чтобы все было совсем удобно и красиво используется Grafana. Она забирает данные с сервера и отображает графики. Вообще тут очень емкий функционал, с которым мы еще разбираемся.

Рис.6. Grafana

Скорее всего, Алексей еще напишет подробнее по программному обеспечению и настройке в отдельной статье, так как мне не охватить даже половины проделанной по софту работы.

Корпус использовали стандартный, для вывода кабелей датчиков – гермоввод. Контроллер установлен в сухом помещении и герметичный корпус – это лишь предосторожность.

Рис.7. Контроллер в корпусе
Рис.8. Вариант с вертикальными разъемами

В данный момент ведется отладка и тестирование изделий. Мы копим данные, эмулируем различные варианты показаний и проводим проверки в реальной почве. Еще предстоит пересчет значений в проценты или относительные единицы с человеческой шкалой, возможно калибровка датчиков перед установкой.

Спасибо за внимание!

Источник: https://habr.com/ru/post/701314/

🔗 Контроллер измерения влажности почвы для вертикальной фермы

Оставьте комментарий

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.

Прокрутить вверх