• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь nodemcu v3 esp8266 rst cause:4 от пониженной температуры

BlueBeard

Member
имеем nodemcu v3 esp8266, скетч устойчиво (сутками) работающий при комнатной температуре начинает дурить когда девайс выставляю на улицу примерно(10градусов).
Сначала грешил на свои ручки -> ошибке в скетче, что нибудь ни туда припаял. в конце концов взял новый девайс залил туда простейший скетч вывесил USB на проводе за окно, тоже самое.

То есть данные падения у меня происходят с любой nodemcu (пробовал 4 разных), на разных скетчах опрос датчиков в цикле или на разрабатываемом (там вся работа происходит по таймерам) , три варианта питания девайса (два блока питания и порт компа), с конденсаторами по питанию и без.

Как проявляется, лежит девайс на столе (22-24) нормально работает, выношу не отключая на балкон(+10), через минуту максимум уходит в цикл работаем wdt reset, заношу обратно, через минуту отогревается и опять нормально работает.

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

лог на порту
Код:
Humidity: 72.90 %    Temperature: 6.90 *C
Humidity: 73.00 %    Temperature: 6.90 *C
Humidity: 73.00 %    Temperature: 6.90 *C

ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld
?start
Humidity: 72.90 %    Temperature: 6.90 *C
Humidity: 72.90 %    Temperature: 6.90 *C
Humidity: 73.50 %    Temperature: 6.90 *C
и далее по кругу работаем 10сек-пару минут и wdt reset

пример кода на котором девайс падает
Код:
#include "DHT.h"

#define DHTPIN 2     // вывод, к которому подключается датчик
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  delay(100);
  dht.begin();
  Serial.println("start");
}



void loop() {
  delay(1250);

  // считывание температуры или влажности занимает примерно 250 мс!
  // считанные показания могут отличаться от актуальных примерно на 2 секунды (это очень медленный датчик)
  float h = dht.readHumidity();
  // Считывание температуры в цельсиях
  float t = dht.readTemperature();

  // проверяем, были ли ошибки при считывании и, если были, начинаем заново
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    yield();
    return;
  }

  //выводим информацию в Монитор последовательного порта
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.println(" *C ");

  yield();
}
 

BlueBeard

Member
delay v loop не кошерно, используйте millis
вечером переделаю скрипт и протестирую

хотя в основных девайсах delay нет код написан на основе GitHub - kmaximv/Wi-Fi-Sensor

loop основных девайсах
Код:
/*
** основной цикл
*/
void loop() {

  blink_mode = 0B00000001; //Короткая вспышка

  #ifdef USE_WEBSERVER
    WebServer.handleClient();  // handle web server
  #endif // USE_WEBSERVER


  timer.run();

  if (WiFi.status() == WL_CONNECTED && atoi(JConf.mqtt_enable) == 1) {
    if (mqtt.connected()){
      mqtt.processPackets(100);
    }
  }

  #ifdef UART_ON
    Uart.serialEvent();
  #endif

  #ifdef NTP_ON
    if ( atoi(JConf.ntp_enable) == 1 && millis() - ntpLastUpdateTime < NTP_ERROR_TIME ) {
      if (timeClient.update()) ntpLastUpdateTime = millis();
      timer.restartTimer(ntpTimer);
    }
  #endif

  yield();
}
правильно я понимаю что на nodemcu v3 все ножки уже подтянуты куда надо

я правда еще дополнительно на готовых добавляю
D3 10k GPIO0 -> +3.3v
D4 10k GPIO2 -> +3.3v
D8 10k GPIO15 -> GROUND

да еще на nodemcu подаю 5v то есть esp кормятся через встроенный стабилизатор
 

nikolz

Well-known member
попробуйте найти причину.
Можно сделать так:
1) измерить изменение напряжения питания на модуле при понижении температуры.
2) взять лед в полиэтилен и по очереди положить мешок на все чипы на плате . Найти что перестает работать.
 

BlueBeard

Member
попробуйте найти причину.
1) измерить изменение напряжения питания на модуле при понижении температуры.
искал до трех ночи, пока в процессе, напряжения на модулях, если верить монитору самого esp 2.6-2,7v тотального изменения при воздействии уличным холодим замечено не было.

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

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

nikolz

Well-known member
искал до трех ночи, пока в процессе, напряжения на модулях, если верить монитору самого esp 2.6-2,7v тотального изменения при воздействии уличным холодим замечено не было.

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

остальные либо собраны в последнюю неделю либо исполнительный блок проходит (наверно с месяц) тестирование на столе зажигая лампочку (имитируется включение контура отопления) и поддерживая температуру.
Вчера куря перенес один из датчиков на подоконник отрытого окна и обнаружил что датчик явно дурит на холоде, дальнейшие опыты с остальными девайсами показало тоже, новая плата вскрытая и прошитая дала аналогичные результаты.
вообще-то 2.6 на внутренне это мало.
Возможно слабый источник
На холоде возникает просадка питания при связи и в результате ошибка.
 

kab

New member
попробуйте найти причину.
Можно сделать так:
1) измерить изменение напряжения питания на модуле при понижении температуры.
2) взять лед в полиэтилен и по очереди положить мешок на все чипы на плате . Найти что перестает работать.
Забыли добавить - если это действительно проявление температуры, а не какого-либо другого "балконного" эффекта. Может, у соседа на балконе какое-то устройство работает - напр., радиолюбительская антенна на передачу :)
 

BlueBeard

Member
Забыли добавить - если это действительно проявление температуры, а не какого-либо другого "балконного" эффекта. Может, у соседа на балконе какое-то устройство работает - напр., радиолюбительская антенна на передачу :)
Вы скорее всего оказались правы огромное спасибо, один девас с кубиком льда на спине полет нормальный 10 минут, второй это же время живет в холодильнике.
а туда куда я их выносил на за(на) окно в 140 метрах в прямой видимости сотовый телефонный столб типа такого


Всем еще раз спасибо
 

nikolz

Well-known member
У меня 2.6 показывает при питании от батарейки через Dc/Dc с суперкондером.
От USB с 1117 а также nodemcu показывает 3.0-3.1.
 

BlueBeard

Member
Девайс в холодильнике отпахал 2 часа, другой растворил кубик до воды. Ура
 

Юрий Ботов

Moderator
Команда форума
Фантазирую: может проблема не в температуре а например во влажности на улице - конденсат куда нибудь выпадает...
 

Glott

New member
Получилось разобраться в проблеме с "wdt reset cause 4" ???

Такая же самая фигня начала преследовать и меня на платках NodeMCU.
причем возникает на пустом месте, с заведомо рабочим скетчем.
Кратковременно лечится заливанием blank.bin с адреса 0x3FE000 и будет работать до тех пор пока не нажмешь Reset на платке...
 

enjoynering

Well-known member
Где то в вашем коде есть бесконечный цикл, вот поэтому reset номер 4 . Второй вариант - плохое питание.
 
Сверху Снизу