Проект «Зимний сад»
![Зимний сад](/images/projects/dacha-garden.jpg)
Задача
Комплексное обеспечение работы зимнего сада, поддержание заданной температуры, полив растений с индивидуальной настройкой по каждому из 15-и каналов, контроль уровня воды, освещённости, влажности почвы, управление окнами, жалюзи и ролл-шторами, автоматический и ручной режимы работы, оповещение по SMS о тревожных ситуациях и т. д.
Обратите внимание. Проект «Зимний сад» это составляющая часть более обширного проекта «Умная дача», с которым можно ознакомиться на главной странице проекта. Одновременно, проект «Зимний сад» самодостаточен и может использоваться отдельно от основного проекта
Оборудование
В качестве основного контроллера используется Arduino Mega 2560, работающий в тандеме с таким же контроллером Mega, связанным с ним по беспроводному nRF24 каналу.
![Arduino Mega 2560](/images/arduino/mega.jpg)
Кроме основного контроллера в проекте используются:
- Второй контроллер Arduino Mega 2560
- Плата сетевого интерфейса Ethernet Shield
- 2 беспроводных модуля nRF24L01
- 3 цифровых температурных датчика DS18B20
- Датчик температуры и влажности воздуха DHT22
- 15 датчиков влажности почвы
- 4 датчика освещённости
- 2 датчика уровня воды
- 7 сервоприводов для управления жалюзи
- 12 шаговых моторов для управления ролл-шторами
- 18 реле для коммутации нагрузок 220 В
Топология подсети «Зимний сад»
На этой схеме представлена топология подсети «Зимний сад». Эта подсеть, в свою очередь, входит в сеть «Умная дача». Каждый управляющий контроллер которой («Дом», «Баня», «Котельная» и т. д.) тоже имеют свои подсети, подобные этой.
![Топология подсети «Зимний сад»](/images/projects/dacha-garden-network.png)
В связи с протяжённостью зимнего сада, не очень удобно прокладывать провода от контроллера ко всем его отдалённым частям, поэтому применено решение из двух одинаковых контроллеров Arduino Mega 2560, объединённых в единую систему при помощи беспроводного nRF24 канала
Один из контроллеров стал «главным», а второй «партнёром». Пользователь системы работает только с главным контроллером, работа партнёра для него полностью прозрачна, он может даже не подозревать, что работает с распределённой системой.
Вторым фактором, потребовавшим использования дополнительного контроллера, стало большое количество датчиков и актуаторов, которые нужно подключить к системе.
Режимы работы
Поскольку зимний сад примыкает к дому, то на контроллер сада возложены некоторые функции по управлению оборудованием дома. В частности, управлению частью окон, жалюзи, ролл-штор и проекционным экраном. Но основное назначение контроллера — это управление работой зимнего сада и полив растений.
В интерфейсе можно выбрать один из четырёх режимов работы системы: «авто», «ручной», «кабинет», «кино».
![Режимы работы](/images/projects/dacha-garden-modes.png)
Основным является автоматический режим. В этом режиме система сама управляет всем подключённым к ней оборудованием (робот) — открывает и закрывает окна, жалюзи и шторы, поливает растения, следит за уровнем воды и т. д.
В ручном режиме большинство автоматических функций отключается и становится доступной ручная установка параметров и индивидуальное управление каждой шторой и жалюзи.
Режимы «кабинет» и «кино» — это специализированные вариации режима «авто» с настройками штор и жалюзи для работы в кабинете или просмотра фильмов. Эти функции не относятся непосредственно к «Зимнему саду», они появились в системе в связи с соседством сада и дома.
Контроль температуры и влажности воздуха
Данные о температуре система получает от датчиков DS18B20, объединённых в 1-Wire сеть. Две зоны контроля температуры в зимнем саду и данные о температуре на улице. К системе также подключён датчик температуры и влажности воздуха DHT22. Все эти данные используются системой для управления микроклиматом зимнего сада.
![Контроль температуры](/images/projects/dacha-garden-temperature-settings.png)
В интерфейсе системы можно видеть текущие значения температуры и задавать пороговые значения, которые будут использоваться системой для поддержания температуры воздуха в зимнем саду.
Лимиты отклонений температуры
Для каждой контролируемой температуры можно задать пределы максимально допустимого отклонения от заданной величины. В случае выхода температуры за эти пределы система будет отсылать тревожные SMS на мобильный телефон.
![Лимиты отклонений температуры](/images/projects/dacha-garden-temperature-limits.png)
В данном случае отклонение температуры по всем зонам составляет 22,25 градуса Цельсия (это тестовый пример) и система уведомила об этом, отослав три SMS сообщения.
Система полива растений
Система поддерживает 15 независимых каналов полива растений, каждому из которых можно задать индивидуальные настройки. Часть этих каналов подключена к главному контроллеру, часть — к nRF24 партнёру. Для пользователя это подключение прозрачно, он видит только 15 каналов, которые управляются и работают одинаково.
Информация об уровне влажности почвы поступает в систему от 15-и датчиков, также подключённых к обоим контроллерам и эти подключения также прозрачны для пользователя. Кроме датчиков влажности почвы к системе подключены 15 реле управления поливом, по одному на каждый канал.
Получая данные с датчиков температуры, влажности воздуха и почвы, система принимает решение о необходимости полива той или иной зоны и в автоматическом режиме осуществляет полив.
Каждый из 15-и каналов используется для полива групп растений со сходными потребностями во влажности почвы. Например, 1-й канал можно настроить на полив орхидей, а 10-й — на полив кактусов.
Установки каналов полива
Интерфейс системы полива растений разбит на две части: в первой выводится информация о состоянии каждого канала, а во второй находятся настройки и кнопка включения и выключения всех каналов сразу.
![Установки каналов полива](/images/projects/dacha-garden-watering-channels.png)
По каждому каналу выводится: его состояние («выключен» или «автополив»), текущий уровень влажности почвы, полученный с соответствующего датчика и установленная цель полива (для кактусов сухо, для орхидей — влажно).
Тут же можно задать параметры по каждому каналу и сохранить их в энергонезависимую память — после выключения и последующего включения контроллера система продолжит полив растений в заданном режиме.
Параметры полива
Здесь задаются общие настройки для всей системы определения влажности почвы и полива растений.
![Параметры полива](/images/projects/dacha-garden-watering-settings.png)
Почвы и используемые датчики могут различаться по параметрам, а также датчики могут изменять свои характеристики с течением времени. Для точной настройки и компенсации деградации поверхности электродов датчиков в системе предусмотрена возможность задания пороговых значений, которые определяют тот или иной уровень влажности («сухая», «суховатая», «нормальная», «влажная», «залита водой»).
Также доступны настройки периода полива растений и длительность сеанса полива. Изменяя эти параметры, можно добиться оптимальной работы системы полива в конкретных условиях того или иного сада.
Управление окнами
Управление окнами производится либо в ручном, либо в автоматическом режиме. В ручном режиме доступны кнопки в веб-интерфейсе, нажимая на которые можно открывать и закрывать окна.
![Управление окнами](/images/projects/dacha-garden-windows.png)
Цвет кнопки указывает на текущее положение окна: оранжевый — открыто, серый — закрыто.
Управление жалюзи
К системе подключены 7 жалюзи, управляемые сервомоторами. Все жалюзи разбиты на две логические группы по местам их физического местонахождения.
![Управление жалюзи](/images/projects/dacha-garden-servo.png)
Управлять жалюзи можно как индивидуально, открывая их на любой нужный угол, так и в групповом режиме, задавая угол раскрытия и устанавливая всю группу в указанное положение. В автоматическом режиме система сама управляет жалюзи в соответствии с заложенной программой.
Управление ролл-шторами
Управление ролл-шторами аналогично управлению жалюзи. В ручном режиме доступна индивидуальная и групповая установка штор в любое положение, в автоматическом режиме система сама управляет шторами в соответствии с заложенным в неё алгоритмом.
![Управление ролл-шторами](/images/projects/dacha-garden-roll.png)
Панель управления
В панели управления собрана информация обо всех датчиках и объектах управления, подключённых к системе и о состоянии самой системы. Вся информация обновляется в реальном времени, выводятся: текущее время, дата, температура на улице, название контроллера и номер щитовой где он установлен, текущая загрузка контроллера, размер свободной памяти и т. д.
![Панель управления](/images/projects/dacha-garden-dash.png)
Обилие индикаторов говорит о насыщенной внутренней жизни системы и сложности алгоритмов, обеспечивающих её работу. Панель управления удобна тем, что достаточно одного взгляда на неё, чтобы оценить текущее состояние всей системы.
Время восхода и захода солнца
В систему интегрирован алгоритм, определяющий время восхода и захода солнца (тёмного и светлого времени суток) для каждого дня в году и определённых географических координат.
![Время восхода и захода солнца](/images/projects/dacha-garden-dash-sunmoon.png)
Индикатор имеет два состояния: «SUN» на жёлтом фоне (в светлое время суток), «MON» на синем фоне (в тёмное).
SMS-сервер
Проект «Зимнего сада» входит в общий проект «Умная дача». В локальной сети «Умной дачи» работает SMS-сервер, который обеспечивает передачу SMS со всех контроллеров сети на мобильные телефоны и приём управляющих SMS с мобильных телефонов и передачу их контроллерам сети.
![SMS-сервер](/images/projects/dacha-garden-dash-sms.png)
В панель управления выводится информация о доступности в сети SMS-сервера. В данном случае SMS-сервер не работает.
Другие контроллеры сети
В сети «Умной дачи» присутствуют контроллеры других объектов управления, например, «Дома», «Бани», «Котельной» и т. д. В панели управления находятся ссылки для быстрого перехода между контроллерами сети.
![Ссылки на другие контроллеры сети](/images/projects/dacha-garden-dash-links.png)
Нажимая на такую ссылку, вы переходите на другой контроллер, но выглядит это так, как будто вы просто открываете другую страницу AMS сайта. Понятие «управляющий компьютер» размывается и им становится вся сеть. Плюс этого подхода в том, что при выходе из строя какого-либо отдельного контроллера 90% системы продолжает работать в штатном режиме (в отличие от централизованных систем, где выход из строя главного компьютера приводит к полной остановке системы).
nRF24 партнёр
Как уже отмечалось выше, система состоит из двух контроллеров Arduino Mega («главного» и «партнёра»), объединённых в одно целое по беспроводному nRF24 каналу. Поскольку работа партнёра полностью прозрачна и скрыта от пользователя, то он ничего не знает о состоянии самого партнёра.
![nRF24 партнёр](/images/projects/dacha-garden-dash-partner.png)
В панель управления выведена информация о текущем состоянии партнёра: если индикатор зелёного цвета — с партнёром всё в порядке, если красного — значит партнёр не работает. В данном случае партнёр работает нормально.
Индикация температуры
Информация с цифровых датчиков DS18B20, подключённых по проводному соединению 1-Wire к системе. Используется для создания комфортных условий для выращивания растений в зимнем саду.
![Индикация температуры](/images/projects/dacha-garden-dash-temperature.png)
Датчик влажности воздуха
Информация о влажности и температуре воздуха с датчика DHT22, подключённого к главному контроллеру.
![Датчик влажности воздуха](/images/projects/dacha-garden-dash-dht22.png)
Датчики влажности почвы
Состояние всех 15-и датчиков влажности почвы в реальном времени. Весь диапазон возможных уровней влажности почвы разбит на несколько поддиапазонов: «сухая», «суховатая», «нормальная», «влажная», «залита водой».
![Датчики влажности почвы](/images/projects/dacha-garden-dash-moisture.png)
Каждому уровню влажности соответствует свой цвет. В данном случае датчики M4, M6, M8, M9 показывают нормальный уровень влажности (зелёный цвет), датчики M2, M3 — сухую почву (оранжевый), остальные — суховатую (коричневый). Какие каналы будут поливаться в данном случае зависит от настроек, заданных пользователем в веб-интерфейсе.
Реле полива растений
Информация о состоянии 15-и реле полива растений. В соответствии с показаниями датчиков влажности почвы и настройками, система решила, что в данный момент нужно включить на полив реле W2, W3, W5, W7, W10, W11, W12, W13, W14, W15.
![Реле полива растений](/images/projects/dacha-garden-dash-water-relays.png)
Реле управления окнами
Состояние реле управления открыванием и закрыванием окон. В ручном режиме управление производится из веб-интерфейса, в автоматическом система сама открывает и закрывает их. В данный момент окна закрыты.
![Реле управления окнами](/images/projects/dacha-garden-dash-windows.png)
Реле управления экраном
Информация о состоянии реле, управляющего проекционным экраном. Это часть функционала системы не относящаяся непосредственно к зимнему саду. Активируется при переходе в режим «Кино».
![Реле управления экраном](/images/projects/dacha-garden-dash-screen.png)
Сервоприводы управления жалюзи
Информация о положении 7-и сервоприводов управления жалюзи. Все жалюзи разбиты на две группы S1 (5 жалюзи) и S2 (2 жалюзи).
![Сервоприводы управления жалюзи](/images/projects/dacha-garden-dash-servo.png)
Моторы управления ролл-шторами
Информация о положении 12-и ролл-штор. Все ролл-шторы разбиты на четыре группы C3 (6 ролл-штор), C4 (3 ролл-шторы), C5 (2 ролл-шторы) и C6 (1 ролл-штора). Эти группы используются в ручном и автоматическом управлении шторами.
![Моторы управления ролл-шторами](/images/projects/dacha-garden-dash-roll.png)
Датчики уровня воды
К системе подключены два датчика уровня воды, один к главному контроллеру, другой к беспроводному nRF24 партнёру. Несмотря на различие в подключении и работу одного датчика через беспроводной канал, оба датчика выглядят в интерфейсе совершенно одинаково.
![Датчики уровня воды](/images/projects/dacha-garden-dash-level.png)
Датчики освещённости
К системе подключены 4 датчика освещённости. 2 из них непосредственно к главному контроллеру и 2 — к nRF24 партнёру. Датчики определяют несколько градаций освещённости: «открытое солнце», «солнечно», «день», «пасмурно», «сумерки», «ночь». Эти данные используются системой в своей работе и уходе за растениями.
![Датчики освещённости](/images/projects/dacha-garden-dash-illumination.png)
Каждый уровень освещённости отображается в интерфейсе своим цветом. В данном случае первый датчик показывает уровень освещённости «день», а остальные три — «пасмурно».
Развитие проекта
Тема управления теплицами, оранжереями и зимними садами очень обширная, всегда можно найти то, что нужно улучшить или придумать функцию, которую нужно добавить в систему. Этот проект делался под конкретный зимний сад и его конкретные условия и со своей задачей справляется на отлично. В дальнейшем, при необходимости, можно расширить реализованный функционал новыми функциями.
Функции, реализованные в проекте
- Комплексное управление зимним садом
- Управление системой из веб-интерфейса
- Адаптивный дизайн для использования на планшетах и смартфонах
- Отсылка тревожных и информационных SMS сообщений
- Сохранение настроек в энергонезависимой памяти
- Реализация распределённой устойчивой системы без главного компьютера
Датчики и актуаторы
- Подключение 3-х температурных датчиков DS18B20 по сети 1-Wire
- Подключение датчика температуры и влажности воздуха DHT22
- Подключение 2-х датчиков уровня воды
- Подключение 4-х датчиков освещённости
- Подключение 15-и датчиков влажности почвы
- Подключение 7-и сервоприводов для управления жалюзи
- Подключение 12-и моторов для управления ролл-шторами
- Подключение 18-и проводных реле коммутации нагрузок 220 В
Режимы работы системы
- Режимы работы системы «авто», «ручной»
- Смена режима в веб-интерфейсе
Температура
- Установка параметров температуры в веб-интерфейсе
- Слежение за заданной температурой
- Контроль температуры в реальном времени на веб-странице
- Задание лимитов отклонения температуры в веб-интерфейсе
- Индикация нарушений температурных лимитов на веб-странице
- Отсылка тревожных SMS при нарушении лимитов температур
Полив растений
- 15 независимых каналов полива растений
- Контроль влажности почвы по 15-и каналам
- Контроль температуры, влажности воздуха и освещённости
- Установка параметров полива в веб-интерфейсе
- Установка влажности почвы по каждому из 15-и каналов
- Индивидуальное или общее включение каналов
- Индикация состояния каждого канала в веб-интерфейсе
nRF24 сеть
- Поддержка работы nRF24 сети
- Распределённая nRF24 система
- Использование AMS nRF24 беспроводного стека и протокола
- Индикация состояния nRF24 партнёра в панели управления
Управление окнами
- Управление окнами автоматически, в зависимости от режима
- Управление окнами вручную из веб-интерфейса
Управление сервоприводами жалюзи
- Открывание и закрывание жалюзи из веб-интерфейса
- Произвольный выбор угла открытия
- Автоматическое управление жалюзи
- Индивидуальное и групповое управление жалюзи
- Индикация в реальном времени положения жалюзи
Управление ролл-шторами
- Открывание и закрывание ролл-штор из веб-интерфейса
- Произвольный выбор величины открытия штор
- Автоматическое управление ролл-шторами
- Индивидуальное и групповое управление ролл-шторами
- Индикация в реальном времени положения ролл-штор
Работа со временем
- Синхронизация времени с серверами в интернете
- Отслеживание временных интервалов
- Отслеживание времени суток
- Отслеживание времени восхода и захода солнца
SMS сообщения и команды
- Интеграция с AMS SMS-сервером
- Отсылка SMS сообщений на мобильный телефон
- Приём управляющих SMS от SMS-сервера
Сетевая работа
- Интеграция с другими контроллерами сети
- Приём управляющих команд по сети от других контроллеров
- Отсылка управляющих команд другим контроллерам сети
- Ссылки в интерфейсе для перехода между контроллерами сети
Индикация
- Индикация состояния всех объектов системы в реальном времени
Заказать проект
Для того, чтобы заказать проект, просто пришлите письмо с описанием задачи на адрес info@hi-lab.ru и возможно уже через несколько дней вы получите готовый проект вашей мечты