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

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

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

Статус темы:
Закрыта.
  1. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Я так понял, что верхней строчке таблицы конфигуратора соответствует 6 пин, второй 7, третьей 3 и т. д.
     
  2. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Инверсию пробовал?
     
  3. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Вот это читал? "
    / раскомментировать эту строчку здесь и в прошивках универсальных модулей, если у вас они не коннектятся.
    / Иногда auto aсk в китайских модулях имеет инвертированное значение.
    /#define NRF_AUTOACK_INVERTED
    "
     
  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.310
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.310
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Указываете номер пина при регистрации модуля через конфигуратор. Это - номер пина КОНТРОЛЛЕРА, а не модуля. Который будет транслирован в привязку конкретного пина на модуле.
     
  5. evgeny1241
    Регистрация:
    07.07.16
    Сообщения:
    472
    Благодарности:
    46

    evgeny1241

    Живу здесь

    evgeny1241

    Живу здесь

    Регистрация:
    07.07.16
    Сообщения:
    472
    Благодарности:
    46
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.310
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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

    З. Ы. В конфигураторе есть тест несущих nRF, смотрите в меню. Можно там посмотреть, как у вас с чистотой линии - диапазон частот nRF пересекается с Wi-Fi. Поэтому и советую - забить и перейти на LoRa.
     
  7. evgeny1241
    Регистрация:
    07.07.16
    Сообщения:
    472
    Благодарности:
    46

    evgeny1241

    Живу здесь

    evgeny1241

    Живу здесь

    Регистрация:
    07.07.16
    Сообщения:
    472
    Благодарности:
    46
    Прошил в unu модуль сенсоров, потом вернул исполнительный в мониторе порта на исполнительном

    pen switch triggered!
    UpdateWindowStatus - DIRECT MODE, window #0
    Close switch triggered!
    Open switch triggered!
    UpdateWindowStatus - DIRECT MODE, window #0
    Close switch triggered!
    Open switch triggered!
    UpdateWindowStatus - DIRECT MODE, window #0
     
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.310
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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

    Вы что, считаете, что если действовать наобум - то рано или поздно что-нибудь, да получится? Я для чего пишу комментарии к настройкам? Для красоты?

    Давайте так: вы прекращаете заниматься бездумными тырканиями. И ВНЯТНО излагаете, какой функционал вам нужен у исполнительного модуля, рисуете схему, как и что у вас подключено к исполнительному модулю (включая питание) - и тогда, и только тогда - будет предметная помощь. Объяснять всё с самого начала - пустая трата времени, в теме уже всё есть по поводу модулей.
     
  9. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.957
    Благодарности:
    1.957

    promavto

    Разработка контроллеров

    promavto

    Разработка контроллеров

    Регистрация:
    27.02.16
    Сообщения:
    1.957
    Благодарности:
    1.957
    Адрес:
    г. Москва, Зеленоград.
    Датчик температуры DS1820. В настройках контроллера есть возможность подключения гирлянды датчиков на одну линию. При таком подключении есть одна проблема. При выходе из строя одного датчика, индексы остальных датчиков смещаются. В этом случае настройка узлов регулирования сбивается. Учитывая, что регулирование температуры очень важный параметр, который может привести к гибели контролируемого объекта, реально получается, что применять включение гирляндой очень опасно. Выход вижу в чтении индивидуального номера каждого датчика и присвоения ему постоянного индекса. Проблема остро встала при расширении возможностей контроллера по регулированию отопления, вентиляции и. т. д. Применение внешних модулей не всегда оправдано и даже не безопасно в случае нарушения связи между контроллером и внешним модулем. :faq: Может я что то не так понимаю?
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.310
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.310
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Саш, я тебя предупреждал об этом. Нет, Дима, давай, сделай возможность подключения гирлянды, давай, сделай, всё будет нормально! Выход, конечно, есть, но в текущей архитектуре - малореализуем, потому что изначально не было заложено подобной возможности, и закладывалось на концепцию "один датчик - один пин" по МНОГИМ причинам.

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

    Ищешь и себе, и мне проблемы на ровном месте, это никогда не закончится, давайте уже писать программу вывода контроллера на околоземную орбиту, чо мелочиться-то?
     
  11. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.310
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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

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

    Короче, просто и в лоб - не решить. В ArduinoCore я подобное делал, но там - архитектура изначально была выстроена на такое поведение, и диспетчер датчиков на линии - нетривиален, поверь.
     
  12. evgeny1241
    Регистрация:
    07.07.16
    Сообщения:
    472
    Благодарности:
    46

    evgeny1241

    Живу здесь

    evgeny1241

    Живу здесь

    Регистрация:
    07.07.16
    Сообщения:
    472
    Благодарности:
    46
    Модуль датчиков по nrf заработал
    все передает все отлично
    Теперь исполнительный модуль обратной связи нет. тупо открыть 2 окна закрыть, полив 2канала, досветка 2
    в монитор порта
    Debug mode...
    Setup done.
    кидает и все -
    сделал по умолчанию
    #define RELAY_ON LOW / уровень для включения нагрузки на канале
    #define RELAY_OFF HIGH / уровень для выключения нагрузки на канале
    то есть включать по низкому
    повесил реле на 6,7 для проверки
    не работает
    если этот же модуль тупо перешить под сенсор и повесить на d6 датчик то все работает

    странно при старте исполнительного модуля ничего про инициализаци nrf нет. так и должно быть?
    /#define USE_FEEDBACK
    /#define FEEDBACK_DIRECT_MODE тут я не понял и так пробывал и включал - не работаеь
     
    Последнее редактирование: 19.04.19
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.310
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.310
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Вы вообще понимаете, что такое "обратная связь" в разрезе проекта? Это исполнительный модуль, который отдаёт в обратку состояние концевиков и положение окон. Для этого надо, как минимум, юзать USE_FEEDBACK_MANAGER в прошивке контроллера, плюс - настроить обратную связь в модуле, правильно назначив пины и подсоединив компас. К тому же обратная связь - работает только с RS-485, насколько я помню; и для других шлюзов просто не вводилась, о чём в комментариях к прошивке недвусмысленно сказано:
    Вы уверены, что стоит именно с этого начинать? Просто забудьте про обратную связь, пока не придёт понимание. Для этого закомментируйте USE_FEEDBACK в модуле - и всё, никакой обратной связи не будет, и не будет висящих в воздухе пинов, и компас не надо будет подсоединять.
    Да, так и должно быть, потому что отладочная информация - только для меня, и там эта информация - не нужна, т. к. проверялось и всё работает.

    Вы что хотите? Настроить исполнительный модуль под работу через nRF? Ок, тогда делаем следующее: комментируем USE_FEEDBACK, USE_INCLINOMETERS, USE_RS485_GATE, USE_LORA. Раскомментируем USE_NRF. В этих строчках настраиваем nRF:
    Код:
    #define NRF_CE_PIN 9 // номер пина CE для модуля nRF
    #define NRF_CSN_PIN 10 // номер пина CSN для модуля nRF
    #define DEFAULT_RF_CHANNEL 19 // номер канала для nRF по умолчанию
    //#define NRF_AUTOACK_INVERTED // раскомментировать эту строчку здесь и в главной прошивке, если у вас они не коннектятся.
    // Иногда auto aсk в китайских модулях имеет инвертированное значение.
    В этих строчках - настраиваем привязки пинов МОДУЛЯ к слотам:

    Код:
    SlotSettings SLOTS[8] =
    {
      {6,   RELAY_OFF} // пин номер такой-то, начальное состояние RELAY_OFF
    ,{7,   RELAY_OFF} // и т.д. 0 вместо номера пина - нет поддержки привязки канала к пину
    ,{3,   RELAY_OFF}
    ,{5,   RELAY_OFF}
    ,{A0,  RELAY_OFF}
    ,{A1,  RELAY_OFF}
    ,{A2,  RELAY_OFF}
    ,{A3,  RELAY_OFF}
    
    };
    Убеждаемся, что пины не пересекаются нигде. Заливаем прошивку в модуль. Подсоединяем nRF. Включаем модуль на линию регистрации, открываем конфигуратор, ищем модуль. Появляются его настройки - 8 слотов привязок. Для первого слота указываем "левый канал окна", индекс - 0 (т.е. первое окно). Для второго слота указываем "правый канал окна", индекс - 0 (т.е. первое окно). Сохраняем настройки в модуль. Ещё раз ищем модуль на линии, убеждаемся, что полученные настройки модуля таки сохранились.

    Далее - вешаем на пины первых двух слотов модуля (в примере настроек выше - это пины 6 и 7) два светодиода через токоограничивающие резисторы. И дёргаем первое окно на открытие (время работы моторов поставьте в настройках на побольше, например, секунд 10). На модуле должен загореться (или погаснуть) один светодиод. Как только окно закончит открываться - оба светодиода будут либо гореть, либо будут погашены, короче - будут в одном состоянии. Дёргаем окно на закрытие - теперь на модуле будет гореть другой светодиод, т. е. состояние изменится на противоположное. По окончанию движения - оба светодиода будут в одном состоянии.

    Всё дело в настройках - если заработал модуль датчиков, то и исполнительный - должен. Если пробежитесь по коду, то там есть такие вот закомментированные строчки (раскомментируйте _DEBUG и эти строчки, чтобы дополнительно видеть, приходят ли данные с nRF):
    Код:
    // Serial.println(F("Got packet from nRF"));
    //  Serial.println(F("Update from nRF"));
    З. Ы. Серёж @HANTER333 - у тебя работает исполнительный модуль? Когда крайний раз пробовал? Помоги, плз, я немного плохо себя чувствую, нервов не хватает из-за этого :( Может, я реально где-то затупил с nRF с этим модулем, но что-то сходу я проблем не вижу, вообще.
     
    Последнее редактирование: 19.04.19
  14. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.957
    Благодарности:
    1.957

    promavto

    Разработка контроллеров

    promavto

    Разработка контроллеров

    Регистрация:
    27.02.16
    Сообщения:
    1.957
    Благодарности:
    1.957
    Адрес:
    г. Москва, Зеленоград.
    Дык я давно писал, что "Роскосмос" заказал нам контроллер для выращивания помидоров на Луне. :)]Ладно, выздоравливай, не буду тебя мучить вопросами.

    Вот видишь, решение проблемы есть. Нам спешить некуда.

    Есть как минимум две причины: 1) проще изготовить одно устройство, чем 3-4 с теми же общими функциями.
    2) для клиенты подключение и регистрация модуля невыполнимая проблема. Многие даже не подозревают, что есть плюс и минус в батарейки. Они думают что нужно ее вставлять крестик к крестику. Мне же этим заниматься не с руки. Помнишь у нас был товарисч с 15 отсеками для выращивания. Собрал я ему пять модулей с датчиками. Первый модуль зарегистрировал, все нормально. При регистрации второго модуля получил в ответ "этот модуль уже зарегистрирован" - я в ступор, что дальше, что делать. Ты мне сказал, сейчас плохо помню что нужно. Короче отложил комплект в долгий ящик, благо клиент что то пропал, пока не теребит.
    Конечно есть случаи когда без внешних модулей не обойтись. К примеру там где нужно обработать датчики с I2C интерфейсом. Вот на солнечную установку получения данных с компаса, угла наклона и уровня солнечного излучения придется применить внешний модуль. А вот температуру буду измерять только проводными датчиками. Здесь контроль должен быть надежный и доверить его радиомодулю пока рано.

    Ну и последнее. Применять выносные датчики, конечно нужно. Но сначала нужно проработать конструкцию, корпус и много других мелочей. Пока на эту работу времени нет.
     
  15. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Исполнительный работает только без nRF и компаса по 485-му;)
     
Статус темы:
Закрыта.