Memory allocation problem

Guys... is there any way to find out what could be causing the memory allocation problem (error like: "3fffefd0: feefeffe feefeffe feefeffe feefeffe")?

This is the entire sketch:

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include "LittleFS.h"
#include <Arduino_JSON.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include "secrets.h"

const char* ssid = STASSID;
const char* pass = STAPSK;

// Create AsyncWebServer object on port 80
AsyncWebServer server(80);

// Create a WebSocket object
AsyncWebSocket ws("/ws");

// Json Variable to Hold Sensor Readings
JSONVar readings;

// Sensor de temperatura conectado na GPIO 4 / D2
#define ONE_WIRE_BUS 4

// Pinos do relê
#define HEATER_RELAY_PIN D1
#define COOLER_RELAY_PIN D0

// Hysteresis da temperatura
#define HYSTERESIS 0.4

// Sensor de temperatura
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

// Temperaturas e tempos
struct TemperatureData {
  float temperature;
  unsigned long time;
};

// Function prototype declaration
unsigned long countElapsedTime();

const int MAX_TEMPERATURES = 15; // Limite de 15 passos
TemperatureData temperatureData[MAX_TEMPERATURES];

int numTemperatures = 0;
int currentTemperatureIndex = 0;
bool fermentationStarted = false;
unsigned long targetTime = 0;
unsigned long tempoFase = 0;
unsigned long tempoAtual = 0;
bool atualizaTarget = false;
bool contagemTempo = false;
unsigned long remainingTime = 0;
float targetTemperature = 0;
String formattedElapsedTime;
String formattedtargetTime;
const int MAX_WIFI_CONNECTION_ATTEMPTS = 5;
static bool heaterState = false;
static bool coolerState = false;
static unsigned long lastCoolerOffTime = 0;

// Variáveis que definem quanto tempo entre envios ao cliente
unsigned long lastTime = 0;  
unsigned long timerDelay = 1000;

// Função auxiliar para converter float em string com determinada precisão
String floatToString(float value, int precision) {
  char buffer[20];
  sprintf(buffer, "%.*f", precision, value);
  return String(buffer);
}

// Initializa WiFi
void initWiFi() {
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);
  Serial.print("Conectando ao WiFi ..");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(1000);
  }
  Serial.println("Conectado!");
  Serial.println(WiFi.localIP());
}

// Initializa LittleFS
void initFS() {
  if (!LittleFS.begin()) {
    Serial.println("An error has occurred while mounting LittleFS");
  }
  else{
   Serial.println("LittleFS mounted successfully");
  }
}

// Carregar dados de temperatura do arquivo
void loadTemperatureData() {
    if (LittleFS.exists("/temperatures.txt")) {
      File file = LittleFS.open("/temperatures.txt", "r");
      if (file) {
        numTemperatures = 0;
        while (file.available() && numTemperatures < MAX_TEMPERATURES) {
          String line = file.readStringUntil('\n');
          int separatorIndex = line.indexOf(',');
          if (separatorIndex != -1) {
            temperatureData[numTemperatures].temperature = line.substring(0, separatorIndex).toFloat();
            temperatureData[numTemperatures].time = line.substring(separatorIndex + 1).toInt();
            numTemperatures++;
          }
        }
        file.close();
      }
    }
}

// Salvar dados de temperatura em arquivo
void saveTemperatureData() {
    File file = LittleFS.open("/temperatures.txt", "w");
    if (file) {
      for (int i = 0; i < numTemperatures; i++) {
        file.println(floatToString(temperatureData[i].temperature, 2) + "," + String(temperatureData[i].time));
      }
      file.close();
    }
}

// Função para ler a temperatura com tratamento de erro
float readTemperature() {
  sensors.requestTemperatures();
  float temperature = sensors.getTempCByIndex(0);

  if (temperature == DEVICE_DISCONNECTED_C || temperature == 85.0) {
    Serial.println("Falha na leitura do sensor de temperatura");
  }
  return temperature;
}

void convertTime(unsigned long timeInSeconds, unsigned int &days, unsigned int &hours, unsigned int &minutes, unsigned int &seconds) {
  days = timeInSeconds / 86400;
  timeInSeconds %= 86400;
  hours = timeInSeconds / 3600;
  timeInSeconds %= 3600;
  minutes = timeInSeconds / 60;
  seconds = timeInSeconds % 60;
}

unsigned long countElapsedTime() {
  if (contagemTempo) {
    unsigned long tempo = millis() / 1000 - tempoAtual;
    return tempo >= targetTime ? 0 : targetTime - tempo;
  } else {
    return 0;
  }
}

