1 2 3 4 5 6 7 8 9 10 10/10 9,94оценок: 33

Arduino Mega. Контроллер теплицы. Хроники

Тема в разделе "Теплицы и парники", создана пользователем DIYMan, 05.01.16.

Статус темы:
Закрыта.
  1. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Набросились на текстовые команды :) Я и сам знаю, что никто их вводить не будет, это - прокладка, чтобы рулить контроллером отовсюду. Об этом - ниже.

    Дело было вечером, делать было нечего... Вернее, дело началось с утра, и делать было много чего, аж на целый день. Закончил вот только сейчас. Чего делал? Да ручками чтобы ничего не вводить - начал писать программу для PC, чтобы смотреть текущее состояние, да конфигурировать контроллер.

    Скриншот самой первой версии:

    screen.jpg

    В приложенном архиве - всё до кучи: и документация, и текущая версия прошивки для Меги, и, собственно, первая версия софта (в папке SOFT) в архиве. На софт исходников не будет, звиняйте. Если кому интересны исходники - готов поделиться только в обмен на активное участие в проекте.

    Как рулить? Закачать прошивку в Мегу (там сейчас температура генерируется произвольно, поэтому никаких датчиков вешать не надо - только Мега, и всё), да запустить программу. Дальше, думаю, будет интуитивно понятно.

    Для работы программы нужен. Net Framework четвёртой версии, думаю, на современных ОС он уже стоит. Писалось всё это добро под не самой свежей Visual Studio 2010, так что взлететь должно. Если не взлетит - пишите, буду рад любым отзывам.

    Как видно, расти есть куда - допишу в конфигуратор управление форточками - и можно будет прямо из него открывать/закрывать. Соответственно, прописывание всяких правил управления форточками - тоже будет в нём.

    И НИЧЕГО не надо будет писать ручками. Ну и до кучи - когда придут экраны всякоразные - будет и железянный экран на Меге, чтобы и оттуда можно было управлять настройками.

    Вот бы ещё под Андроид софт уметь писать :|: Но ничего - как устаканю существующее - будет и под Андроид.
     

    Вложения:

  2. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    А пока и не будет входить - пока датчик влажности не пришёл. Вот придёт, я убедюсь, что ему можно верить - и тогда будет настройка проветривания по влажности.
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Ага, это понятно и очевидно. Вопрос - как это увязать с правилами? В правилах жёстко прописывается, с какого датчика смотрим температуру, и что делать при изменении этой температуры - например, открыть окна. То есть как-бы нет одной глобальной настройки "Т открытия", потому что форточки могут открываться по разным причинам: для проветривания, например.

    Как этот синус завязать в котангенс, а? Предлагайте.
     
  4. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.105
    Благодарности:
    8.379

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.105
    Благодарности:
    8.379
    Адрес:
    Брянск
    Это только в том случае, когда обратная связь заведена. Фактически, обратная связь с концевиков - это ещё пара датчиков, я не буду ставить. Если форточка открылась полностью, в любом случае тока не будет, поскольку концевики сработали, поэтому пусть контроллер хоть постоянно держит команду - вреда не будет, только что обмотки реле под током находится будут.
    В чём сложность? Оператору практически ничего не остаётся делать. Нажал кнопку и жди пока параметр сам установит нужное значение. Установил - ещё раз нажал кнопку, начал устанавливаться следующий параметр... и т. д. Для установки 10 параметров потребуется десять нажатий одной кнопки.
    Дело оператора - параметры задать: температуру открытия для проветривания, температуру открытия для просушки и т. п. А когда команду на открытие подать - контроллер сам разберётся.
     
    Последнее редактирование: 17.01.16
  5. Goodwil
    Регистрация:
    14.04.12
    Сообщения:
    2.881
    Благодарности:
    2.415

    Goodwil

    Живу здесь

    Goodwil

    Живу здесь

    Регистрация:
    14.04.12
    Сообщения:
    2.881
    Благодарности:
    2.415
    Адрес:
    Липецк, Россия
    @DIYMan, когда дойдут мои детали от Ардуино из Китая - можно будет в этой теме консультироваться, так?
     
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Я немного о другом спрашивал, вот смотрите: в концепции правил мы можем следить за температурой на любом датчике. Если температура удовлетворяет какому-либо условию - мы можем выполнить любое действие, например, включить вентилятор, а не только открыть или закрыть форточки. То есть конкретное значение температуры, за которым мы следим - завязано на правило. У правила - есть действие, которое оно должно выполнить при срабатывании.

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

    На конкретном примере: у нас есть несколько правил на открытие форточек - одно на проветривание (когда Т снаружи больше 12 - открыть форточки утром на проветривание на полчаса), второе - на поддержание нужной температуры (открыть форточки, когда Т внутри больше 25). Как видите, у этих правил разная температура Т открытия, потому что они следят каждое за своим датчиком. А команда, которая выполняется при срабатывании правила, одна - открыть форточки.

    Как при таком раскладе ввести однозначную "Т открытия" в настройках на LCD-экране? Вот о чём я голову ломаю сейчас.

    Понятно что вы предложили ввести несколько настроек: "Т открытия", "Т проветривания" и т. п. Но, опять же - правил может быть много, следить они могут за десятком датчиков, и температуры открытия и закрытия для этих правил могут быть все разные. Более того - теоретически будут правила, которые смогут открывать форточки при превышении влажности, например, т. е. там температуры нет вообще. Короче, пока не вижу, как это всё разрулить.
     
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Конечно, чем смогу, что называется. Но больше по части программирования - по схемотехнике я не очень.
     
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Ещё один интересный вопрос на обсуждение: вот следим мы за температурой, открываем/закрываем форточки. Подошёл юзер к теплице, смотрит - форточки закрыты, и захотелось ему их открыть. Жмакнул кнопочку на коробочке - форточки и открылись.

    Как быть дальше, если автоматическое слежение захочет следом закрыть форточки? Как по мне, так очевидно, что в данном конкретном случае надо переводить систему в ручной режим работы. Переводить в любом случае, когда команда на открытие или закрытие форточек пришла напрямую от юзера, неважно из какого источника - со смартфона, с конфигуратора, по нажатию кнопки на коробочке и т. п. Плюс сигнализировать юзеру (миганием диода, например), что система находится в ручном режиме.

    Я правильно понимаю такую ситуацию?
     
  9. Викторка7
    Регистрация:
    10.12.10
    Сообщения:
    581
    Благодарности:
    338

    Викторка7

    инженер-тепловизионщик

    Викторка7

    инженер-тепловизионщик

    Регистрация:
    10.12.10
    Сообщения:
    581
    Благодарности:
    338
    Адрес:
    Москва-Шатура-Адыгея-Новороссийск
    Имеете в виду, что форточки будут открываться не только при превышении температуры, но и влажности? Так можно в меню по желанию менять как температуру, так и влажность, как открытия, так и закрытия.
    При каких еще условиях могут открываться или закрываться фрамуги?
     
  10. Викторка7
    Регистрация:
    10.12.10
    Сообщения:
    581
    Благодарности:
    338

    Викторка7

    инженер-тепловизионщик

    Викторка7

    инженер-тепловизионщик

    Регистрация:
    10.12.10
    Сообщения:
    581
    Благодарности:
    338
    Адрес:
    Москва-Шатура-Адыгея-Новороссийск
    Вот и я про то же. Зачем лишние блуждания токов в электронике, когда ничего не надо выполнять, т. к. уже выполнено. Концевики в крайних положениях, но Дмитрий подразумевает еще промежуточные.
    Как это сам? Нужны кнопки, чтобы изменять значения. Для единственной кнопки можно, конечно, прописать: одно короткое нажатие, одно длинное, 2 коротких, 1 короткое и 1 длинное... Но зачем такие сложности, когда проще сделать несколько кнопок для навигации по меню, как в любом пульте управления. С 1-й кнопкой мне не встречалось, разве что включить-выключить.
     
  11. Викторка7
    Регистрация:
    10.12.10
    Сообщения:
    581
    Благодарности:
    338

    Викторка7

    инженер-тепловизионщик

    Викторка7

    инженер-тепловизионщик

    Регистрация:
    10.12.10
    Сообщения:
    581
    Благодарности:
    338
    Адрес:
    Москва-Шатура-Адыгея-Новороссийск
    А приоритет правил можно ведь сделать? То есть:
    1. Форточки открываются с 9-00 до 10-00 утра. Всегда, кроме как когда это правило отключено.
    2. Форточки открываются при Т>=30 и закрываются при Т<=25. Если работает правило 1, то ничего не предпринимать.
    В меню это тоже можно вывести, например:
    Меню - Настройки - Фрамуги
    Температура
    Т откр. 30
    Т закр. 25
    Влажность
    W откр. 70
    W закр. 50
    Время откр.
    Вкл. или Выкл. Если Вкл., то установить время открытия и закрытия.
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Вот смотрите, как пример только: фрамуги могут открываться, если температура снаружи (датчик №2) больше 12 градусов - для проветривания утром. Фрамуги могут открываться, если температура внутри (датчик №1) больше 25 градусов - для избежания перегрева. Фрамуги могут открываться, если влажность выше 90%, например.

    Далее - фрамуги могут закрываться, если температура в ТА (датчик №3) меньше 25, даже если Т внутри (датчик №1) больше 25 - просто гоняем воздух через ТА, опуская температуру в теплице. Фрамуги могут закрываться, если Т внутри (датчик №1) меньше 24 градусов.

    Где здесь видно однозначные Т закрытия/открытия? Мало того, что эти Т получены от разных датчиков, так ещё и по условию срабатывания (больше/меньше) - в зависимости от этих Т фрамуги могут как закрыться, так и открыться.

    Вот я пока - не вижу, как сделать на LCD-экране однозначно понятные установки температур, чтобы они не конфликтовали с правилами. Давайте подумаем вместе ;)
     
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Так приоритет правил есть и сейчас - это как раз условия "не выполнять, если сработало какое-либо другое правило". Вопрос не в этом, а в том - как однозначно увязать температуры открытия и закрытия, которые хочется менять на LCD-экране, с правилами.

    Чего-то мне уже хочется отказаться от LCD-экрана и настроек посредством его :) Но, конечно, буду думать, обычно в таких случаях решение сразу не приходит. От правил же - отказываться не хочу, гибкая система, как ни крути.
     
  14. Викторка7
    Регистрация:
    10.12.10
    Сообщения:
    581
    Благодарности:
    338

    Викторка7

    инженер-тепловизионщик

    Викторка7

    инженер-тепловизионщик

    Регистрация:
    10.12.10
    Сообщения:
    581
    Благодарности:
    338
    Адрес:
    Москва-Шатура-Адыгея-Новороссийск
    Не знаю, правильно или нет, но я ее понимаю абсолютно так же.
    Если захотелось пошалить ручками, то система переводится в ручной режим с уведомлением пользователя и срабатыванием аварийной сигнализации при критичном отклонении параметров.
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Вот, спасибо, занесу в TODO-лист. :super::hello:
     
Статус темы:
Закрыта.