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

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

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

Статус темы:
Закрыта.
  1. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958

    promavto

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

    promavto

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

    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958
    Адрес:
    г. Москва, Зеленоград.
    @HANTER333, Да у нас тут прямо конвейер именинников. Здоровья тебе!
     
  2. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    @HANTER333, С праздником! Здоровья
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Серёж, присоединяюсь к поздравлениям!
     
  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    По итогу: обновил все прошивки, сделал выравнивание структур по границе 1 байт. Если где-то что-то вдруг соскочит - лучше перед закачиванием прошивки - потереть EEPROM.

    Ну а мы с Серёжей пока продолжаем возиться и выяснять - почему RS-485 не хочет работать, и дело в выравнивании - или нет.

    Такая вот эпопея. Ничего, скоро всё причешем, надеюсь. Сам был в шоке, когда увидел отсутствие выравнивания - тестировали-то на восьмибитных системах с двух концов, а тут - Due подвалила ;)
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    У кого Due - настоятельно рекомендую обновиться ;) У кого Мега - тоже прошу обновиться, и сообщить - всё ли в порядке, если юзаете RS-485. Обращаю внимание, что настройки могут слететь, например, правил - я практически везде поставил выравнивание по границе 1 байт. Теоретически - под Мегой всё должно остаться без изменений, но теория - это одно, а практика - совершенно другое ;)

    З. Ы Исполнительный модуль вместе с Due - завёлся, реагирует даже без перепрошивки на последнюю версию прошивки для исполнительного модуля. Модуль с датчиками - пока не отзывается, проверяем. Осталось совсем чуть-чуть :)
     
    Последнее редактирование: 18.10.18
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Всё это очень похоже на ситуацию, описанную Александром @promavto - там, помнится, была речь о том, что каким-то волшебным образом в Serial в выходном буфере появляется мусор, и это видно в конфигураторе. Тут же - такая же песня с входным буфером.

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

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Написал отладочный скетч, который в Serial3 пишет один байт. Подключили к Due китайский модуль MAX-485 - в мониторе порта видно, что байт отправляется, потом - не принимается со слейва ничего, т. к. слейва на шине нет.

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

    При этом перехват шины показывает, что в шину - только ПИШЕТСЯ с мастера, никаких нулевых байтов там не ходит.

    Вывод: что-то не так по железу, разбираемся. Потому как китайская Due с китайским же модулем RS-485 - чудесно работают, никаких подозрительных нежданных байт в приёмном буфере UART - не обнаружено.
     
  8. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Путем долгих разбирательств, пришли к замене MAX3485 на ADM3485, байт перестал попадать в буфер приема, модуль датчиков заработал:victory:, но проскакивали тайм-ауты, путем долгих копаний в прошивке Дмитрию удалось поправить ситуацию, теперь на DUE работает вроде стабильно, постараюсь сегодня-завтра протестировать прошивку на меге 2560, по результатам отпишусь;)
     
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    А вот по части Due - тут надо ещё копать, и проверять схемотехнику, т. к. крайне непонятно, откуда там берутся байты, которых не должно быть, от слова "совсем".

    Короче, подорожничек пока приложили, но впереди ещё - много тестирования ;) Как только заставим RS-485 работать при любых обстоятельствах - это будет чудесным моментом :)

    Но нет худа без добра, что называется - заодно обнаружили, что отсутствовало выравнивание структур: это, пожалуй, самый крупный косяк при портировании на 32-х-битную систему, который всплыл. Хотелось бы верить, что последний такой...
     
  10. tchernyavsky
    Регистрация:
    27.03.16
    Сообщения:
    473
    Благодарности:
    160

    tchernyavsky

    Живу здесь

    tchernyavsky

    Живу здесь

    Регистрация:
    27.03.16
    Сообщения:
    473
    Благодарности:
    160
    Помнится, страниц сто назад, я жаловался на косяки в работе RS485 и DUE. :( Хорошо, что наконец эта проблема будет решена, Пока мучаю МЕГУ. Сейчас, к сожалнию, не смогу протестироватть обновления, - реабилитация в больнице. :|: Как только буду дома - обязательно попробую снова и отпишусь по результатам.
    З. Ы. - С опозданием, но ПОЗДРАВЛЯЮ ВСЕХ НОВОРОЖДЕНЫХ! :hndshk:
     
  11. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Залил в мегу 2560 мини, датчики опрашиваются, модуль управления работает, wi-fi работает, не проверил только sim800 (нет симки и не очень надо), вроде как все Ок;)
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Отлично! ;)
     
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

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

    Также заметил, что из-за последних правок по выравниванию структур - настройки в EEPROM таки съехали, у мну, например, было аж 124 датчика освещённости с универсальных модулей :)]:aga: Настройки полива - тоже поплыли. Короче - надо стирать EEPROM на I2С, если у кого были старые настройки там.

    Код опроса часов - вернул старый, т. е. простой, без всяких ухищрений. Будем проверять ещё раз под Due, т. к. мне кажется, что дело только в правильном пересбросе I2C, а сам код опроса часов - изначально был не при чём. Пока - наблюдаю.

    Что касается отладочной платы от Александра, первой версии которая: заметил, что пока с SD не очень, старт - через раз. Что касается Si7021 - тут пока проверить не могу, ситуация до странности непонятная: прошиваю Due прошивкой I2C scanner (легко гуглится), запускаю - находит три адреса (очевидно, часы, память, и ещё чего-то). Как только подключаю ЛЮБОЙ датчик к отладочным выводам I2C - всё, ни одного адреса не находит, как следствие - ничего на шине не работает. Возможно, я сам там чего-то подпалил, возможно - что-то по аппаратной части (никто не застрахован от непропаев и т. п.) - разбираемся с Александром (от него идёт вторая версия платы, буду тестировать уже на ней скоро).

    Заметил также, что одно время контроллер начал безбожно тупить, и промежуток между запросом команды из конфигуратора и ответом на неё - доходил до десятка секунд. При этом TFT-экран - вообще не отзывался. Что это было - так и не понял, т. к. после передёргивания SD-карточки и несколько судорожных перезакачиваний прошивки - сия дичь исчезла. Возможно, вылезли хвосты по настройкам (EEPROM не чистил, каюсь).

    В целом, по итогу: с Si7021 - разберёмся, будем надеяться, что это просто мелкая проблема, не относящаяся к коду (потому как пробовал разные библиотеки). С SD - будем наблюдать и делать выводы. Плюсом всего этого копания - потихоньку всякие фичи ловятся ;) Со старым кодом часов, ттт - пересбрасывается также нормально, но - тестирование ещё покажет, конечно.
     
    Последнее редактирование: 20.10.18
  14. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    До кучи добавил отрисовку имени текущего GSM-провайдера на стартовом экране TFT - шоб в глазах рябило :)]:aga:
     
  15. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

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