Перейти к содержимому

Автоматическая теплица. Часть 3. Управление форточками

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление…

Очень часто сталкиваешься с мнением: “Да мне вся эта автоматика не нужна – я и сам(а) открою форточки и полью! Мне не сложно вылить 2 / 5 / 10 / 20 леек воды на свои растения. Да и физическим трудом нужно заниматься!”
Наверное, можно подумать, что вся эта куча электроники и исполнительных устройств (на весьма немаленькую сумму, кстати) нужна только для того, чтобы перестать таскать лейки и открывать форточки?
Вовсе нет! Самое главное преимущество автоматики – “отвязать” себя от грядок. Конечно, очень полезно заниматься физическим трудом на свежем воздухе. Но!!! Только когда у вас есть на это достаточно времени! Например – вы пенсионер (но тогда – “силы уже не те”).
А если у вас дача и всю неделю вы в городе на работе???? Я хоть и живу “на даче” круглый год, но на работу ходить приходится, до пенсии еще далековато.
А если хочется в отпуск??? Почему раньше крестьяне редко ездили куда-то в отпуск? Да потому что от хозяйства и огорода не уедешь. Согласен, автоматизировать все не получится, но я постараюсь. И смело можно ехать в отпуск, не переживая, что все высохло и завяло.

Все части цикла “Теплица с зачатками разума на ESP32”

 

Собранный блок управления теплицей, про который я рассказывал в предыдущих постах, уже установлен на постоянное место жительства и успешно работает. Летучий корабль теплица машет крыльями-форточками и пытается взлететь, но пока безуспешно (успешно отработал весь летний сезон – прим. автора).

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-1-2

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-1-3

Как я уже упоминал, автоматика теплицы выполняет три функции:

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

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

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

 

Чтобы излишне не “раздувать” размер текста, в этой статье я поделюсь с вами полученным на текущий момент алгоритмом управления форточками – вдруг вы захотите создать примерно такую же конструкцию. Совсем не обязательно реализовать его на ESP-IDF, вполне возможно сделать это и на Arduino IDE. В следующих статьях рассмотрим остальные части алгоритма, а конце, возможно, я расскажу как собрать и прошить точно такое – же устройство. К тому времени, надеюсь, все заметные баги в прошивке будут уже выловлены.

 


Управление форточками по температуре

Логика управление форточками довольно проста.

Длительность полной работы моих актуаторов составляет примерно 1 минуту. Этот интервал я разбил на 8 частей (шагов) примерно по 5 секунд с коэффициентом увеличения каждого последующего шага на 1.1. То есть мы имеем 9 положений форточек от “полностью закрыто” (0) до “полностью открыто” (8). Примеры разных положений на фото ниже:

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-2

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-2-2

Сразу же я разделил пороговые значение на два разных: порог открытия и порог закрытия (на данный момент это 24°С и 22 °С, все значения настраиваемые). То есть ввел небольшой гистерезис. Сделано это для того, чтобы при граничной температуре не происходило бесполезное махание форточками. Для этой же цели служит настраиваемый “период стабилизации” (5 минут) – если с момента последнего открытия или закрытия форточек прошло меньше времени, система не реагирует. Но при слишком большой температуре (выше 27°С) и слишком низкой (ниже 20°С) эта задержка может только мешать – поэтому при этих пороговых температурах привод открывает или закрывает форточки полностью.

Дабы не реагировать на кратковременные изменения температуры – добавил медианный фильтр по температуре.

Все это позволяет достаточно точно поддерживать заданную температуру (для томатов идеальная температура составляет от 22 до 26°С).

Температура растет - форточки открываются. Теплый воздух уходит или солнце заходит за тучку - закрываются...

Выяснилось, то форточки такого размера под крышей вполне успешно справляются с отводом лишнего тепла, даже при полностью закрытых дверях и окнах снизу. Но только примерно до +25°С снаружи – тогда уж сколько не открывай дверей и окон – ситуация практически не меняется.

Внутри теплицы я применил “специальный тепличный” датчик, про который уже писал на этом сайте. Почти сразу обнаружилось, что в солнечные дни сенсор перегревается, а спрятать его в “дворце хрустальном” просто негде. Что, впрочем, и следовало ожидать – я был в этом уверен до запуска проекта в эксплуатацию. Пришлось сделать отражающий чехол из отрезка трубы – утеплителя для канализационных труб и металлизированного скотча. Экран открыт сверху и снизу, что позволяет воздуху свободно циркулировать. Ситуация заметно улучшилась.

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-4

 


