Json com mais ou menos 6000 bytes salvar

Tenho este codigo abaixo onde consigo inserir uma lista de até 20 posições que me da uns 5000 bytes. Tenho livre no esp 31400 bytes ao tentar salvar uma lista com 24 posiç~eos ao deserializar meu json retorna zerado.

void lerJsonBanco( ) {
 
  Serial.println("executarConsulta");
  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.setAuthorization("dosadora", "@sarosinc");
    http.addHeader("Content-Type", "application/json");
  
    int httpResponseCode = http.GET();  // Faz a requisição GET
  
    Serial.print("httpResponseCode: ");
    Serial.println(httpResponseCode);
  
    if (httpResponseCode > 0) {

        WiFiClient *stream = http.getStreamPtr();
        
        DynamicJsonDocument doc(16384);  // 16KB
        DeserializationError error = deserializeJson(doc, *stream);

        if (error) {
          Serial.println("Erro ao desserializar JSON");
          enviarLogParaDB("Loop", "Erro ao carregar JSON - Pode ser que estourou a memória. Diminua o campo Doses dia e desligue e ligue a dosadora " + String(error.c_str()), "alto");
          return;
      }else{
          Serial.println("✅ JSON recebido e desserializado com sucesso!");
          JsonArray outerArray = doc.as<JsonArray>();

          for (JsonArray innerArray : outerArray) {
            for (JsonObject item : innerArray) {

              
                String comando = item["comando"];
                int codBomba = item["idbomba"];
                String json = item["jsonstring"];
                Serial.print("Tamanho do JSON: ");
                Serial.println(json.length());

                
                String path = "/" + String(codBomba) + ".json";
        
                if (comando == "dosar-manual") {
                    double dosagem = item["dosagem"];
                    double calibracao = item["calibracao"];
                    dosarManual(codBomba, dosagem, calibracao);
                    apagarComandos(email, senha, "dosar-manual", codBomba);
                } else if (comando == "agendamento") {
                  LittleFS.remove(path);
                  File file = LittleFS.open(path, "w");
                  if (!file) {
                      enviarLogParaDB("Loop", "Erro ao abrir o arquivo para escrita!", "alto");
                      continue;
                  }

                  int length = json.length();
                  Serial.println("length");
                  Serial.println(length);
                  file.print(json);
                  file.close();
                  apagarComandos(email, senha, "agendamento", codBomba);
                  if (debugMode) Serial.println("✅ JSON salvo no LittleFS com sucesso!");
                } else if (comando == "calibrar") {
                    calibrar(codBomba);
                    apagarComandos(email, senha, "calibrar", codBomba);
                }
            }
        }
      }

        
    } else {
      Serial.println("Erro HTTP");
    }
  
    http.end();  // Finaliza a requisição e libera a memória
  
    client.stop();  // Libera recursos do WiFiClient
  
    delay(10);  // Pequeno delay para estabilizar o sistema
  
    printMemoryStatus("Fim da consulta");
}

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