Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

статический IP, MQTT и мультиплексор портов

Тема в разделе "ESP8266 Arduino IDE", создана пользователем Дмитрий Плотников, 25 июн 2019.

  1. Дмитрий Плотников

    Дмитрий Плотников Новичок

    Сообщения:
    3
    Симпатии:
    0
    Привет всем,

    столкнулся с проблемой - есть код, написанный сторонним разработчиком, связи с ним нет сейчас.
    Плата LOLIN D1 mini Pro.

    Используется SD + RTC шилд, мультиплексор портов MCP23017, MQTT, WiFi, ADC1115...
    Ситуация странная, стоит IDE 1.8.8 и esp8266 package 2.5.0.
    Изначально все скомпилировали и загрузили - проблем не увидели, но они были. Оказалось не работает статический IP адрес и коннект к MQTT по цифровому адресу (по имени хоста коннектится - парадокс прям, как бы не сильно напрягает, но очень желательно). Код проверили - все в порядке.
    Заменили esp8266 package на последний - 2.5.2 - не работает, сильно изменились библиотека SD, без серьезных изменений кода не компилируется.
    Заменили IDE на 1.8.9 - не компилируется совсем.. ошибки не фиксировали, но много.
    Вернулись на IDE 1.8.8 и esp8266 package 2.4.2... О чудо, статический IP заработал, MQTT по цифровому адресу коннектится. Но пропала работа с мультиплексором GPIO MCP23017, причем ошибок никаких нет.


    Более ранние версии esp8266 package не работают с LOLIN d1...

    Попытки поставить библиотеку ESP8266WIFI из 2.4.2 в 2.5.0 не увенчались успехом.
    Интересно, что библиотека под MCP23017 используется одна и та же - в esp8266 package она не входит.
    Какого она то не работает ???

    Как это все собрать в рабочем виде ?
     
  2. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.682
    Симпатии:
    183
    Что пишет компилятор? Что за библиотека MCP23017, в ней есть упоминание есп?
     
  3. Дмитрий Плотников

    Дмитрий Плотников Новичок

    Сообщения:
    3
    Симпатии:
    0
    Разобрался.... Итог:

    - с esp8266 package 2.5.0 не работает статический IP адрес, также почему то коннект к MQTT не идет по цифровому адресу, только по имени хоста. Попытки заменить ESP8266WIFI от старой версии не успешны.
    - в esp8266 package 2.5.1 и 2.5.2 включена новая библиотека SD, раньше была 1.0.8 от Adafruit, теперь 2.0.0 от Earle F. Philhower, отличия принципиальные, старый код не работает. Теоретически можно ее удалить руками из папки и будет использоваться стандартная из Arduino IDE, там как раз стоит от Adafruit.
    - с esp8266 package 2.4.2 все работает !!!

    Причина - стыдно рассказывать - отвалился кабель от блока питания платы, в результате часть платы осталась без питания, в т.ч. MCP21017 и ADC1115, при этом сам esp8266 питался от USB, и RTC тоже, и поэтому я ничего и не видел. В коде есть проверка питания, но почему то она срабатывает и сообщает "No VCC" только при попытке изменить состояние выходного GPIO. Давно я так не тупил...
     
  4. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.682
    Симпатии:
    183
    Моя программа тоже не захотела работать с 2.5.2, а с 2.4.2 работает.
    В новой версии как то странно отрабатывает autoconect и autoreconect(тоже использую статический IP ), пока не разбирался в различиях версий.
     
  5. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    575
    Симпатии:
    55
    мы к сожалению не экстрасенсы. где исходники? вы машину так же чините - приезжаете на троллейбусе на сто, описываете проблему с авто и ждете что ее дистанционно починят?
     
  6. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.682
    Симпатии:
    183
    ТС решил свой проблемы, а мне как бы не требуется помощь.

    На столе, на тестовой плате , то как бы все работает, в "железе" может перестать отвечать web server и не сразу, а через несколько дней, а остальные службы и дальше могут работать или тоже перестать работать.
    Переход на версии до 2.4.2 не вызывал проблем, на 2.5.2 изменился "интерфейс" http client, но даже переписав прогу, проблемы остались.
    Выглядит так, что при установленных autoconect и autoreconect, статус, что есп подключена к роутеру, устанавливается раньше, чем есп фактически подключится к роутеру.
    Суть проблемы в том, что если нет связи или неустойчивая связь http client, получив код ответа сервера -1, сильно "подвешивает", замедляет работу есп.
    Роутер я отключаю часто и это учитывается в программе и не вызывает проблем на старой версии.
    Возможно зимой будет больше свободного времени посмотрю, что не так.
    Использую библиотеки ASYNC, возможно они плохо согласуются с новой версией.
     

Поделиться этой страницей