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

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

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

Статус темы:
Закрыта.
  1. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

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

    Ещё: решил до особого распоряжения свыше изъять исходники конфигуратора из свободного доступа. Не волнуйтесь, я не брошу его развивать вместе с прошивкой, просто на данный текущий момент так вот видится ;)
     
  2. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Аналогичная фигня :)
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Понемногу пришло понимание, как сделать включение/выключение отдельных каналов полива с LCD-экрана, в условиях ограниченного места, сейчас попытаюсь объяснить на рисунке:

    screen.png

    Рамочка - это понятно, надеюсь: там, где число - это рамка поля ввода, там, где надписи ВКЛ/ВЫКЛ - это текущее состояние канала полива. Подчёркивание - фокус ввода.

    Теперь, как это работает: по клику кнопки энкодера попадаем внутрь экрана, как обычно, при этом фокус ввода устанавливается на поле выбора канала полива. Крутим крутилку - меняются номера каналов, при этом справа текущее состояние канала обводится рамочкой.

    Кликаем кнопкой ещё раз - переключаемся на "ВКЛ" или "ВЫКЛ", кликаем кнопкой - соответственно, включаем/выключаем канал.

    Что скажете за такую систему?
     
  4. olegmak3
    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442

    olegmak3

    Живу здесь

    olegmak3

    Живу здесь

    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442
    Адрес:
    Санкт-Петербург
    Так я же и уточняю специально, что АМ2302, он же DHT22 (если верить интернету),и благополучно проработал в течении полутора -двух лет по стандартной схеме включения.
    До момента введения в прошивку поддержки SHT10.
    Вот и пытаюсь найти причину отказа прошивки стартовать (синий экран) с прописанным датчиком.
    Был бы SHT10-попробывал бы его.
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Ну дело ТОЧНО не в SHT10, потому как там код опроса SHT10 (создание экземпляра класса для опроса SHT10) - ФИЗИЧЕСКИ не выполнится, если нет ни одного датчика SHT10 в системе. У меня же работает прошивка, DHT22 опрашивает. Если бы дело было только в наличии кода для SHT10 - я бы заметил это во время тестирования.

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

    Вы можете попробовать сделать простую вещь: открыть файл HumidityModule. cpp, найти там
    и закомментировать строки с 57-й по 82-ю включительно, т. е. убрать этот вот кусок кода:
    Если дело в нём, то прошивка у вас стартует. Но я почему-то уверен, что дело не в этом.
     
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    @olegmak3, вот весь коммит "Поддержка SHT10": https://github.com/Porokhnya/GreenhouseProject/commit/a3802cc20326864912e16f07ba060064b2807d93

    Посмотрите сами - там чисто косметика, ничего особенного, за исключением того, что формат описания датчика в Globals изменился. Начиная с этого коммита у вас не работает модуль влажности, я правильно понял?

    Коммит от 18 мая, если что.
     
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
  8. olegmak3
    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442

    olegmak3

    Живу здесь

    olegmak3

    Живу здесь

    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442
    Адрес:
    Санкт-Петербург
    Совершенно верно.
    Как только гружу более раннюю версию-все работает.
    Если уплыли тайминги в прошивке, то почему?
    У меня то всего кусок кабеля от усб с метр, и внутри бокса см 40-50 в отдельном жгуте с землей и питанием, ане до 30м по дайташиту. Т. е. со своей длиной кабелей попасть на границу устойчивой зоны работы? Так чтобы малейшее изменение в таймингах (если оно есть) вылилось в отказ датчика?
     
  9. АлкН1
    Регистрация:
    14.04.16
    Сообщения:
    468
    Благодарности:
    1.171

    АлкН1

    Живу здесь

    АлкН1

    Живу здесь

    Регистрация:
    14.04.16
    Сообщения:
    468
    Благодарности:
    1.171
    кстати, можно шкурный вопрос по 3Д?
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Задавайте ;)
     
  11. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    А при чём тут тайминги? Я же не зря спрашивал, какая версия у вас работает - если у вас работает версия от 15 мая, то значит, что прекратила работать версия от 18 мая. В версии от 18 мая НИЧЕГО, кроме поддержки SHT10 - не вводилось, причём, как я уже отмечал - у меня работает.

    В версии от 15 мая был переход на другую библиотеку опроса Si7021.

    Вы уверены, что дело в версии, а не в неправильных настройках в Globals? Вы пробовали скачать крайнюю версию прошивки, и ещё раз перенастроить тот Globals, который в КРАЙНЕЙ версии прошивки?

    В общем - мне нужно ТОЧНО знать, после какого КОММИТА у вас перестало работать. Не когда вы скачали прошивку, а именно - после какого КОММИТА, история коммитов тут: https://github.com/Porokhnya/GreenhouseProject/commits/master

    Иначе - мы будем до ишачей пасхи искать с вами возможную проблему. Именно для этого и есть git - он хранит всю историю всех изменений, и если вы юзаете хотя бы Github Desktop - то всегда можно ОТКАТИТЬСЯ на какую-либо версию прошивки и проверить её работоспособность, т. е. выяснить, какой коммит был причиной сбоя именно у вас, безотносительно календарного числа и т. п. - иногда я в день выкладываю несколько коммитов, как понимаете, в этом случае опираться на календарь - не получится ;)

    Как скачать определённую версию проекта на гитхабе: https://ru.stackoverflow.com/questions/116054/Возможно-ли-скачать-определенную-версию-проекта-с-github

    Хэш коммита можно всегда посмотреть в истории коммитов на гитхабе, ссылку привёл выше.
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    Если с датчика не получится прочитать - будет "нет данных", но не зависание меги. В коде опроса DHT22 везде есть выход по таймауту, я ещё раз пересмотрю код, конечно, но там учёт таймаута есть.
     
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    @olegmak3, появились у меня кое-какие мысли после разговора - возможно, действительно виснет из-за переезда на новую библиотеку, только не SHT10, а Si7021. Я попробую чуть перепилить код, и выложу. Так что пока можно не суетиться - стоит чуть подождать, и попробовать новую версию прошивки ;) Я сообщу.
     
  14. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.898
    Адрес:
    80 км от Краснодара
    @olegmak3, в общем, почти целую голову даю на отсечение, что и вы напоролись на проблему с I2C, когда виснет на вызове Wire. endTransmission - возможно, в вашей конфигурации не успевает проинициализироваться подсистема, как вариант.

    Стандартная библиотека Wire в ардуино устроена так, что там блокирующие вызовы и бесконечные циклы есть (в файле twi. c можно для интереса глянуть ;)). Короче, опять жесть там, где не ждали :)

    Т. е. проблема, скорее всего, в новой библиотеке HTU21D, которую я вкорячил только потому лишь, что у некоторых пользователей мой код для чтения с Si7021 не отрабатывал. А эта библиотека в методе begin вызывает Wire. endTransmission, ничего в шину не посылая.

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

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Залил крайнюю прошивку с гитхаба в новый контроллер (на предыдущей странице), пока поотключал половину модулей, датчиков пока никаких. Дисплей работает, конфигуратор коннектится, SD работает, часики работают, УРА! ;). На сегодня пока хватит:)
     
Статус темы:
Закрыта.