Я работаю с модулем NodeMCU V3. Всякий раз, когда я пытаюсь сделать http-запрос к моему серверу, модуль вылетает.
Вот код:
void setup() {
WiFi.begin("wifi-name", "wifi-password");
while (WiFi.status() != WL_CONNECTED) { //Wait for the WiFI to connect }
}
void loop() {
HTTPClient http;
WiFiClient client;
http.begin( client, "server-address" );
int httpCode = http.GET();
String payload = http.getString(); //Get the response payload
Serial.println(httpCode); //Print HTTP return code
Serial.println(payload); //Print request response payload
http.end(); //Close connection
delay( 1000 );
}
Вот результат, как видно на мониторе последовательного порта:
200
["JSON response from the server"]
Exception (28):
epc1=0x40212e82 epc2=0x00000000 epc3=0x00000000 excvaddr=0x000001b6 depc=0x00000000
>>>stack>>>
ctx: cont
sp: 3ffffc90 end: 3fffffc0 offset: 01a0
3ffffe30: 00000000 4bc6a7f0 0000333f 3ffee5f8
3ffffe40: 00000000 00000000 4bc6a7f0 00000000
[...]
3fffffb0: feefeffe feefeffe 3ffe84e8 40100c41
<<<stack<<<
Странно то, что он правильно получает ответ от сервера, но затем, примерно через секунду, выплевывает исключение на последовательный монитор и сбрасывает его. Сначала я подумал, что это может быть из-за того, что я одновременно запускаю ESP8266WebServer, но все равно происходит сбой, даже когда я запускаю самый простой пример c, который я мог найти в inte rnet. Я попытался скомпилировать тот же код в Arduino IDE вместо PlatformIO или даже с использованием другого NodeMCU, но безрезультатно.
РЕДАКТИРОВАТЬ: после того, как вы поиграете немного больше, кажется, что установка задержки по крайней мере 10 секунд делает NodeMCU cra sh после 3 запросов, а не после первого. Может быть, переполнение памяти после нескольких запросов? Я пропустил важную часть, которая должна подготовить ESP8266 к новому запросу?