String getSensorReadings(){
    float currentTemperature = readTemperature();
    float targetTemperature = temperatureData[currentTemperatureIndex].temperature;
    targetTime = temperatureData[currentTemperatureIndex].time;

    remainingTime = countElapsedTime(); // Calculate the elapsed time

    // Converta o tempo decorrido em uma string formatada (dias (dias) hh:mm:ss)
    unsigned int days, hours, minutes, seconds;
    convertTime(remainingTime, days, hours, minutes, seconds);
    String formattedElapsedTime = String(days) + " (dias) " +
                                  (hours < 10 ? "0" + String(hours) : String(hours)) + ":" +
                                  (minutes < 10 ? "0" + String(minutes) : String(minutes)) + ":" +
                                  (seconds < 10 ? "0" + String(seconds) : String(seconds));

   // Converta o tempo alvo em uma string formatada (dias (dias) hh:mm:ss)
    convertTime(targetTime, days, hours, minutes, seconds);
    String formattedTargetTime = String(days) + " (dias) " +
                                 (hours < 10 ? "0" + String(hours) : String(hours)) + ":" +
                                 (minutes < 10 ? "0" + String(minutes) : String(minutes)) + ":" +
                                 (seconds < 10 ? "0" + String(seconds) : String(seconds));

    // Criar resposta JSON
    String jsonResponse = "{";
    jsonResponse += "\"currentTemperature\": " + String(currentTemperature, 2) + ",";
    jsonResponse += "\"targetTemperature\": " + String(targetTemperature, 2) + ",";
    jsonResponse += "\"formattedTargetTime\": \"" + formattedTargetTime + "\",";
    jsonResponse += "\"formattedElapsedTime\": \"" + formattedElapsedTime + "\"";
    jsonResponse += "}";
    return jsonResponse;
  }
 
void notifyClients(String sensorReadings) {
  ws.textAll(sensorReadings);
  }

void handleWebSocketMessage(void *arg, uint8_t *data, size_t len) {
  AwsFrameInfo *info = (AwsFrameInfo*)arg;
  if (info->final && info->index == 0 && info->len == len && info->opcode == WS_TEXT) {

      String sensorReadings = getSensorReadings();
      notifyClients(sensorReadings);
  }
}

void onEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len) {
  switch (type) {
    case WS_EVT_CONNECT:
      break;
    case WS_EVT_DISCONNECT:
      break;
    case WS_EVT_DATA:
      handleWebSocketMessage(arg, data, len);
      break;
    case WS_EVT_PONG:
    case WS_EVT_ERROR:
      break;
  }
}

void initWebSocket() {
  ws.onEvent(onEvent);
  server.addHandler(&ws);
}

// Initialização dos relays
void initializeRelays() {
  pinMode(HEATER_RELAY_PIN, OUTPUT);
  digitalWrite(HEATER_RELAY_PIN, LOW);
  pinMode(COOLER_RELAY_PIN, OUTPUT);
  digitalWrite(COOLER_RELAY_PIN, LOW);
}

// Controle dos relays baseado na temperatura corrente e temperatura alvo
void controlRelays(float currentTemperature, float targetTemperature) {
  static unsigned long lastCoolerOffTime = 999999; // Valor grande para garantir que millis() - lastCoolerOffTime >= 5 * 60 * 1000 no início
 
  if (currentTemperature < targetTemperature - HYSTERESIS) {
    digitalWrite(HEATER_RELAY_PIN, HIGH);
    heaterState = true;
    Serial.println("Aquecedor ligado");
  }

if (coolerState == false && currentTemperature > targetTemperature + HYSTERESIS) {
    digitalWrite(COOLER_RELAY_PIN, HIGH);
    coolerState = true; // Define a variável como true para evitar ligar a geladeira repetidamente
    Serial.println("Geladeira ligada");
  }
 
  if (targetTemperature - HYSTERESIS <= currentTemperature && currentTemperature <= targetTemperature + HYSTERESIS && coolerState) {
    digitalWrite(COOLER_RELAY_PIN, LOW);
    lastCoolerOffTime = millis();
    Serial.println("Geladeira desligada");
  }

  // Verifica se já passou o tempo de espera após desligar a geladeira
  if (coolerState && millis() - lastCoolerOffTime >= 5 * 60 * 1000) {
    coolerState = false; // Define a variável como false para permitir ligar a geladeira novamente no futuro
  }

  if (targetTemperature - HYSTERESIS <= currentTemperature && currentTemperature <= targetTemperature + HYSTERESIS && heaterState) {
    digitalWrite(HEATER_RELAY_PIN, LOW);
    heaterState = false;
    Serial.println("Aquecedor desligado");
  }
 }

// Verifica se o processo de fermentatação está completo
bool isFermentationComplete() {
  return currentTemperatureIndex == numTemperatures;
}