Закрытие форточек при сильном ветре

Для того, чтобы сильный ветер не отломал форточки и не унес теплицу в страну Оз, дополнительно я добавил три ограничения по скорости ветра (все значения настраиваются):

  • при скорости ветра 5 м/с устанавливается ограничение на 50%
  • при скорости ветра 6 м/с устанавливается ограничение на 12,5%
  • при скорости ветра выше 7 м/с форточки закрываются полностью

В середине дня форточки закрывались как раз из-за сильных порывов ветра

Данные о скорости ветра получаются с простейшего китайского чашечного анемометра, который установлен на крыше и подключен к моей персональной метеостанции.

Извините за качество фото

Закрытие форточек перед дождем

Уже в самом начале “опытной” эксплуатации выяснилось, что неплохо бы экстренно закрывать форточки перед дождем. Просмотрев графики изменений с метеостанции понял, что перед дождем резко падает освещенность и температура снаружи теплицы, хотя внутри теплицы остается еще достаточно тепло. Да и время стабилизации не способствует быстрому закрытию форточек.

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

 

Ручное управление форточками

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

 


Алгоритмы

Для управления форточками (и шаровым краном) я написал специальную библиотеку – класс, который вы можете найти на моем GitHub. Библиотека reShutter создана для управления простыми электроприводами с возможностью реверса и промежуточными состояниями – кранами, форточками, заслонками и т.д.

Библиотека рассчитана на приводы с обычными коллекторными или беcколлекторными электродвигателями без пошагового управления, поэтому все управление осуществляется на основе временных интервалов (программных таймеров). То есть для открытия или закрытия привода в определенное положение на него просто подается соответствующее напряжение на определенное время, рассчитанное библиотекой. Для осуществления реверса используются два разных GPIO, поэтому вам необходимо использовать мостовую схему для непосредственного управления двигателем.

При работе библиотеки предполагается, что она никак не контролирует текущее физическое положение привода, а отключение электродвигателя в конечных положениях осуществляется с помощью встроенных в привод конечных выключателей. Поэтому при инициализации экземпляра класса привод всегда переводится в положение “полностью закрыто“, а затем отсчитывается положение исходя из этого начального значения. Поэтому перед использованием библиотеки важно максимально точно определить время полного закрытия или открытия привода. Однако вы можете добавить “внешний” контроль положения с помощью каких-либо датчиков самостоятельно.

Библиотека реализована в виде нескольких классов, которые поддерживают работу как с встроенными GPIO микроконтроллера, так и с расширителями GPIO типа PCF8574 и аналогичных.

  • class rGpioShutter предназначен для работы с встроенными GPIO
  • class rIoExpShutter предназначен для работы через расширители GPIO

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

Дополнительную справочную информацию об использовании данной библиотеки вы можете почерпнуть из файла reShutter.h

 

С использованием этого класса управление из основной задачи выглядит довольно просто:

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-7

Для начала определим необходимые переменные-параметры:

Все это можно изменить и настроить по желанию и потребностям

Реализуем управление по внутренней температуре:

Здесь же учитывается интервал суток, в течение которых разрешено открывать форточки.

Добавляем функцию ограничений по скорости ветра:

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-10

Добавляем принудительное закрытие по наружной температуре

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-11

и освещенности:

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-12

Итоговый код, который вызывается из цикла задачи:

Управление по внутреннему датчику, если он неисправен по дополнительному, если и он неисправен - по внешней температуре

 


Управление и топики

Всё это хозяйство генерирует целую кучу топиков на MQTT-брокере, большинство из которых публикуются в виде JSON-пакетов (кроме секции настроек config/confirm), содержащих целую кучу информации.

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-14

Топиков настолько много, что приходится публиковать их пакетами, распределив по нескольким циклам задачи.

На смартфоне это выглядит так:

Настройки и данные с датчиков на 18:00

Добрый день, уважаемые читатели! Для начала небольшое лирическое отступление... Очень часто сталкиваешься с мнением: "Да мне вся эта автоматика не нужна - я и сам(а) открою форточки и полью!-15-2

После корректной настройки все работает в автоматическом режиме и постоянного контроля или ручного управления не требует.

 


Первая радуга в этом году

В следующих статьях я расскажу о том, как реализовано управление поливом и наполнением емкости.

Все части цикла “Теплица с зачатками разума на ESP32”

 


На этом пока всё, до встречи на сайте и на dzen-канале!

Полный архив статей вы найдете здесь


Пожалуйста, оцените статью:
[ 0 из 5, всего 0 оценок ]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *