Como liberar a memória no meu código?

Tenho este codigo abaixo e tenho uma placa esp8266 antes de entrar nele em media tenho 40000 bytes e após executar o http cai para 17000. Já troquei para Mqtt e é o mesmo consumo de memória.
Estou verificando o codigo no looping e se entrou não chama mais a função executarConsulta mas a memoria usando getFreeHeap não volta aos 40000 bytes. Notei que para voltar preciso disconectar da internet a placa. Existe outra forma melhor?

void executarConsulta(int bombaID) {
 
  Serial.println("executarConsulta");
  Serial.println("bombaID");
  Serial.println(bombaID);


    // Simula a criação do URL
    String url = String(serverApi) + "?email=" + email + "&senha=" + senha;

    // Inicia a requisição HTTP
    http.begin(client, url);
    http.addHeader("Content-Type", "application/json");
    http.addHeader("Connection", "keep-alive");
  
    int httpResponseCode = http.GET();  // Faz a requisição GET
  
    Serial.print("httpResponseCode: ");
    Serial.println(httpResponseCode);
  
    if (httpResponseCode > 0) {
      Serial.println("Resposta: " + http.getString());
    } else {
      Serial.println("Erro HTTP");
    }
  
    http.end();  // Finaliza a requisição e libera a memória

    // Chama uma função para forçar a coleta de lixo (coletando memória não utilizada)
    yield();  // Força a liberação de memória e evita que o ESP8266 trave
  
    printMemoryStatus("Fim da consulta");
}

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