// Função para configurar o servidor web
void configureWebServer() {
  // Rota para a página inicial
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
    // Montar a página HTML dinamicamente com os dados de temperatura
    String html;

    File file = LittleFS.open("/index.html", "r");
    if (file) {
      html = file.readString();
      file.close();
    }

    String temperaturesHtml = "";
    for (int i = 0; i < numTemperatures; i++) {
      temperaturesHtml += "<li>";
      temperaturesHtml += "Temperatura: " + floatToString(temperatureData[i].temperature, 2) + " °C, ";
      temperaturesHtml += "Tempo: " + String(temperatureData[i].time) + " segundos";
      temperaturesHtml += " [<a href='/delete?index=" + String(i) + "'>Deletar</a>]";
      temperaturesHtml += " [<a href='/edit?index=" + String(i) + "'>Editar</a>]";
      temperaturesHtml += "</li>";
    }
    html.replace("{{temperatures}}", temperaturesHtml);

    // Enviar a página HTML como resposta ao cliente
    request->send(200, "text/html", html);
  });

  // Rota para a página de edição
  server.on("/edit", HTTP_GET, [](AsyncWebServerRequest *request) {
    int index = request->arg("index").toInt();

    if (index >= 0 && index < numTemperatures) {
      // Montar a página de edição com o formulário
      String html = "<html><head><title>Editar Temperatura</title></head><body>";
      html += "<h1>Editar Temperatura</h1>";
      html += "<form action='/update' method='POST'>";
      html += "<input type='hidden' name='index' value='" + String(index) + "'>";
      html += "Temperatura: <input type='text' name='temperature' value='" + floatToString(temperatureData[index].temperature, 2) + "'><br>";
      html += "Tempo: <input type='text' name='time' value='" + String(temperatureData[index].time) + "'><br>";
      html += "<input type='submit' value='Salvar'>";
      html += "</form>";
      html += "</body></html>";
           // Enviar a página de edição como resposta ao cliente
      request->send(200, "text/html", html);
    } else {
      // Índice inválido, enviar resposta de erro
      request->send(404);
    }
  });
  // Rota para o tratamento de atualização da temperatura
  server.on("/update", HTTP_POST, [](AsyncWebServerRequest *request) {
    int index = request->arg("index").toInt();
    float newTemperature = request->arg("temperature").toFloat();
    int newTime = request->arg("time").toInt();
    String html;
    if (index >= 0 && index < numTemperatures) {
      temperatureData[index].temperature = newTemperature;
      temperatureData[index].time = newTime;
      saveTemperatureData();
      request->send(200, "text/html", html);
      request->send(303);
    } else {
      request->send(404, "text/plain", "Índice inválido");
    }
  });
  // Rota para o tratamento de adicionar nova temperatura/tempo
  server.on("/add", HTTP_POST, [](AsyncWebServerRequest *request) {
    float temperature = request->arg("temperature").toFloat();
    unsigned long time = request->arg("time").toInt();

    Serial.print("Temperatura recebida: ");
    Serial.println(temperature);
    Serial.print("Tempo recebido: ");
    Serial.println(time);

    if (numTemperatures < MAX_TEMPERATURES) {
      temperatureData[numTemperatures].temperature = temperature;
      temperatureData[numTemperatures].time = time;
      numTemperatures++;
      saveTemperatureData();
    }

    request->send(200, "text/html", "<script>window.location.href = '/';</script>");
  });
 
 // Rota para o tratamento de deletar temperatura/tempo
  server.on("/delete", HTTP_GET, [](AsyncWebServerRequest *request) {
    int index = request->arg("index").toInt();
    Serial.print("Deletar o cadastro: ");
    Serial.println(index);

    if (index >= 0 && index < numTemperatures) {
      for (int i = index; i < numTemperatures - 1; i++) {
        temperatureData[i] = temperatureData[i + 1];
      }
      numTemperatures--;
      saveTemperatureData();
    }

    request->send(200, "text/plain", "/");
    request->send(303);
  });

  // Rota para o tratamento de iniciar a fermentação
  server.on("/start", HTTP_GET, [](AsyncWebServerRequest *request) {
    fermentationStarted = true;
    Serial.println("Fermentação Iniciada");
    request->send(200, "text/plain", "Fermentação Iniciada");
  });
}

void setup() {
  Serial.begin(115200);

  initWiFi();
  initFS();
  initWebSocket();

  // Inicializa o sensor de temperatura
  sensors.begin();

  // Configuração do servidor web
  configureWebServer();

   
  // Lê o arquivo de temperatura/tempo
  loadTemperatureData();

  // Inicializa os relays
  initializeRelays();

  // Seta o currentTemperatureIndex para 0 inicialmente
  currentTemperatureIndex = 0;

  // Web Server Root URL
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(LittleFS, "/index.html", "text/html");
  });

  server.serveStatic("/", LittleFS, "/");

  // Iniciar o servidor web
  server.begin();
}

void loop() {
  if ((millis() - lastTime) > timerDelay) {
    String sensorReadings = getSensorReadings();
    notifyClients(sensorReadings);
    lastTime = millis();
  }
  ws.cleanupClients();

  // Lê a temperatura atual
  float currentTemperature = readTemperature();
  Serial.println(currentTemperature);

  // Controla o início e término da fermentação
if (isFermentationComplete()) {
    Serial.println("Fermentação completa");
    notifyClients("Fermentação Concluída!"); // Envia a mensagem para todos os clientes conectados através do WebSocket
} else if (fermentationStarted && currentTemperatureIndex < numTemperatures) {
    float targetTemperature = temperatureData[currentTemperatureIndex].temperature;
    controlRelays(currentTemperature, targetTemperature);
    notifyClients("Fermentação Iniciada!"); // Envia a mensagem para todos os clientes conectados através do WebSocket
}

    if (contagemTempo == false && currentTemperature >= targetTemperature - HYSTERESIS && currentTemperature <= targetTemperature + HYSTERESIS) {
      Serial.println("Temperatura alvo atingida! Início da contagem do tempo!");
      atualizaTarget = true;
    }

    if (atualizaTarget == true) {
      tempoAtual = millis() / 1000;
      tempoFase = tempoAtual + (targetTime / 1000); // Assuming targetTime is in milliseconds
      atualizaTarget = false;
      contagemTempo = true;
    }

    if (tempoFase < (millis() / 1000) && contagemTempo == true) {
      Serial.println("Tempo no alvo alcançado. Passando para a próxima etapa!");
      currentTemperatureIndex++;
      contagemTempo = false;
    }
  }

Instead of posting something "like" the error, post the actual, complete error message.

Lots of opportunity for a buffer overflow here...

It's very big:

User exception (panic/abort/assert)
--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Panic core_esp8266_main.cpp:191 __yield

>>>stack>>>

