Практика применения "Народного контроллера" на базе Raspberry Pi для мониторинга показателей в теплице (фундук + клубника).
Всем доброго времени суток. Хочу поделиться своим первым практическим опытом внедрения тепличного контроллера на базе Raspberry Pi.
Что имеем:
Тепличный комплекс из четырёх теплиц 100м*10м каждая. На текущий момент там находится рассада для клубники и фундука.
Тех задание:
- Обеспечить постоянный мониторинг следующих показателей:
1.1. Температура у корня.
1.2. Температура в зоне плодоношения (1м. от земли).
1.3. Влажность у корня.
1.4. Влажность в зоне плодоношения.
1.5. Температура грунта.
1.6. Влажность грунта.
- Вышеперечисленные показания должны сниматься в восьми независимых зонах, равномерно распределенных по одной теплице (всего 4 теплицы, то есть 8*4=32 стойки с датчиками).
- Датчики в каждой зоне должны быть сгруппированы в один мобильный комплект (стойка) с питанием от аккумулятора, что бы иметь возможность переставлять датчики по теплице и не привязываться к конкретному месту. Длительность работы от одного заряда не менее трех месяцев, но чем больше - тем лучше. Удаленный мониторинг заряда аккумулятора.
- Полив в теплице организован сверху, то есть все модули должны быть влагозащищенными, согласно стандарту IP65.
5. Данные по всем датчикам за весь период должны сохраняться и отображаться в виде текущих показаний и графика изменений.
6. Доступ к данным должен быть обеспечен 24/7: системному администратору, административному персоналу из соседнего здания, главному агроному с любого места, инвесторам из за границы. Разделение прав доступа: редактирование и просмотр. Адаптивный интерфейс (просмотр с устройств с разным размером экрана: ноутбук, планшет, телефон).
- Наличие возможности сравнения показаний между собой (показания всех датчиков на одном графике) и изменения периода просмотра (час, день, месяц, год и т.п.).
8. Автономность, стабильность и независимость системы от наличия интернета.
- Удаленный доступ системному администратору для обновления, обслуживания и настройки системы: SSH, RealVNC.
10. Уведомления о достижении критичных уровней температуры и влажности (E-Mail, SMS и т.п.).
Реализация:
Для реализации задачи были выбраны следующие электронные модули:
- Центральный контроллер управления (сервер, база данных): RaspberryPi 3 + ОС Linux.
- Модуль сбора и отправки данных с датчиков: ESP8266.
- Внешняя точка доступа Wi-Fi: Ubiquiti UniFi UAP-Outdoor.
- Внешний мост для соединения с ближайшим интернетом: Ubiquiti NanoStation LOCO M5.
Этапы:
1) Покрытие сигналом Wi-Fi и интернет.
Для уверенного покрытия Wi-Fi на две теплицы 10*100, достаточной одной точки доступа. Питание организовано по PoE. Разместили на уровне человеческого роста, сразу на ящике с центральным контроллером и соединили прямым кабелем с мостом, который направлен на такой же мост в двух километрах от теплицы. Средняя скорость подключения к инету составила 8 Мбит/с.
2) Сборка и настройка стоек с датчиками.
Согласно задаче, узел с датчиками должен быть мобильным и иметь возможность "кочевать" по теплице.
В каждой стойке должно быть два комплекта сенсоров: данные у корня и на стебле (зона плодоношения) + влажность и температура грунта.
В качестве опоры была выбрана ПП труба, диаметром 25.
На трубу, с помощью клипс, прищелкиваются датчики, то есть имеем возможность менять высоту расположения.
Список комплектующих для стойки:
1. Микроконтроллер ESP8266.
2. Датчики температуры и влажности воздуха - 2 шт.
3. Датчик температуры и влажности почвы - 1шт.
4. Акумуляторный блок на базе LiIon 18650 (8000-1000 mAh).
5. Корпуса, зажимы, труба ПП, клипсы.
Настройка стойки с датчиками:
На Микроконтроллер заливается готовая прошивка с вебинтерфейсом. Устанавливается фиксированный ip адрес и присваивается название (порядковый номер). Дополнительно указываем адрес нашего контроллера, то есть, куда и по какому протоколу (MQTT) отправлять данные.
К слову, протокол MQTT специально рассчитан на отправку данных в сетях с низкой пропускной способностью и нестабильным сигналом (есть три режима QoS).
3) Установка и настройка контроллера.
"Малину" разместили во влагозащищенном наружном ящике для электрощетчика: NIK Dot 3.1. Этот одноплатный компьютер идеально поместился в секцию для автоматов и для доступа к нему не нужно разбирать ящик, достаточно открыть прозрачную дверцу. В сам ящик были спрятаны PoE адаптеры и БП от малины.
Для полноценной работы на Raspberry необходимо установить следующее ПО:
1. ОС Linux, Debian (Raspbian).
2. MQTT брокер - Mosquito.
3. Среда визуального программирования - NodeRed.
4. Специализированная (time series) база данных для хранения показаний датчиков - InfluxDB.
5. ПО для визуального отображения данных - Grafana.
Принцип работы следующий:
- Стойка с датчиками "просыпается" каждые 15 минут (или через любой другой промежуток) и отправляет данные по Wi-Fi по протоколу MQTT через точку доступа на контроллер.
- Контроллер принимает сообщение от стойки с помощью MQTT брокера (Mosquito) и передает во фреймворк Node-Red.
- Node-Red принимает данные, если нужно преобразовывает, и сохраняет в базу данных InfluxDB.
- Grafana получает информацию из базы данных (InfluxDB) и отображает их в виде графиков и чисел.
В конечном итоге имеем картину:
Итоги:
Данные со всех датчиков температуры могут отображаться на едином графике, что позволит наглядно определить и локализовать зону низкой/высокой температуры.
Промежуток отображаемого времени и период обновления - настраиваемые.
Дополнительно, на отдельном техническом дашборде, имеем возможность мониторить уровень заряда всех батарей, загрузку и температуру контроллера.
Набор и тип датчиков на каждой стойке можем менять самостоятельно, исходя из задач, бюджета и новинок на рынке.
Для доступа к графикам - достаточно "вбить" IP адрес контроллера в браузере (ноутбук, планшет, мобильный), подключение само собой беспроводное - Wi-fi.
Дополнительно что-то устанавливать или настраивать на клиентском устройстве - не нужно.
Контроллер сам определит разрешение вашего экрана и адаптирует под него свой интерфейс.
Ограничение прав доступа на "только просмотр" обезопасит систему от случайного или намеренного изменения параметров.
Настройка и программирование не требует приезда специалиста на место - есть удаленный доступ (и даже без белого IP).
И все это в "железке" помещаемой на ладони.
Надеюсь, что информация была полезной и доступной.
Вопросы можете писать сюда или на почту: info@noda.com.ua
Продолжение следует...
- 7
72 Комментария
Рекомендуемые комментарии
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти