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

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

Тема в разделе "Умный дом", создана пользователем Анкор Плюс, 27.04.17.

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

    promavto

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

    promavto

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

    Регистрация:
    27.02.16
    Сообщения:
    1.957
    Благодарности:
    1.957
    Адрес:
    г. Москва, Зеленоград.
    Заменил EEPROM с другой партии и другого размера (64к). Все равно виснет.
    А почему не была применена библиотека DS3231 в стандартном варианте, как к примеру UTFT или URTouch. В этом случае поставили другую библиотеку, протестировали. Нам ведь нужно то только получить время, записать время. Вызывай с любого места, делов то. А так все файлы пронизаны DS3231Support. Что бы перейти на другую библиотеку, копать и копать.

    Буду проектировать внешний сторожевой таймер на дополнительном микроконтроллере и при зависании рвать питание на 5-10 секунд.
     
  2. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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

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

    Ок, услышал.
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Её нет в стандартном варианте, вообще-то. Этих библиотек - как грязи. Ещё раз: мой код опроса DS3231 - просто работа с шиной I2C через Wire, код - ИДЕНТИЧНЫЙ даташиту. На этом вопрос о библиотеке DS3231 - ЗАКРЫВАЮ, от слова "совсем".

    Ещё раз говорю: проблема - НЕ В ЧАСАХ!
     
  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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

    Всё, проект закрыт, дальнейшие баг-репорты не принимаются до отдельного уведомления.
     
  5. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    @DIYMan, пока не пропали. Если не затруднит, вкратце опишите как подключать лору в универсальном исполнительном. Конфигурация, одна форточка, компас, концевики, лора, RS-485 - на всякий случай. Вроде как без MCP23017 пинов не хватает. Как это должно выгладить? Что через что?
    Наколымил чуть денег, решил все с нуля переделать.
    ЗЫ
    Поддерживаю
     
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    На SPI, и не забывать, что у неё 3.3В логика. Пинов должно хватить, LoRa, по сути - столько же пинов юзает, как и nRF.
     
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Что обнаружил: использование SoftwareSerial для общения с Nextion на скорости 9600 - ведёт к потере данных в Serial: смотрю - конфигуратор получает ответ на команды через раз. В мониторе порта обнаружил, что если сразу после появления строки READY послать команду, например, CTGET=0|STAT, то частенько контроллер получает дичь вроде С0|ST, налицо пропуск байт, кмк из-за того, что долго висим в обработчике прерываний PCINT внутри SoftwareSerial.

    Разбираюсь, как лечить. Ясное дело, что при использовании аппаратного UART на штатной скорости (57600) такого быть не должно, но беда в том, что SoftwareSerial плохо работает на скоростях выше 9600. Буду думать.
     
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Да, проблема была именно в скорости работы с программный UART - если перешить Nextion на общение на скорости 57600 и выставить такую же скорость для SoftwareSerial - всё норм. Проблема - вот она (интересующие строчки выделены жирным):
    И пока оно там в Nextion на скорости 9600 чего-то там пыталось передать - прерывания выключены, и входящие по Serial байты благополучно улетают в небытие. Сейчас ещё покручу это дело, возможно, как-то удастся подружить разные скорости.
     
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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

    Поддержка программного UART для Nextion мне пока не очень нравится, однако - не хочется отказываться от какого-либо функционала, ибо аппаратных UART всё-же не хватает: один - на ESP, второй - на SIM800, третий - на RS-485, самый первый - для общения с конфигуратором. По итогу - пока оставлю настройку программного UART для Nextion, пометив её как "экспериментальная", буду смотреть, как оно будет себя вести в железе.
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Обновил на гитхабе, выставил одинаковую скорость для всех UART, как программных, так и аппаратных. Обращаю внимание, что на текущий момент у меня в конфигурации, выложенной на гитхабе, используется Nextion на программном UART.

    Проверил поведение окон: при закомментированной настройке USE_FEEDBACK_MANAGER - окна СРАЗУ после старта контроллера гонятся в закрытое положение, отрабатывая нужное кол-во секунд. При раскомментированной настройке USE_FEEDBACK_MANAGER - окна гонятся в закрытое положение спустя 15 секунд после старта контроллера, т. к. за это время не было получено никакой обратной связи (USE_RS485_GATE у меня раскомментировано, но исполнительный модуль от питания отключен, для проверки правильности работы).

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

    Никаких болтанок с окнами обнаружено не было - ориентировался по статусу в конфигураторе, не заметил, чтобы какое-то из окон не отрабатывало нужное кол-во секунд - все работают синхронно при старте.

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

    @olegmak3 - мотор с редуктором у мну есть - один штука, если это поможет понять, что у тебя творится, и ты готов помочь консультационно, как это добро развязать (есть модули реле) аппаратно - то я могу подключить мотор и наблюдать, как при старте себя ведёт контроллер. История со светодиодами - уже в прошлом, они нормально загораются/гаснут в строгом соответствии с логикой прошивки. Честное слово - не понимаю, что у тебя происходит. Хочется помочь - но не понимаю, от чего отталкиваться: код управления фрамугами, сам понимаешь, давно не изменялся, любую ненужную настройку/модуль можно исключить из прошивки (это я про USE_FEEDBACK_MANAGER и т. п.) - и она никак влиять не будет, т. к. куска кода физически не будет в прошивке. Единственное, что могу предложить - это закомментировать нах всё, кроме часов и модуля окон - и смотреть, как оно будет себя вести, через конфигуратор. Короче, надо начинать по-возможности с минимальной конфигурации, чтобы не искать иголку в стоге сена. Если тебе надоела эта ботва - забей, я не настаиваю ;)
     
    Последнее редактирование: 13.05.18
  11. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Да, небольшие пояснения моей позиции по закрытию проекта: скажем так - надо отточить всё на Mega2560. Это раз. В этой части проект живёт и здравствует. Два, про багрепорты: во-первых, баг-репорты работы прошивки под Due - игнорируются, этот камень меня бесит. Во-вторых - дабы я не выспрашивал, у кого какие настройки - к каждому баг-репорту должен быть приложен файл Configuration_MEGA.h, и файл со списком правил, экспортированный из контроллера при помощи конфигуратора. В-третьих - наиболее полная информация о последовательности действий, которую я мог бы воспроизвести у себя, чтобы лицезреть сей баг. В-крайних - конфигурация железа в общих чертах (что подключено к контроллеру).

    Помните: пины хоть и настраиваются, но всегда есть нюансы, например: не на всех пинах работают PCINT-прерывания (это критично, например, для Nextion через SoftwareSerial). Нюансов хватает, короче.

    Спасибо за понимание.
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    @olegmak3 - добавил SMS для перезагрузки контроллера - четыре собаки подряд. Т. е. посылаете СМС с текстом "@ @ @ @" (без кавычек, четыре символа @ подряд, без пробелов между ними) - и контроллер должен перезагрузиться.

    Логика такая: если используется внешний ватчдог (USE_EXTERNAL_WATCHDOG) - то при получении такого СМС контроллер просто загоняется в бесконечный цикл, и ватчдог передёрнет питание. Если не юзается внешний ватчдог - то будет программная перезагрузка и всё начнётся с setup опять. Первый вариант - самый грамотный, второй - работать будет, но всегда существует вероятность, что какой-то флаг или переменная в бесчисленном кол-ве модулей не будет сброшен, как надо (я мог просто пропустить где-то часть инициализации - человеческий фактор, в общем).

    Можно пробовать, скажем так.
     
  13. necrjd
    Регистрация:
    05.11.14
    Сообщения:
    146
    Благодарности:
    98

    necrjd

    Живу здесь

    necrjd

    Живу здесь

    Регистрация:
    05.11.14
    Сообщения:
    146
    Благодарности:
    98
    Дмитрий, а можно добавить команду в прошивку (или просто направление что и куда вставить - я попробую), чтобы при старте контроллера отправлялась СМС хозяину (любая, например с балансом или статистикой). Нужно для того, чтобы знать, что контроллер перезагрузился. Дело в том, что при перезагрузке все ручные режимы переходят в автомат, а хозяин не в курсе, что это случилось. А смс придет - можно оперативно отреагировать. У меня мега иногда зависает. Внешняя собака его перезагружает. Пока не могу выловить причину зависания - бывает очень редко.
    Я сам пробовал в void setup вставлять RequestBalance();, но не работает. Познаний моих не хватает разобраться в коде
     
  14. necrjd
    Регистрация:
    05.11.14
    Сообщения:
    146
    Благодарности:
    98

    necrjd

    Живу здесь

    necrjd

    Живу здесь

    Регистрация:
    05.11.14
    Сообщения:
    146
    Благодарности:
    98
    Дмитрий, а Ваши настройки - это именно те что на гитхабе?
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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