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 км от Краснодара
    Ладно, надо раскрыть интригу, чтобы другие не вступили в такую детскую ошибку:
    Ошибку выделил жирным. Смотрите: если длина закодированного сообщения более 256 символов, то счётчик цикла переполняется (он однобайтовый, с максимальным значением 255), происходит переход через 0, и цикл никогда не заканчивается. Чтобы этого не было - надо использовать счётчик бОльшей разрядности, например, uint16_t.

    Вот такая детская ошибка из-за невнимательности.
     
  2. kivik71
    Регистрация:
    28.10.13
    Сообщения:
    3.780
    Благодарности:
    2.288

    kivik71

    Живу здесь

    kivik71

    Живу здесь

    Регистрация:
    28.10.13
    Сообщения:
    3.780
    Благодарности:
    2.288
    Адрес:
    Екатеринбург
    Вопрос очень интересный и большой.
    Для того, чтобы его решить нужно видеть общую картинку всех частей системы управления теплицей:
    - общая схема подключений частей с потребляемой мощностью
    - место расположения этих частей по пространству теплицы
    Общую картинку уже создаю, но пока еще не готова к выкладыванию.
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

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

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

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

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

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Смотрите: на гитхабе (https://github.com/Porokhnya/GreenhouseProject) есть простенькая принципиальная схема, на которую можно для начала опираться. Плюсом туда надо добавить Bluetooth HC-05, ESP-8266, RS-485, рабочий ток типичного э/м-клапана на 12В*кол-во клапанов - как минимум потребление этих модулей. Но уже сразу навскидку ясно, что не менее 3А в пике. Чтобы не париться - лично я бы заложил сразу 10А на блок питания, запас карман не тянет, ибо всё равно БП нужен хороший и надёжный, иначе теряется весь смысл.
     
  5. kivik71
    Регистрация:
    28.10.13
    Сообщения:
    3.780
    Благодарности:
    2.288

    kivik71

    Живу здесь

    kivik71

    Живу здесь

    Регистрация:
    28.10.13
    Сообщения:
    3.780
    Благодарности:
    2.288
    Адрес:
    Екатеринбург
    Лучше делать так: наполнять водой вечером (или даже ночью по ночному тарифу), днем вода греется, вечером поливается, потом снова наполняется. Но это по моему опыту, у нас один большой бак и с него поливается все, и теплицы и уличные грядки. Для автоматизации использовать розетку с таймером, чтобы не бегать по ночам включать насос.
    Эти же розетки с таймером можно использовать для облегчения кода контроллера.
     
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Между тем - так никто пока и не рассказал мне, чем таки однозначно лучше раздельное руление каналами полива, чем так, как сделано у меня - руление всеми вместе?
     
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

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

    Насчёт раздельного управления каналами полива - всё ещё думаю.
     
  8. D_J_Instruktor
    Регистрация:
    28.01.16
    Сообщения:
    35
    Благодарности:
    18

    D_J_Instruktor

    Участник

    D_J_Instruktor

    Участник

    Регистрация:
    28.01.16
    Сообщения:
    35
    Благодарности:
    18
    Проект хороший, буду следить за продолжением. Собираю подобный проект на основе чужого скетча, только без управления по смс, а сам факт возможности применения данной возможности очень хочется применить у себя. Поэтому позже попробую внедрить передачу команд по смс в чужой код. По поводу полива "Холодной водой" я бы сделал закачку воды в бочку на 50% если подробнее когда идет полив (расход воды из бочки) то ее наполняемость должна начинаться с 30-50% от объема бочки тем самым у нас будет уже более теплая вода чем с напрямую со скважины.
     
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Так что если хотите - можете использовать мою прошивку за основу. Весь смысл в моей прошивке в том, что это шлюз текстовых команд между контроллером и внешним миром, а также между модулями. При этом нет никакой жесткой привязки модулей друг к другу, как следствие - очень упрощается условная компиляция директивами. В общем, если говорить другими словами - эдакий аналог COM-технологии во взрослых компьютерах.
     
  10. kivik71
    Регистрация:
    28.10.13
    Сообщения:
    3.780
    Благодарности:
    2.288

    kivik71

    Живу здесь

    kivik71

    Живу здесь

    Регистрация:
    28.10.13
    Сообщения:
    3.780
    Благодарности:
    2.288
    Адрес:
    Екатеринбург
    Первый вариант контроллера конечно лучше делать с одним каналом полива, но для будущего нужны варианты.
    Попробую объяснить на своих задумках
    kiv_tm_16_01_28.jpg
    Начало этого было здесь:
    https://www.forumhouse.ru/threads/99526/page-7#post-11959305
    Но там кое что отредактировали. :( Общий вид конструкции
    kivik_tpl_15_03_03.JPG
    При этом получается, что вода циркулирует по трубам теплицы, охлаждает теплицу днем при этом нагревает ТА в земле и бак с водой вверху. Вечером полив из бака, при этом каждый ряд в теплице можно поливать отдельно (из опыта южный ряд растений пересыхает быстрее, северному ряду достается меньше солнца)
    kivik_tpl_15_02_27_2.JPG
     
  11. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

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

    Меня ведь в принципе волнует не то, как запрограммировать раздельное управление каналами, а то, как это в конечном итоге будет выглядеть для пользователя, неважно где - в конфигураторе ли, или на экране смартфона, например. У меня была куча опыта в процессе разработки, когда сделав обширно конфигурируемую систему, получал отрицательные отзывы вида "сложно, запутано, не нужно". Пользователи привыкли к удобству: нажал на кнопку - вылез результат, "Ок, гугл, расскажи ка мне, как проехать из Москвы в Пензу" и т. п. Вываливая перед ними сложное дерево настроек - можно добиться эффекта отторжения. Я вот, например, по своей супруге сужу - ей сложновато разбираться в настройках вообще, ей надо - чтобы работало, и как можно проще управлялось. В идеале это одна единственная кнопка "Сделай мне красиво" :)]:aga:

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

    Значит, ситуацию с поливом решили, пусть пока остаётся как есть. Управление поливом - работает. СМС-управление - работает. Контроль за форточками по температуре - работает. Актуальных датчиков температуры - пока нет :( Данные об освещенности - собираются, хотя пока этот модуль кажется мне бессмысленным, разве что делать на основе его досветку в будущем.

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

    Именно поэтому собираю информацию в виде пожеланий. Для меня лично - я уже покрыл 80% своих потребностей в контроллере, осталось только вай-фай прикрутить, да приложение под андроид написать. Ну и блютуз, может быть. Но я - это я, а ведь так хочется послушать начальника транспортного цеха :)]:aga:
     
  12. olegmak3
    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442

    olegmak3

    Живу здесь

    olegmak3

    Живу здесь

    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442
    Адрес:
    Санкт-Петербург
    Огромное спасибо за эту ссылку на ардуино. ру в теме Дачника.
    Потихоньку допиливаю его вариант под свои хотелки.
    Вашу ветку обязательно вдумчиво прочту.
    К моему глубокому прискорбию, на Ардуино. ру нет кнопки "спасибо".
    Если будет интересен мой скромный опыт-выложу здесь с Вашего позволения
     
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Это хорошо, но для быстрого старта можно руководствоваться вот этим: https://github.com/Porokhnya/GreenhouseProject Главное требование - наличие Меги, остальное - по необходимости ;)

    Конечно выкладывайте, опыта не бывает много ;)
     
  14. kivik71
    Регистрация:
    28.10.13
    Сообщения:
    3.780
    Благодарности:
    2.288

    kivik71

    Живу здесь

    kivik71

    Живу здесь

    Регистрация:
    28.10.13
    Сообщения:
    3.780
    Благодарности:
    2.288
    Адрес:
    Екатеринбург
    Возможности модуля часов реального времени
    kiv_ts_01_29.JPG
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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