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
    Не знаю чего ты хочешь, но для себя конструкцию модулей датчиков я отработал и считаю что получилось очень даже ничего;), фотку выкладывал. На линии модули регистрируются без проблем (и датчиков и исполнительные) :victory:
     
  2. evgeny1241
    Регистрация:
    07.07.16
    Сообщения:
    472
    Благодарности:
    46

    evgeny1241

    Живу здесь

    evgeny1241

    Живу здесь

    Регистрация:
    07.07.16
    Сообщения:
    472
    Благодарности:
    46
    Да все именно так и сдела при регистрации в порт выдает
    Debug mode...
    Setup done.
    Update slots from 1-Wire...
    Writing 0 to pin 6
    Writing 0 to pin 7
    Writing 0 to pin 3
    Writing 0 to pin 5
    Writing 0 to pin 14
    Writing 0 to pin 17
    потом смотрю настройки сохранены
    но юольше ничего не пишет. строки раскоментировал про вывод nrf

    Выздоравливайте
     
  3. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958

    promavto

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

    promavto

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

    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958
    Адрес:
    г. Москва, Зеленоград.
    Да у меня также уже вроде бы отработано. Но одно дело просто подключить датчик к модулю или для этого еще собирать дополнительное устройство в корпусе. Кроме этого еще нужно изготавливать дополнительный провод для регистрации. Ну и конечно, проверить все ли провода правильно разведены в разъемах.
     
  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    А попробовать по nRF, не? Отказываешься помочь? Вот всегда так - получат своё, и всё, больше ничего не надо :)]:aga:
     
    Последнее редактирование: 19.04.19
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Что вы делали далее? Проверяли - совпадают настройки подключения nRF с настройками nRF прошивки модуля датчиков? После отключения от 1-Wire - ничего не происходит?

    Смотрите, что можно попробовать: раскомментировать NRF_DEBUG в прошивке контроллера, и в мониторе порта убедиться, что данные отсылаются в эфир, там будет писать отладочную информацию. Убедиться, что USE_WIFI_MODULE - закомментировано в прошивке контроллера, чтобы исключить на время вариант, когда ESP тупо глушит nRF, т. к. частоты у них - пересекаются. Раскомментировать строчку 1338 в прошивке исполнительного модуля:
    Код:
    // Serial.println(F("Ready."));
    чтобы убедиться, что nRF инициализируется, вместо Ready там можно написать что-то своё.

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

    Ещё что вспомнилось: адрес модуля при регистрации - надо в 0 поставить попробовать. Сейчас я пробую собирать стенд с nRF, буду смотреть, работает или нет.
     
    Последнее редактирование: 19.04.19
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Т. е. модуль - ловит пакеты с эфира, при включенном NRF_DEBUG в прошивке контроллера видно, что состояние контроллера отсылается в эфир, при этом в мониторе порта модуля - видно, что пакеты приходят.

    В аттаче - прошивка модуля с моими настройками. Что ещё предположить - не знаю, всё работает. Единственное - из-за особенностей отладочной платы первой версии - я выключил в настройках USE_LCD_MODULE, чтобы не было шумов на SPI, но это, думаю, к делу не относится.

    Короче, надо, как минимум, для начала выключить ESP физически, заодно выключив USE_WIFI_MODULE, для чистоты эксперимента, раскомментировать NRF_DEBUG в настройках прошивки контроллера - и смотреть, посылает ли в эфир данные, там будет строчка "Controller state changed, send it...".

    Ну а в мониторе порта модуля - смотреть, принимает ли он пакеты вообще, регистрация модуля для этого не нужна - главное сам факт получения пакета по радио. Для этого надо попытаться пространственно подвигать nRF модуля относительно nRF контроллера - дабы убедиться, что сигнал таки проходит.

    Как я и говорил - с ними много секаса, капризные они, очень. И по питанию, и по остальному.
     

    Вложения:

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

    DIYMan

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

    DIYMan

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

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

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

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

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

    Как видишь - система довольно сложная, учитывая тот факт, что эти датчики - физически могут быть раскиданы гроздьями по разным пинам: на одном пине - 2 датчика, ещё на одном - 3 датчика, т. е. для каждого пина - своя система индексации.

    Есть у тебя мысли по поводу? Надо как-то обдумать это дело, и попытаться ввести, чтобы ты у себя это дело проверил физически.

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

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @promavto - короче, переделываю работу с DS18B20 к чертям собачьим, полностью :) Если здоровья сегодня хватит - возможно, к вечеру/ночеру чего-нибудь придумаю, и уже будет сохранение индексов.
     
  9. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Так на моем модуле даже разъема под нее нет, а паяться проводами, перешивать...неохота;)
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @promavto - Саш, обновил прошивку расширенной версии, переделал всё к чертям собачим. В настройках датчиков DS18B20 указал по два датчика на пине, причём пины указаны через раз: 54,55,54,55 - т. е. с внутренними индексами, как понимаешь, всё хитро и сделано специально для целей тестирования ;)

    Подтыкал на одну линию два датчика - индексы сохраняются, трёх датчиков - просто нет, ну или не нашёл третий.

    Теперь о главном: настройка MULTIPLE_DS_SENSOR_ON_ONE_PIN - канула в лету, она теперь не нужна, по идее. Есть новая настройка дебаг-режима, там много чего в Serial плюётся - DS18B20_DEBUG.

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

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

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

    Привязки в EEPROM сделаны из расчёта максимум 100 датчиков, надеюсь, этого хватит.

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

    Короче, сходу косяков не нашёл. Но ты - проверяй, потому как у меня ещё больна головушка немного.
     
  12. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Не обижайся, сейчас просто совершенно некогда, и между прочим мы с тобой nRF уже тестировали и все работало, на моих nRF включали инверсию. ;)
     
  13. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958

    promavto

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

    promavto

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

    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958
    Адрес:
    г. Москва, Зеленоград.
    Привет всем! Закончил настройку внешних модулей для подключения метеостанции. Связь метеостанции с контроллером теплицы возможна: по проводам, RS485, LoRa (три варианта модулей), nRF24L01 (три варианта модулей). Внес небольшие изменения в программу. Добавил управление по питанию RF модулей. Сменил загрузчик Atmega328. Добавил встроенный сторожевой таймер микроконтроллера (без смены загрузчика сторожевой таймер возможно работать не будет). Я не применял готовые модули Ардуино, а установил микросхемы Atmega328P, поэтому запись загрузчика необходима. Период сбрасывания сторожевого таймера 5 секунд. Не буду называть кто, утверждал, что мы не в состоянии применить встроенный сторожевой таймер. Все изменения программы отправлю Диме.
     
  14. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    @DIYMan, подскажи, как ChinaSoilMoistureMeter в дебаг вывести? В
    UniversalSensorsModule
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Найти функцию ReadChinaSoilMoistureMeter и внутри неё написать вывод в дебаг-режиме в Serial.
     
Статус темы:
Закрыта.