Автоматический полив на Arduino своими руками с управлением через интернет

Содержание

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

автоматический полив на даче

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

В основу системы управления легло комплексное решение для организации дистанционного мониторинга и управления удалёнными объектами DUSPRO. О нём можно прочитать в разделе Наши проекты .

Система управления автоматическим поливом

На следующем рисунке приведена структурная схема комплексного решения для дистанционного управления и мониторинга системы полива.

система управления автоматическим поливом

Контроллер системы управления собирает данные с датчиков системы и с помощью GPRS-модема передаёт их на сервер. В ответ он получает от сервера команды для управления исполнительными устройствами системы (поливочными клапанами, насосом и клапаном блокировки долива воды в резервуар).

Пользователь имеет доступ на сервер через веб-приложение с ПК или мобильного устройства.

Шкаф управления системой

система управления автополивом на Arduino

На следующем рисунке приведена структурно-функциональная схема шкафа управления.

Полив на Arduino своими руками

Центром системы является контроллер Arduino Mega.

ArduinoMega для системы полива

Контроллер управляет модемом SIM900 с помощью AT-команд, передаваемых через COM-порт.

SIM900 для системы полива

Таким образом осуществляется обмен данными с сервером.

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

Сигналы от датчиков уровня воды в резервуаре принимает модуль ввода дискретных сигналов. Датчики имеют выход типа сухой контакт. Подробнее о них можно почитать тут . Для того чтобы завести дискретные сигналы от датчиков в контроллер, пропитываем их напряжением 24 В от блока питания. Модуль ввода представляет собой дискретные входы с опторазвязкой, преобразующие входной уровень напряжения в 24 В в уровень 5В, понятный контроллеру.

Для измерения температуры на улице к контроллеру подключен датчик DS18B20. Контроллер производит с ним обмен по интерфейсу OneWire.

В данной статье мы не будем приводить электрическую схему шкафа управления, код программы Arduino и подробно рассказывать о работе веб-сервера, т.к. это тема для отдельного разговора. Для тех, кто хочет углубиться в эту тему мы подготовили серию уроков .

WEB приложение для управления поливом через интернет

Через веб-приложение пользователь:

  • отслеживает текущее состояние системы: уровень воды в баке, температуру на улице, состояние линий полива(полив идёт/полив остановлен).
  • управляет поливом (включает и выключает необходимые линии) в ручном режиме
  • составляет расписание для полива в автоматическом режиме
  • получает оповещение о важных событиях в системе (потеря связи, низкий уровень воды в баке и т.д.)
  • анализирует график изменения температуры на улице за время работы системы
  • просматиривает события, происходящие на объекте, пользуясь журналом событий

Главный экран управления и мониторинга состояния системы

Приложение для управления поливом

На главном экране веб-приложения отображаются текущие состояния всех узлов системы: показания датчиков уровня воды в резервуаре и датчика температуры (таблица слева), а также состояние электромагнитных клапанов всех контуров полива (таблица справа).

На этом же экране пользователь может вручную включить или выключить любую из линий полива.

В нижней части экрана отображаются последние события, произошедшие на станции.

Экран управления расписанием полива в автоматическом режиме

Управление поливом по расписанию

На данном экране пользователь может создать расписание для работы системы в автоматическом режиме, чтобы сервер включал и выключал полив на станции без участия пользователя.

Журнал событий

В журнал заносятся важные события на станции: включение/выключение линий полива, обрыв связи со станцией, восстановление связи со станцией, температура на улице ниже заданного уровня, резервуар пуст, резервуар почти пуст.

Оповещение пользователя

В настройках станции пользователь может назначить некоторые события как предупредительные или аварийные. При возникновении этих событий сервер будет оповещать пользователя по электронной почте и (или) СМС. Это могут быть события обрыва связи со станцией, низкий уровень воды в резервуаре или низкая температура на улице.

Нижний предел температуры и время таймаута, после которого система регистрирует обрыв связи, — задаются в настройках.

График уличной температуры

Температура в системе автополива Trends

На этом экране отображается график изменения температуры в течение заданного промежутка времени (10 мин., 30 мин., час, 12 часов, сутки, неделя, месяц).

Дальнейшее развитие системы

В дальнейшем планируется повысить информативность системы, дополнив её счётчиками воды. Показания счётчиков будут видны пользователю через веб приложение. На основании этих данных можно будет строить графики расхода воды за длительный период времени.

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

Заключение

Для тех, кто хочет более подробно изучить технологию обмена данными с удалённым сервером с помощью Arduino и модема SIM900, мы подготовили серию уроков на эту тему. Вот первый из них .

На этом пока всё! Надеемся, что было интересно! До новых встреч на LAZY SMART ! Чтобы не пропустить новую статью, вступай в нашу группу Вконтакте , а также подписывайся на наш канал YouTube .


Источник: lazysmart.ru