ctx: sys
sp: 3fffec40 end: 3fffffb0 offset: 0010
3fffec50:  00000000 00016299 3ffef43c 402132f9  
3fffec60:  000002ed 00016299 3ffef43c 40210f8e  
3fffec70:  0000000b 0000000b 3ffef43c 40206317  
3fffec80:  00000002 00000000 3fffed8c 40206467  
3fffec90:  00000005 00000005 00000002 401021b0  
3fffeca0:  3ffe9d42 402450f3 3ffed4b0 3fff24ec  
3fffecb0:  00000000 4022e72f 3ffee830 3fff005c  
3fffecc0:  00000000 00000002 00000000 3ffed4b0  
3fffecd0:  3fff2522 40105a8b 3fff09f8 3ffefa48  
3fffece0:  3fff0304 000004aa 3ffe861c 4010085e  
3fffecf0:  3fff2474 4021f53d 3fff09f8 3ffefa48  
3fffed00:  3fff0470 00000020 3fff2474 40100bac  
3fffed10:  3fff0470 00000061 3fffed54 3ffefa60  
3fffed20:  3ffefa60 3fff24ec 3fff24ec 4021f76f  
3fffed30:  3ffefa98 3fff24ec 00000000 4021fbce  
3fffed40:  3ffefdb0 3fffed60 00000050 00000002  
3fffed50:  3fff0470 00000000 0061006f 3ffefdb0  
3fffed60:  3ffefa60 3ffefa98 3ffefda4 3fff230c  
3fffed70:  0000000b 0000000b 3fff22f8 40206874  
3fffed80:  00001958 0000032b 3ffe861c 4010085e  
3fffed90:  00001858 0000030b 3ffe861c 3fff15b8  
3fffeda0:  3fff15a4 00000020 3fff187c 40216380  
3fffedb0:  3fffedc0 3fff1590 3fff154c 4021204d  
3fffedc0:  0000000b 3fff22f8 3fff234c 00000004  
3fffedd0:  3fff230c 3ffef47c 3fff14fc 3fff230c  
3fffede0:  00000011 3fff1414 3fff22f2 402097f8  
3fffedf0:  000015d8 000002bb 3ffe861c 4010085e  
3fffee00:  3fff2303 00000048 04189374 0199fe9c  
3fffee10:  3fffee80 00000020 3fff14fc 3fff22ac  
3fffee20:  3fffee70 3fff1414 3fff1924 40208334  
3fffee30:  00000011 3fff22f2 3fff1414 3fff230c  
3fffee40:  00000000 00000096 3fff1414 40207c56  
3fffee50:  00000043 00000096 3fff1414 00000000  
3fffee60:  3fff22ac 3fff1924 3fff1414 40208394  
3fffee70:  3fff12a0 3fff1294 00000000 40207e58  
3fffee80:  3fff12a0 3fff1294 3fff22ac 3ffefd00  
3fffee90:  3fff1924 3ffefd04 3ffefd05 40223825  
3fffeea0:  40224adc 4024ea98 00000020 40100be0  
3fffeeb0:  00000018 00000000 000162b1 4022047d  
3fffeec0:  00000000 00000016 3ffe861c 3ffefa60  
3fffeed0:  3ffefec8 3fff22ca 3fff22ac 40228785  
3fffeee0:  00000014 3ffefa60 00000000 4022047d  
3fffeef0:  00000000 0000036c 3ffe861c 4010085e  
3fffef00:  40245260 3fff1a84 3fff0304 3fff0bd4  
3fffef10:  3ffefa60 00000008 3fff22ac 4021fb41  
3fffef20:  3fffdc80 3fff0304 3fff1a84 4021f954  
3fffef30:  40248411 3fff0304 3fff1a84 40248423  
3fffef40:  3fff22bc 3fff22ac 00000000 3fffdcb0  
3fffef50:  3ffeef28 00000000 3fff1a84 402496f7  
3fffef60:  40000f49 3fffdab0 ffffff01 40000f49  
3fffef70:  40000e19 00058a73 bff00000 0000bfff  
3fffef80:  00000005 aa55aa55 000000e2 40105549  
3fffef90:  4010554f bff00000 0000bfff 629caffa  
3fffefa0:  4010000d bff00000 00058a73 401000ab  
3fffefb0:  40239e10 3fffef4c 40239dc9 3ffffec8  
3fffefc0:  3fffffd0 00000000 00000000 feefeffe  
3fffefd0:  feefeffe feefeffe feefeffe feefeffe  
3fffefe0:  feefeffe feefeffe feefeffe feefeffe  
3fffeff0:  feefeffe feefeffe feefeffe feefeffe  
3ffff000:  feefeffe feefeffe feefeffe feefeffe  
3ffff010:  feefeffe feefeffe feefeffe feefeffe  
3ffff020:  feefeffe feefeffe feefeffe feefeffe  
3ffff030:  feefeffe feefeffe feefeffe feefeffe  
3ffff040:  feefeffe feefeffe feefeffe feefeffe  
3ffff050:  feefeffe feefeffe feefeffe feefeffe  
3ffff060:  feefeffe feefeffe feefeffe feefeffe  
3ffff070:  feefeffe feefeffe feefeffe feefeffe  
3ffff080:  feefeffe feefeffe feefeffe feefeffe  
3ffff090:  feefeffe feefeffe feefeffe feefeffe  
3ffff0a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff100:  feefeffe feefeffe feefeffe feefeffe  
3ffff110:  feefeffe feefeffe feefeffe feefeffe  
3ffff120:  feefeffe feefeffe feefeffe feefeffe  
3ffff130:  feefeffe feefeffe feefeffe feefeffe  
3ffff140:  feefeffe feefeffe feefeffe feefeffe  
3ffff150:  feefeffe feefeffe feefeffe feefeffe  
3ffff160:  feefeffe feefeffe feefeffe feefeffe  
3ffff170:  feefeffe feefeffe feefeffe feefeffe  
3ffff180:  feefeffe feefeffe feefeffe feefeffe  
3ffff190:  feefeffe feefeffe feefeffe feefeffe  
3ffff1a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff1b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff1c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff1d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff1e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff1f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff200:  feefeffe feefeffe feefeffe feefeffe  
3ffff210:  feefeffe feefeffe feefeffe feefeffe  
3ffff220:  feefeffe feefeffe feefeffe feefeffe  
3ffff230:  feefeffe feefeffe feefeffe feefeffe  
3ffff240:  feefeffe feefeffe feefeffe feefeffe  
3ffff250:  feefeffe feefeffe feefeffe feefeffe  
3ffff260:  feefeffe feefeffe feefeffe feefeffe  
3ffff270:  feefeffe feefeffe feefeffe feefeffe  
3ffff280:  feefeffe feefeffe feefeffe feefeffe  
3ffff290:  feefeffe feefeffe feefeffe feefeffe  
3ffff2a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff2b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff2c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff2d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff2e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff2f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff300:  feefeffe feefeffe feefeffe feefeffe  
3ffff310:  feefeffe feefeffe feefeffe feefeffe  
3ffff320:  feefeffe feefeffe feefeffe feefeffe  
3ffff330:  feefeffe feefeffe feefeffe feefeffe  
3ffff340:  feefeffe feefeffe feefeffe feefeffe  
3ffff350:  feefeffe feefeffe feefeffe feefeffe  
3ffff360:  feefeffe feefeffe feefeffe feefeffe  
3ffff370:  feefeffe feefeffe feefeffe feefeffe  
3ffff380:  feefeffe feefeffe feefeffe feefeffe  
3ffff390:  feefeffe feefeffe feefeffe feefeffe  
3ffff3a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff3b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff3c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff3d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff3e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff3f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff400:  feefeffe feefeffe feefeffe feefeffe  
3ffff410:  feefeffe feefeffe feefeffe feefeffe  
3ffff420:  feefeffe feefeffe feefeffe feefeffe  
3ffff430:  feefeffe feefeffe feefeffe feefeffe  
3ffff440:  feefeffe feefeffe feefeffe feefeffe  
3ffff450:  feefeffe feefeffe feefeffe feefeffe  
3ffff460:  feefeffe feefeffe feefeffe feefeffe  
3ffff470:  feefeffe feefeffe feefeffe feefeffe  
3ffff480:  feefeffe feefeffe feefeffe feefeffe  
3ffff490:  feefeffe feefeffe feefeffe feefeffe  
3ffff4a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff4b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff4c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff4d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff4e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff4f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff500:  feefeffe feefeffe feefeffe feefeffe  
3ffff510:  feefeffe feefeffe feefeffe feefeffe  
3ffff520:  feefeffe feefeffe feefeffe feefeffe  
3ffff530:  feefeffe feefeffe feefeffe feefeffe  
3ffff540:  feefeffe feefeffe feefeffe feefeffe  
3ffff550:  feefeffe feefeffe feefeffe feefeffe  
3ffff560:  feefeffe feefeffe feefeffe feefeffe  
3ffff570:  feefeffe feefeffe feefeffe feefeffe  
3ffff580:  feefeffe feefeffe feefeffe feefeffe  
3ffff590:  feefeffe feefeffe feefeffe feefeffe  
3ffff5a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff5b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff5c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff5d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff5e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff5f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff600:  feefeffe feefeffe feefeffe feefeffe  
3ffff610:  feefeffe feefeffe feefeffe feefeffe  
3ffff620:  feefeffe feefeffe feefeffe feefeffe  
3ffff630:  feefeffe feefeffe feefeffe feefeffe  
3ffff640:  feefeffe feefeffe feefeffe feefeffe  
3ffff650:  feefeffe feefeffe feefeffe feefeffe  
3ffff660:  feefeffe feefeffe feefeffe feefeffe  
3ffff670:  feefeffe feefeffe feefeffe feefeffe  
3ffff680:  feefeffe feefeffe feefeffe feefeffe  
3ffff690:  feefeffe feefeffe feefeffe feefeffe  
3ffff6a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff6b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff6c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff6d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff6e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff6f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff700:  feefeffe feefeffe feefeffe feefeffe  
3ffff710:  feefeffe feefeffe feefeffe feefeffe  
3ffff720:  feefeffe feefeffe feefeffe feefeffe  
3ffff730:  feefeffe feefeffe feefeffe feefeffe  
3ffff740:  feefeffe feefeffe feefeffe feefeffe  
3ffff750:  feefeffe feefeffe feefeffe feefeffe  
3ffff760:  feefeffe feefeffe feefeffe feefeffe  
3ffff770:  feefeffe feefeffe feefeffe feefeffe  
3ffff780:  feefeffe feefeffe feefeffe feefeffe  
3ffff790:  feefeffe feefeffe feefeffe feefeffe  
3ffff7a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff7b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff7c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff7d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff7e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff7f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff800:  feefeffe feefeffe feefeffe feefeffe  
3ffff810:  feefeffe feefeffe feefeffe feefeffe  
3ffff820:  feefeffe feefeffe feefeffe feefeffe  
3ffff830:  feefeffe feefeffe feefeffe feefeffe  
3ffff840:  feefeffe feefeffe feefeffe feefeffe  
3ffff850:  feefeffe feefeffe feefeffe feefeffe  
3ffff860:  feefeffe feefeffe feefeffe feefeffe  
3ffff870:  feefeffe feefeffe feefeffe feefeffe  
3ffff880:  feefeffe feefeffe feefeffe feefeffe  
3ffff890:  feefeffe feefeffe feefeffe feefeffe  
3ffff8a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff8b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff8c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff8d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff8e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff8f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff900:  feefeffe feefeffe feefeffe feefeffe  
3ffff910:  feefeffe feefeffe feefeffe feefeffe  
3ffff920:  feefeffe feefeffe feefeffe feefeffe  
3ffff930:  feefeffe feefeffe feefeffe feefeffe  
3ffff940:  feefeffe feefeffe feefeffe feefeffe  
3ffff950:  feefeffe feefeffe feefeffe feefeffe  
3ffff960:  feefeffe feefeffe feefeffe feefeffe  
3ffff970:  feefeffe feefeffe feefeffe feefeffe  
3ffff980:  feefeffe feefeffe feefeffe feefeffe  
3ffff990:  feefeffe feefeffe feefeffe feefeffe  
3ffff9a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff9b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff9c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff9d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff9e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff9f0:  feefeffe feefeffe feefeffe feefeffe  
3ffffa00:  feefeffe feefeffe feefeffe feefeffe  
3ffffa10:  feefeffe feefeffe feefeffe feefeffe  
3ffffa20:  feefeffe feefeffe feefeffe feefeffe  
3ffffa30:  feefeffe feefeffe feefeffe feefeffe  
3ffffa40:  feefeffe feefeffe feefeffe feefeffe  
3ffffa50:  feefeffe feefeffe feefeffe feefeffe  
3ffffa60:  feefeffe feefeffe feefeffe feefeffe  
3ffffa70:  feefeffe feefeffe feefeffe feefeffe  
3ffffa80:  feefeffe feefeffe feefeffe feefeffe  
3ffffa90:  feefeffe feefeffe feefeffe feefeffe  
3ffffaa0:  feefeffe feefeffe feefeffe feefeffe  
3ffffab0:  feefeffe feefeffe feefeffe feefeffe  
3ffffac0:  feefeffe feefeffe feefeffe feefeffe  
3ffffad0:  feefeffe feefeffe feefeffe feefeffe  
3ffffae0:  feefeffe feefeffe feefeffe feefeffe  
3ffffaf0:  feefeffe feefeffe feefeffe feefeffe  
3ffffb00:  feefeffe feefeffe feefeffe feefeffe  
3ffffb10:  feefeffe feefeffe feefeffe feefeffe  
3ffffb20:  feefeffe feefeffe feefeffe feefeffe  
3ffffb30:  feefeffe feefeffe feefeffe feefeffe  
3ffffb40:  feefeffe feefeffe feefeffe feefeffe  
3ffffb50:  00000002 400042db feefeffe feefeffe  
3ffffb60:  40004b31 3fff0a1c 00000040 003026c0  
3ffffb70:  4010689c feefeffe feefeffe feefeffe  
3ffffb80:  40211580 00000000 00000040 003026c0  
3ffffb90:  feefeffe feefeffe 3fff0a1c 4021160d  
3ffffba0:  feefeffe feefeffe feefeffe feefeffe  
3ffffbb0:  feefeffe feefeffe feefeffe feefeffe  
3ffffbc0:  00000002 400042db feefeffe feefeffe  
3ffffbd0:  00000005 00000000 00000020 40100274  
3ffffbe0:  00000005 00000000 00000005 401021b0  
3ffffbf0:  3ffe9d45 40105447 3ffed758 401021b0  
3ffffc00:  40102d3b 3ffed758 3ffed758 401021b0  
3ffffc10:  00000064 04e2c24f 3ffee088 40102f18  
3ffffc20:  00000005 00000000 00000020 40100274  
3ffffc30:  00000064 04e2c24f 00000005 401021b0  
3ffffc40:  3ffe9d45 40105447 3ffed758 3ffedec0  
3ffffc50:  40102d3b 3ffed758 3ffed758 000000fa  
3ffffc60:  00000000 00000000 00000020 40100274  
3ffffc70:  00000005 00000000 00000020 40100274  
3ffffc80:  00000005 00000000 00000005 401021b0  
3ffffc90:  00000000 00000000 0000001f 40100274  
3ffffca0:  40102d3b 3ffed758 3fffc228 40105ce1  
3ffffcb0:  4000050c 0554d2fd 3ffee088 40102f18  
3ffffcc0:  402109f0 00000030 00000010 ffffffff  
3ffffcd0:  402109e5 0000002f 00000013 00001450  
3ffffce0:  00000001 000000f0 00000000 fffffffe  
3ffffcf0:  40002ecc 3fffc6fc 00000001 00000010  
3ffffd00:  3ffef45c 00000007 00000000 00000030  
3ffffd10:  00000000 00000000 0000001f 40100274  
3ffffd20:  00000005 00000000 00000020 40100274  
3ffffd30:  4000050c 00000030 00000005 401021b0  
3ffffd40:  3ffe9d45 40105447 3ffed780 000000fd  
3ffffd50:  40102d3b 3ffed780 40105395 3ffedf08  
3ffffd60:  00007fff 05689fb5 3ffee088 40102f18  
3ffffd70:  3ffea5f0 00000000 00000000 401021b0  
3ffffd80:  00007fff 05689fb5 401033d2 00000100  
3ffffd90:  3ffea5f0 7fffffff 00002200 00000001  
3ffffda0:  00000001 00004a88 0000001f 40100274  
3ffffdb0:  3ffea5f0 00000000 3fffc228 05689fb5  
3ffffdc0:  3ffea5fc 2c9f0300 4000050c 3fffc278  
3ffffdd0:  401030f4 3fffc200 00000022 ffffffff  
3ffffde0:  40002ef1 00000030 00000010 ffffffff  
3ffffdf0:  40002ef1 b4e64efd 00000013 00000148  
3ffffe00:  00000004 3ffef460 00000001 fffffffe  
3ffffe10:  40002ecc 3fffc6fc 00000001 00000190  
3ffffe20:  b4e64da9 00000000 00000022 00000030  
3ffffe30:  40002ef1 b4d3d98e 00000013 00000b2c  
3ffffe40:  00000000 00000000 00000000 fffffffe  
3ffffe50:  40002ecc 3fffc6fc 00000001 00001090  
3ffffe60:  b4d3ce62 000002ed 3ffef740 00000030  
3ffffe70:  402109e5 00000010 3ffef45c 00000030  
3ffffe80:  402109b8 00000010 3ffef45c 40210aa9  
3ffffe90:  40210a5c 00000010 e0037005 40210aa9  
3ffffea0:  40210972 00000001 00000020 40210b0d  
3ffffeb0:  3fffff40 3ffef45c 00000008 00000009  
3ffffec0:  00000000 00000000 3ffe8618 00000005  
3ffffed0:  00000000 00002710 402132d6 3fffefb0  
3ffffee0:  00000009 00000001 3fffff20 40214868  
3ffffef0:  3fffff25 fffffffc 3fffff25 00000900  
3fffff00:  40211970 3fffff20 3ffef5c8 3ffef5c8  
3fffff10:  419c0000 40338000 3ffef5c8 40211d90  
3fffff20:  352e3931 00000030 3fffdad0 3ffef740  
3fffff30:  3fffdad0 00000000 3ffef43c 40211164  
3fffff40:  e4349c28 2b000008 3ffef43c 40210f7c  
3fffff50:  3fffdad0 00000000 3ffef5c8 40211dbd  
3fffff60:  3fffdad0 40338000 00000000 40206ce3  
3fffff70:  00000000 008f008f 00000000 00000000  
3fffff80:  00000000 00000000 3ffef4f4 40221287  
3fffff90:  00000000 00000000 3ffef4f4 3ffef740  
3fffffa0:  3fffdad0 00000000 3ffef714 3ffef740  
<<<stack<<<

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

 ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x4010f000, len 3424, room 16 
