nikolz, спасибо большое за ссылку I2C not working on ESP32 · Issue #741 · espressif/arduino-esp32
смена родной библиотеки Wire на arduino-esp32-stickbreaker-v0.2.0.zip полностью устранило зависание шины I2C.
С I2C у меня вообще засада, даже внутри блока автоматики отваливается через несколько часов работы, возможно в момент включения реле. Хотя нагрузка всего 100 ваттная, циркуляционный насос. В блоке стоят часы 3231 и индикатор 1637. Пока не нашел код как перезапускать шину I2C после её зависания...
В подвале esp32 стабильно считывает данные от 6 датчиков через конвертер уровня и при питании 18В20 от 5в, соединение звездой. Дома также звездой к другой esp32 подключил 4 датчика при питании 3,3в, общая длина линии около 40м, данные тоже стабильно считываются. В витой паре все бело-цветные...
Ну для меня это не игрушки, я делаю управление климатом в подвале своего дома, в котором храню выращенный урожай, некоторые года более 50ти тонн овощей. Да, соединил звездой три линии, но без скруток, на пайке, показания считываются стабильно.
Скетч я собирал из разных примеров, говорю же что не понимаю зачем нужны некоторые строки. Mqtt spy как то не понятно работает, количество месаджей от первой есп уменьшилось, но видно что последнее 20 минут назад было, вторая так и не перезагружалась.
timer start вставил во вторую есп, дома на столе без датчиков, 20 минут пока не перегружается.
Публикация уставок происходит только при перезагрузки или после реконекта после потери связи.
const int wdtTimeout = 30000; //time in ms to trigger the watchdog
Я думал эта строка задает время через которое срабатывает таймер после зависания.
А раз в две минуты вроде только проверка соединения, или нет?
Отрицательная температура - что то с типами переменных напутал?
Чисто символически...
у меня
timer = timerBegin(0, 80, true); из примера встроенного
поставил модуль в подвал с тем же кодом, перезагружается минут через пять.
Arduino 1.8.5
И датчики половину не видит, те которые в комнатах с минусовой температурой, показывают 4086 градусов.
Я же говорю - новичок, половину кода вообще не понимаю. Т.е. зависает когда связь теряется? Хотя я проверял, отключал wifi на роутере и в сериал температура шла, часы тоже ходили, после включения wifi заново коннектился.
ESP32 периодически зависает, всегда по разному, раз в пару часов, или пару раз в день.
От разных блоков питания пробовал, сделал LC фильтр на питание, через хороший ИБП, лежит пока на столе с одним датчиком 18в20 на метровом проводе. Все равно зависает. Может дело все таки в "говнокоде"?
Мой...