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

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

Тема в разделе "Теплицы и парники", создана пользователем Анкор Плюс, 19.05.18.

Статус темы:
Закрыта.
  1. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    3Б642
     
  2. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Проблема что ли, у Димы спроси как генератор 1 в 3 работает (в корпусе компьютерного БП) ;)
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

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

    • Автоматическое управление окнами по секциям, по скорости и направлению ветра, по датчику дождя, по ориентации окон по сторонам света;
    • Автоматическое управление отоплением (3 контура);
    • Автоматическое управление затенением (3 контура);
    • Автоматическое управление досветкой;
    • Автоматическая настройка EEPROM перед первым запуском в работу;
    • Работа с датчиками скорости и направления ветра, а также с датчиком дождя - через выносной модуль по RS-485 и радиоканалам (если не хочется пришпиливать к контроллеру);
    • Отображение атмосферного давления;
    • Удобное и быстрое перелистывание параметров путём зажатия и удержания экранной кнопки;
    • Настройки синхронизации времени через ESP и SIM800 - на TFT-экране, в отличие от жёстко прошитых в открытой версии;
    • Настройки параметров полива через TFT-экран, не прибегая к конфигуратору.
    Это для информации - чем отличается расширенная версия под Due от обычной.
     
  4. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    Геркон тоже к датчикам относится) Да и его я как пример привел. Очень хорошо было бы иметь отслеживать состояние пина (логический уровень) посредством универсального модуля датчиков. Так как существует уйма датчиков просто изменяющих логический уровень при срабатывании. Те же датчики уровня жидкости поплавкового и емкостоного типа, датчик протечки, множество охранных датчиков. Да и много чего можно отслеживать. А у нас получается что от каждого такого датчик нужно тянуть линию до меги. Нелогично, особенно если вся система работает через универсальные модули. Можно конечно нагородить как советовали выше, но это действительно через опу... К тому же универсальные модули поддерживают китайские модули влажности почвы (т.е. осуществляют "аналоговое считывание" состояния пина. Думается вам было бы не сложно добавит считывание и отправку логического уровня. Сам к сожалению не дотягиваю до уровня разобраться в вашем коде
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Потом - пока неясно, что с этим будет делать главный контроллер. Пришло ему состояние пина номер 10 у модуля - дальше что? А если таких модулей - два, и у каждого - пин номер 10? Куда их пихать, как биндить, чтобы понять, что с этим можно что-то делать? Очевидно - надо привязки номера пина модуля к локальной карте пинов, т. е. это регистрация, настройка и т. п. у модуля - как минимум.

    Короче, дело это объёмное, надо сильно думать. И я не уверен, что вообще за это возьмусь в ближайшее время.
     
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @Viktorovich4232, более простым выходом мне видится написание поддержки нового типа пакета для RS-485, и введение новой настройки - кол-во модулей с состоянием пинов на шине. Контроллер будет периодически их опрашивать, а модули (с новой прошивкой) будут отдавать состояние своих пинов. Но и тут - остаётся открытым вопрос о привязке к локальной карте пинов.

    Если есть мысли по поводу - озвучивайте. Теоретически, если пойти по этому варианту - пару таких модулей на шине достаточно, т. к. виртуальных пинов у контроллера - 80-127, не так много. Возможно даже, что идеальным вариантом будет использование всего одного модуля, который будет отдавать состояние своих пинов - для домашней теплицы вполне достаточно, кмк. Тогда всё сильно упрощается, т. к. не надо будет никаких настроек, регистрации модуля в контроллере и прочей лабуды.

    Надо обсуждать ;)
     
  7. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    Вот кстати отличные датчики уровня жидкости, работающие с неметаллическими емкостями. Емкость сверлить не надо. Жидкость любая, датчик с ней не контактирует. CM190206-090449002.jpg
     
  8. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    Привязку так и представлял, к виртуальными пинам на карте. Как в исполнительном привязываем, такой-то вывод соответствует такому то кину контроллера. А дальше создаем правила что нам делать по нулю или единичке на этом виртуальном пине.
    Можно и отдельный модуль сделать как вы предлагаете. А можно, (проведя голосование на форуме :)) заменить данным функционалом китайский датчик влажности почвы. Почему то мне кажется что все кто пробовал их использовать в реалии уже давно отказались в пользу других (например ёмкостных). А вот отслеживание логического уровня, будет востребованным функционалом.
    И не ограничиваться только RS485 в качестве линии связи, NRF, LORA тоже будут востребованы.
     
  9. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    Пока писал предыдущее сообщение, мысль посетила: попробую WiFi модуль под это дело, по типу как вы на ESP модель датчиков сделали. Следит за лог. уровнем своего пина и в случае изменения шлет меге CTSET=|PINX|ON или СTSET=|PINX|OFF... Как то так...Но в идеале конечно как говорили выше
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

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

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Да, можно и так сделать.
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    DIYMan

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

    DIYMan

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

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

    За исключением прорвы работы, конечно :( Начну с прошивки модуля с датчиками, введя туда показания нового типа, а там - кривая вывезет куда-нибудь :)
     
  14. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    Еще раз внимательно перечитал ваши варианты решения. Отдельный модуль Датчиков пинов, наверное не только проще реализовать, но и гораздо удобнее в пользовании будет.
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Не, я уже иду по первому варианту, а именно: в модуле датчиков можно назначать ОДИН слот (из трёх) как карту пинов. Далее при регистрации такого модуля в системе через конфигуратор в поле "индекс датчика" просто указываем смещение в карте виртуальных пинов (0 - начинается с 80-го пина, 10 - с 90-го и т. п.). В настройках прошивки модуля указываем в карте из 32-х пинов, за какими пинами следим. Всё - после этого будем получать на контроллер состояние этих пинов в карту виртуальных пинов.

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

    Сейчас дописываю прошивку для модуля, на очереди - допилинг прошивки контроллера, затем - конфигуратор. И всё будет ;) Я протестирую по-минимуму - хождение пакетов по RS-485, а уж с вас - актуальное тестирование с отслеживанием состояния пина тогда.

    Договорились?
     
Статус темы:
Закрыта.