tail 0
chksum 0x2e
load 0x3fff20b8, len 40, room 8 
tail 0
chksum 0x2b
csum 0x2b
v00058a80
~ld

I was thinking it has something to do with the WebSocket functions. Before I put them on, I had no problems. And I noticed that the problem only happens when I open the client. If I don't open it, it doesn't happen.

This function worked fine before WebSocket functions.

Try running that dump through the exception decoder, as the message suggests.

I didn't know about this tool!! But it didn't work because esp restarts and doesn't record the error. This error appears only in the Monitor.

You would copy and paste it from the monitor to the exception decoder.

I need help to understand what happend

Decoding stack results
0x40210fae: DallasTemperature::blockTillConversionComplete(unsigned char) at D:\Documents\Arduino\libraries\DallasTemperature\DallasTemperature.cpp line 446
0x40206317: readTemperature() at D:\Documents\Arduino\controle_fermentacaoV6_Autom-OTA_V8/controle_fermentacaoV6_Autom-OTA_V8.ino line 133
0x40206467: getSensorReadings() at D:\Documents\Arduino\controle_fermentacaoV6_Autom-OTA_V8/controle_fermentacaoV6_Autom-OTA_V8.ino line 160
0x4022052c: memp_malloc at core/memp.c line 355
0x4021f55d: glue2esp_linkoutput at glue-esp/lwip-esp.c line 301
0x40100be0: malloc(size_t) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 912
0x4021f78f: new_linkoutput at glue-lwip/lwip-git.c line 272
0x4021fbee: ethernet_output at netif/ethernet.c line 312
0x40206874: handleWebSocketMessage(void*, unsigned char*, unsigned int) at D:\Documents\Arduino\controle_fermentacaoV6_Autom-OTA_V8/controle_fermentacaoV6_Autom-OTA_V8.ino line 200
0x4010085e: umm_free_core(umm_heap_context_t*, void*) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 642
0x402163a0: AsyncWebSocket::_handleEvent(AsyncWebSocketClient*, AwsEventType, void*, unsigned char*, unsigned int) at c:\users\mvrin\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\bits/std_function.h line 617
0x4021206d: String::invalidate() at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/WString.h line 363
0x40209818: AsyncWebSocketClient::_onData(void*, unsigned int) at D:\Documents\Arduino\libraries\ESPAsyncWebServer\src\AsyncWebSocket.cpp line 693
0x4010085e: umm_free_core(umm_heap_context_t*, void*) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 642
0x40208354: AsyncClient::_recv(std::shared_ptr&, tcp_pcb*, pbuf*, int) at D:\Documents\Arduino\libraries\ESPAsyncTCP\src/ESPAsyncTCP.h line 103
0x40207c76: AsyncClient::_sent(std::shared_ptr&, tcp_pcb*, unsigned short) at D:\Documents\Arduino\libraries\ESPAsyncTCP\src/ESPAsyncTCP.h line 103
0x402083b4: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, int) at c:\users\mvrin\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\bits/shared_ptr_base.h line 1324
0x40207e78: AsyncClient::_s_sent(void*, tcp_pcb*, unsigned short) at c:\users\mvrin\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\bits/shared_ptr_base.h line 1183
0x40223845: tcp_input at core/tcp_in.c line 501
0x40224afc: lwip_cyclic_timer at core/timeouts.c line 241
0x40100be0: malloc(size_t) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 912
0x4022049d: mem_malloc at core/mem.c line 210
0x402287a5: ip4_input at core/ipv4/ip4.c line 1467
0x4022049d: mem_malloc at core/mem.c line 210
0x4010085e: umm_free_core(umm_heap_context_t*, void*) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 642
0x4021fb61: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x4021f974: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 118
0x40248431: ethernet_input at glue-esp/lwip-esp.c line 365
0x40248443: ethernet_input at glue-esp/lwip-esp.c line 373
0x401000ab: app_entry_redefinable() at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\core_esp8266_main.cpp line 386
0x402115a0: EspClass::flashRead(unsigned int, unsigned int*, unsigned int) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\Esp.cpp line 932
0x4021162d: EspClass::flashRead(unsigned int, unsigned char*, unsigned int) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\Esp.cpp line 911
0x40100274: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\core_esp8266_main.cpp line 238
0x402115a0: EspClass::flashRead(unsigned int, unsigned int*, unsigned int) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\Esp.cpp line 932
0x4021162d: EspClass::flashRead(unsigned int, unsigned char*, unsigned int) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\Esp.cpp line 911
0x40100274: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\core_esp8266_main.cpp line 238
0x40100274: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\core_esp8266_main.cpp line 238
0x40214fa4: run_scheduled_recurrent_functions() at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/core_esp8266_features.h line 64
0x40210a05: OneWire::write_bit(unsigned char) at D:\Documents\Arduino\libraries\OneWire\OneWire.cpp line 216
0x40210ac9: OneWire::write(unsigned char, unsigned char) at D:\Documents\Arduino\libraries\OneWire\OneWire.cpp line 254
0x40210ac9: OneWire::write(unsigned char, unsigned char) at D:\Documents\Arduino\libraries\OneWire\OneWire.cpp line 254
0x402132f6: __yield() at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/core_esp8266_features.h line 64
0x40210fae: DallasTemperature::blockTillConversionComplete(unsigned char) at D:\Documents\Arduino\libraries\DallasTemperature\DallasTemperature.cpp line 446
0x40206317: readTemperature() at D:\Documents\Arduino\controle_fermentacaoV6_Autom-OTA_V8/controle_fermentacaoV6_Autom-OTA_V8.ino line 133
0x40210a05: OneWire::write_bit(unsigned char) at D:\Documents\Arduino\libraries\OneWire\OneWire.cpp line 216
0x40206467: getSensorReadings() at D:\Documents\Arduino\controle_fermentacaoV6_Autom-OTA_V8/controle_fermentacaoV6_Autom-OTA_V8.ino line 160
0x402109d8: OneWire::write_bit(unsigned char) at D:\Documents\Arduino\libraries\OneWire\OneWire.cpp line 208
0x40210ac9: OneWire::write(unsigned char, unsigned char) at D:\Documents\Arduino\libraries\OneWire\OneWire.cpp line 254
0x40210a7c: OneWire::read_bit() at D:\Documents\Arduino\libraries\OneWire\OneWire.cpp line 241
0x40210ac9: OneWire::write(unsigned char, unsigned char) at D:\Documents\Arduino\libraries\OneWire\OneWire.cpp line 254
0x40210992: OneWire::reset() at D:\Documents\Arduino\libraries\OneWire\OneWire.cpp line 191
0x40210b2d: OneWire::read() at D:\Documents\Arduino\libraries\OneWire\OneWire.cpp line 284
0x402132f6: __yield() at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/core_esp8266_features.h line 64
0x40214888: uart_write(uart_t*, char const*, size_t) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\uart.cpp line 547
0x40211990: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/HardwareSerial.h line 193
0x40211db0: Print::printNumber(double, unsigned char) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\Print.cpp line 269
0x40214888: uart_write(uart_t*, char const*, size_t) at C:\Users\mvrin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\uart.cpp line 547
0x40211184: DallasTemperature::getTempCByIndex(unsigned char) at D:\Documents\Arduino\libraries\DallasTemperature\DallasTemperature.cpp line 587
0x40206ca8: loop() at D:\Documents\Arduino\controle_fermentacaoV6_Autom-OTA_V8/controle_fermentacaoV6_Autom-OTA_V8.ino line 420
0x402212a7: tcp_listen_with_backlog at core/tcp.c line 829

That dump is a traceback, showing you the entire sequence of events led to the exception.

Take a look at identified program lines in your code to see what was being done, which in turn violated some memory bound.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.