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

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

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

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

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @evgeny1241, вот что я сделал: взял Uno с давным давно подключённым nRF, пин 2 - ПРИТЯНУТ К ЗЕМЛЕ, чтобы исключить наводки на шину 1-Wire - это КЛЮЧЕВОЙ момент для тестирования на макетной плате. Я его притянул к земле чисто для теста, обращаю внимание. Подтяжка линии данных 1-Wire должна быть к питанию, причём эта линия не должна болтаться в воздухе ни на контроллере, ни на модуле. Притянул к земле - так проще, чтобы не искать резистор ;) - просто соединил пин 2 с GND на плате Uno, ключевое тут - устранить помехи на линии.

    Изменил настройки прошивки, прописав Si7021 и два DS18B20. Эти настройки я выложил на гитхаб прямо сейчас, чтобы вы могли посмотреть и сравнить. Закачал прошивку, и что я вижу:

    Код:
    Query interval: 5000
    Init sensors...
    Init DS18B20...
    DS18B20 - inited.
    Init DS18B20...
    D⸮⸮⸮0 - inited.
    Init nRF...
    STATUS         = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
    RX_ADDR_P0-1     = 0xe7e7e7e7e7 0xc2c2c2c2c2
    RX_ADDR_P2-5     = 0xc3 0xc4 0xc5 0xc6
    TX_ADDR         = 0xe7e7e7e7e7
    RX_PW_P0-6     = 0x00 0x00 0x00 0x00 0x00 0x00
    EN_AA         = 0x3f
    EN_RXADDR     = 0x03
    RF_CH         = 0x01
    RF_SETUP     = 0x07
    CONFIG         = 0x0e
    DYNPD/FEATURE     = 0x00 0x00
    Data Rate     = 1MBPS
    Model         = nRF24L01+
    CRC Length     = 16 bits
    PA Power     = PA_MAX
    Want measure by timeout...
    Want measure...
    Start measure...
    DS18B20 - start conversion...
    DS18B20 - not found!!!
    DS18B20 - start conversion...
    DS18B20 - not found!!!
    Wait for measure complete...
    Measure completed, start read...
    Read sensors...
    Read DS18B20...
    DS18B20: 0,0
    Read DS18B20...
    DS18B20: 0,0
    Sensors data readed.
    Send sensors data via nRF...
    NO RECEIVING SIDE FOUND!
    
    Want measure by timeout...
    Want measure...
    Start measure...
    DS18B20 - start conversion...
    DS18B20 - not found!!!
    DS18B20 - start conversion...
    DS18B20 - not found!!!
    Wait for measure complete...
    Measure completed, start read...
    Read sensors...
    Read DS18B20...
    DS18B20 - not found!
    Read DS18B20...
    DS18B20 - not found!
    Sensors data readed.
    Send sensors data via nRF...
    NO RECEIVING SIDE FOUND!
    
    Всё нормально, всё работает, всё отсылается. Делаем вывод - проблема в неправильной схемотехнике, самая вероятная причина - пин 2 оставлен болтающимся в воздухе, ловит помехи, прошивка считает, что есть подключение по 1-Wire, и в этом случае - не выполняет часть кода, поскольку, как я писал ранее - 1-Wire очень критичен к таймингам, и пока по нему есть подключение - любая другая работа прекращается.

    Проверяйте схемотехнику.

    З. Ы. Кстати - в указанном выше выхлопе видно, что nRF не проинициализированы каналы nRF - это нормально, они инициализируются позже, в момент отправки данных.
     
    Последнее редактирование: 01.05.19
  2. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Саш, плз - ссылки на библиотеки тоже указывай, и сохраняй у себя ссылки на эти посты - мне это нужно будет, как дойдём до этих компонентов ;)

    Ты тестируешь?
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @evgeny1241, вот ещё один выхлоп (обновил прошивку ещё раз, убрал повторный вызов Serial. begin при включенном nRF и отладочном режиме - теперь квадратики пропали). Видно, что nRF инициализируется и всё отправляет. Поскольку я перезакачивал прошивку без снятия питания с nRF - видно, что при отправке данных - и каналы нормально настраиваются ;)

    Это с учётом того, что всё на макетке собрано, на соплях (специально тестирую на таком окружении, чтобы попытаться повторить то, что происходит у вас):

    Код:
    Query interval: 5000
    Init sensors...
    Init DS18B20...
    DS18B20 - inited.
    Init DS18B20...
    DS18B20 - inited.
    Init nRF...
    STATUS         = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
    RX_ADDR_P0-1     = 0xf0f0f0f0e4 0xc2c2c2c2c2
    RX_ADDR_P2-5     = 0xc3 0xc4 0xc5 0xc6
    TX_ADDR         = 0xf0f0f0f0e4
    RX_PW_P0-6     = 0x1e 0x00 0x00 0x00 0x00 0x00
    EN_AA         = 0x3f
    EN_RXADDR     = 0x03
    RF_CH         = 0x01
    RF_SETUP     = 0x07
    CONFIG         = 0x0e
    DYNPD/FEATURE     = 0x00 0x00
    Data Rate     = 1MBPS
    Model         = nRF24L01+
    CRC Length     = 16 bits
    PA Power     = PA_MAX
    Want measure by timeout...
    Want measure...
    Start measure...
    DS18B20 - start conversion...
    DS18B20 - not found!!!
    DS18B20 - start conversion...
    DS18B20 - not found!!!
    Wait for measure complete...
    Measure completed, start read...
    Read sensors...
    Read DS18B20...
    DS18B20: 0,0
    Read DS18B20...
    DS18B20: 0,0
    Sensors data readed.
    Send sensors data via nRF...
    NO RECEIVING SIDE FOUND!
    
    Want measure by timeout...
    Want measure...
    Start measure...
    DS18B20 - start conversion...
    DS18B20 - not found!!!
    DS18B20 - start conversion...
    DS18B20 - not found!!!
    Wait for measure complete...
    Measure completed, start read...
    Read sensors...
    Read DS18B20...
    DS18B20 - not found!
    Read DS18B20...
    DS18B20 - not found!
    Sensors data readed.
    Send sensors data via nRF...
    NO RECEIVING SIDE FOUND!
    
    Проверяйте подтяжку пина 2 на стороне модуля (я его для теста просто соединил с землёй, чтобы исключить помехи), закачайте крайнюю версию прошивки и смотрите, что в порту. Кстати, в выхлопе выше видно, что происходит, когда пины болтаются в воздухе (датчики у меня не подключены) - первый раз якобы прочитало с DS18B20. Но это не суть, тут главное, что nRF работает ;)
     
    Последнее редактирование: 01.05.19
  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    В принципе - этот код можно уже вставить в прошивку модуля, если ты мне объяснишь: нам достаточно получить данные в целых числах? Имею в виду - градусы наклона и направления? Направление по компасу - относительно севера жеж, правильно?

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

    Ещё - в примере выводится угол по трём осям - AngleX, AngleY, AngleZ. Я правильно понимаю, что нас интересует AngleZ?

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

    З. Ы. Ещё похоже, что часть расчётов придётся перенести на сам контроллер солнечной установки, чтобы не усложнять прошивки - в расчетах фигурируют настраиваемые данные, поэтому считаю, что передавать от дочернего модуля надо сырые данные, а на контроллере - уже рассчитывать актуальные.
     
  5. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958

    promavto

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

    promavto

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

    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958
    Адрес:
    г. Москва, Зеленоград.
    Дима привет! Достаточно целых, у нас все равно должна закладываться дельта по движению, что бы постоянно не дергать установку.
    Совершенно верно. Показания этой оси соответствуют расчетным. Остальные оси нужно пересчитывать (нам это не нужно).
    Концевики и можно датчики температуры также. У нас свободные А0-А3, А6,А7, D2-D4, D9,D10

    А0-А3 на концевики. D2-D4, D9,D10 на датчики DS1820
     
    Последнее редактирование: 01.05.19
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Ок, тогда вот что у нас получается в пакете (максимальная длина полезных данных пакета - 23 байта):

    10 байт - показания с 5 датчиков DS18B20
    2 байта - наклон от горизонта
    2 байта - направление в градусах (от севера)
    4 байта - освещённость

    Остаётся 5 байт на концевики и пр. Но тут дело в том, что возможно - склонение придётся от модуля на контроллер передавать сырыми данными, вместо двух байт - 4, поэтому считаем, что остаётся 3 байта - вполне хватит взять один байт на флаги, и пару байт - про запас. Вроде вмещаемся ;)

    Ушёл делать.
     
  7. Rivnen
    Регистрация:
    27.03.15
    Сообщения:
    53
    Благодарности:
    8

    Rivnen

    Участник

    Rivnen

    Участник

    Регистрация:
    27.03.15
    Сообщения:
    53
    Благодарности:
    8
    Адрес:
    Ровно
    Подскажите пожалуйста что ето значить?
    Код:
    Arduino: 1.6.7 (Windows 7), Плата:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"
    
    In file included from sketch\AbstractModule.cpp:2:0:
    
    ModuleController.h:40: error: 'SdFile' has not been declared
    
          static void readLine(SdFile& f, String& result);
    
                               ^
    
    ModuleController.h:42: error: 'SdFile' has not been declared
    
          static String GetFileName(SdFile& f);
    
                                    ^
    
    ModuleController.h:140: error: 'SdFat' does not name a type
    
    extern SdFat SDFat;
    
            ^
    
    exit status 1
    'SdFile' has not been declared
     
  8. Rivnen
    Регистрация:
    27.03.15
    Сообщения:
    53
    Благодарности:
    8

    Rivnen

    Участник

    Rivnen

    Участник

    Регистрация:
    27.03.15
    Сообщения:
    53
    Благодарности:
    8
    Адрес:
    Ровно
    Короче ничего не получается!
     
    Последнее редактирование: 01.05.19
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Установите правильно библиотеки, и всё. И при чём тут какой-то скетч "sketch\libraries\WiFi\extras\wifiHD\src\ard_spi.c" - непонятно. Библиотеки, что идут в комплекте с прошивкой контроллера - они в архивах, разархивировать их по месту не надо, их надо правильно установить в среду Arduino IDE, справочной информации по этой теме - валом ;)
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Это значит, что библиотеки, требуемые проекту - не установлены. Читайте инструкции в прошивке, пожалуйста.
     
  11. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Можно тестировать. Я ушёл отдыхать.
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Получится, если прочитать инструкции к прошивке и увидеть, что надо установить библиотеки, идущие в поставке с проектом, в папке libraries проекта, в архивах.

    Вот ссылка: https://www.google.com/search?q=%D0%BA%D0%B0%D0%BA+%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C+%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D1%83+arduino&rlz=1C1GGRV_enRU753RU753&oq=%D0%BA%D0%B0%D0%BA+%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C+%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8&aqs=chrome.3.69i57j0l5.4352j0j7&sourceid=chrome&ie=UTF-8
     
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Вот выдержка прямо СВЕРХУ файла Main. ino. Достаточно её прочитать - и всё станет понятно:

    Добавлю лишь: Arduino_STM32.zip - не надо устанавливать, скорее всего - вы не будете компилировать проект под STM32.

    Скетч очистки EEPROM - лежит в папке ClearEEPROM - если собираете проект под Мегу, и ClearEEPROM_DUE - если под Due.
     
  14. Rivnen
    Регистрация:
    27.03.15
    Сообщения:
    53
    Благодарности:
    8

    Rivnen

    Участник

    Rivnen

    Участник

    Регистрация:
    27.03.15
    Сообщения:
    53
    Благодарности:
    8
    Адрес:
    Ровно
    Спасибо! Заработало!
     
  15. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958

    promavto

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

    promavto

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

    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958
    Адрес:
    г. Москва, Зеленоград.
    Дима привет! Может есть возможность компилировать ESP_AT.ino в последней версии. Все попытки перейти на версию пакета 2.4.0 заканчиваются неудачей. Пляски с бубном так же не помогают. ЭТО НЕ СРОЧНО!

    Сообщение компилятора.
    Плата generic (платформа esp8266, пакет esp8266) неизвестна
    Ошибка компиляции для платы Generic ESP8266 Module.

    При этом эта плата (Generic ESP8266) в IDE есть. Достали китайцы. :mad:
     
Статус темы:
Закрыта.