ESP, IoT Уходит в ребут помогите пожалуйста

trio

✩✩✩✩✩✩✩
3 Май 2020
9
0
Всем добра.

Плата nodemcu esp-12е (Китайский китай)
Делаю на ней webserver и он нормально работает.
Но затем мне понадобилось к плате подключить датчик температуры, взял AM2302 и курю его библиотекой DHT
//
И вот незадача, плата падает в ребут при выполнении dht.begin() в void setup()
В мониторе порта всё время повторяет

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

wdt reset
load 0x4010f000, len 3460, room 16
tail 4
chksum 0xcc
load 0x3fff20b8, len 40, room 4
tail 4
chksum 0xc9
csum 0xc9
v0004a3c0
~ld"


Если dht.begin() комментирую, то всё нормально работает, плата загружается в порт передает нужные штуки.
Подскажите пожалуйста как решить? Кто сталкивался?

Может настройки какие, может прошиваю не той программой какой, или еще что, подскажите пожалуйста.
В файлах скрины настроек ардуины и платы прилагаю.

Код:

C++:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include "DHT.h"

// Раскомментируйте одну из строк ниже в зависимости от того, какой датчик вы используете!
//#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

/* Введите свои SSID и пароль */
const char* ssid = "********";
const char* password = "********";

ESP8266WebServer server(80);

// датчик DHT
uint8_t DHTPin = 8;

// инициализация датчика DHT.
DHT dht(DHTPin, DHTTYPE);

float Temperature;
float Humidity;

void setup()
{

Serial.begin(115200);

delay(100);
pinMode(DHTPin, INPUT);
delay(100);
dht.begin(); /////ВОТ ТУТ ПАДАЕТ В РЕБУТ!!!!!
delay(100);

Serial.println("Connecting to ");
Serial.println(ssid);

// подключаемся к локальной wi-fi сети
WiFi.begin(ssid, password);

// проверить, подключился ли wi-fi модуль к wi-fi сети
while (WiFi.status() != WL_CONNECTED)
{
delay(100);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected..!");
Serial.print("Got IP: "); Serial.println(WiFi.localIP());

server.on("/", handle_OnConnect);
server.onNotFound(handle_NotFound);

server.begin();
Serial.println("HTTP server started");
}

void loop()
{
server.handleClient();
// Temperature = dht.readTemperature(); // получить значение температуры
// Humidity = dht.readHumidity();
// Serial.println(Temperature);
}

void handle_OnConnect()
{
Temperature = dht.readTemperature(); // получить значение температуры
Serial.println(Temperature);
Humidity = dht.readHumidity(); // получить значение влажности
server.send(200, "text/html", SendHTML(Temperature, Humidity));
}

void handle_NotFound()
{
server.send(404, "text/plain", "Not found");
}

String SendHTML(float Temperaturestat, float Humiditystat)
{
String ptr = "$";
ptr += "<p>Temperature: ";
ptr += (int)Temperaturestat;
ptr += "°C</p>";
ptr += "<p>Humidity: ";
ptr += (int)Humiditystat;
ptr += "%";
return ptr;
}
 

Вложения

Изменено:

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
1) вставляйте код кодом
2) с какой периодичностью перезагружается
3) лог с порта лучше выкладывать не отрывок, а несколько циклов, желательно со штампом времени
4) Debug Port лучше не отключать во время отладки, Debug Level повысить хотя бы до ошибок
 

poty

★★★★★★✩
19 Фев 2020
3,230
940
Увеличьте время ватчдог таймера и опрашивайте датчик пореже. Библиотека DHT блокирует прерывания на длительный промежуток времени при опросе датчика.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
@trio, Что не помогло?

@poty, Судя по "rst cause:4" - это софтовый рестарт, причин может быть очень много, не только вачдог. Поэтому я и попросил выложить полные циклы логов с ошибками из порта.
 

trio

✩✩✩✩✩✩✩
3 Май 2020
9
0
@poty,
Там даже до опроса датчика дело не доходит, программа уходит в ребут при выполнении dht.begin()

@Геннадий П,
Как выложить полные циклы логов?
Как-то выгрузить можно?

@Геннадий,
Только если так. Примерно каждые 5 секунд повторяется.

Кто поможет решить 500р. на карту кину.
Или на телефон.
 

Вложения

bort707

★★★★★★✩
21 Сен 2020
3,058
910
@trio, библиотеку DHT надо брать не всякую, а для ЕСП