Найти тему
K12 :: О ESP32 и не только

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

Оглавление

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

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

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

Летучий корабль теплица машет крыльями-форточками и пытается взлететь, но пока безуспешно. И слава Богу!

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

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

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

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

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

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

Первоначально я планировал управлять положением форточек только по температуре: превысила температура в теплице заданный порог - открываем форточки на 1 шаг, понизилась ниже порога - закрываем на 1 шаг.

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

Сразу же я разделил пороговые значение на два разных: порог открытия и порог закрытия (на данный момент это 24°С и 22 °С, все значения настраиваемые). То есть ввел небольшой гистерезис. Сделано это для того, чтобы при граничной температуре не происходило бесполезное махание форточками.

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

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

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

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

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

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

-4

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

Далее, добавил три ограничения по скорости ветра (все значения настраиваются):

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

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

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

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

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

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

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

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

Алгоритмы

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

GitHub - kotyara12/reShutter: Управление краном или форточкой с реверсом

Здесь я не буду описывать этот класс, иначе будет лонг-лонг-лонгрид. Работать он будет только для ESP-IDF, но можно адаптировать и для любого Arduino контроллера.

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

-7

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

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

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

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

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

-10

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

-11

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

-12

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

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

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

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

-14

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

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

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

________

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

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

_______________

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

👍 Понравилась статья? Поддержите канал лайком или комментарием! Каналы на Дзене "живут" только за счет ваших лайков.

📌Подпишитесь на канал и вы всегда будете в курсе новых статей.

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