Ajuda com código pagina HTML não carrega ESP+Arduino - estouro de memoria

Boa tarde a todos

Estou tendo problemas com a elaboração de uma pagina para controlar uma automation board+ESP-01  com RTC.

 Com ajuda do Imhugo aprendi como recarregar a pagina com META TAG, mas não consigo fazer a meta tag refresh funcionar quando junto um exemplo que tenho de pagina de controle da automation board com a parte do RTC, o interessante é que funciona separadamente.

outro ponto que quando coloco o titulo a pagina ela para de funcionar 

webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";

ja tentei deixar  só esse trecho como titullo mas o erro persiste

webpage += "<h2>Web Server com ESP8266 e AutomationBoard</h2>";

agora quando comento essas duas linhas pagina funciona normalmente

Em anexo o código funcional mas com a meta tag e o titulo comentado, já fiz de tudo e não acho o motivo do erro.

 

Exibições: 1507

Anexos

Responder esta

Respostas a este tópico

Vamos tentar cercar as diversas possibilidades que poderiam estar causando o problema.

Faça por gentileza os testes abaixo. Anote num papel o resultado que vc obteve e depois nos retorne.

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

TESTE 1 - Substitua o seguinte trecho do seu sketch:

webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";

Por:

webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";

Resultado esperado: exibição do LOGO ok

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

TESTE 2 - Substitua o seguinte trecho do seu sketch:

webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";

Por:

webpage += "<br>BLA BLA BLA<br>";

Resultado esperado: exibição do título "BLA BLA BLA" sem formatação alguma

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

TESTE 3 - Substitua o seguinte trecho do seu sketch:

webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";

Por:

webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";

webpage += "<br>BLA BLA BLA<br>";

Resultado esperado: exibição do LOGO, bem como do título "BLA BLA BLA" sem formatação alguma

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

TESTE 4 - Substitua o seguinte trecho do seu sketch:

webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";

Por:

webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";

webpage += "<br><div style='font-weight: bold; font-size: 2em;'>Web Server com ESP8266 e AutomationBoard</div><br>";

Resultado esperado: exibição do LOGO, bem como do título com formatação conforme o estilo (negrito e tamanho de fonte maior)

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

TESTE 5 - Substitua o seguinte trecho do seu sketch:

webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";

Por:

webpage += "<br><div style='font-weight: bold; font-size: 2em;'>Web Server com ESP8266 e AutomationBoard</div><br>";

Resultado esperado: sem exibição do LOGO, mas apenas do título com formatação conforme o estilo (negrito e tamanho de fonte maior)

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

Imhugo, obrigado novamente, demorou um pouco mas fiz os novos testes,  segue abaixo os resultados

TESTE 1 - Substitua o seguinte trecho do seu sketch:
webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";
Por:
webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
Resultado esperado: exibição do LOGO ok

Resultado: A conexão com 192.168.0.142 foi recusada.

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
TESTE 2 - Substitua o seguinte trecho do seu sketch:
webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";
Por:
webpage += "<br>BLA BLA BLA<br>";
Resultado esperado: exibição do título "BLA BLA BLA" sem formatação alguma

Resultado: A conexão com 192.168.0.142 foi recusada.

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
TESTE 3 - Substitua o seguinte trecho do seu sketch:
webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";
Por:
webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br>BLA BLA BLA<br>";
Resultado esperado: exibição do LOGO, bem como do título "BLA BLA BLA" sem formatação alguma

Resultado: A conexão com 192.168.0.142 foi recusada.

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
TESTE 4 - Substitua o seguinte trecho do seu sketch:
webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";
Por:
webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><div style='font-weight: bold; font-size: 2em;'>Web Server com ESP8266 e AutomationBoard</div><br>";
Resultado esperado: exibição do LOGO, bem como do título com formatação conforme o estilo (negrito e tamanho de fonte maior)

Resultado: piscou os pinos rx tx contudo apareceu a mensagem de erro; A conexão com 192.168.0.142 foi recusada.


=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
TESTE 5 - Substitua o seguinte trecho do seu sketch:
webpage += "<img src=\"http://goo.gl/IoorRu\" width=\"250\">";
webpage += "<br><br><h2>Web Server com ESP8266 e AutomationBoard</h2><br>";
Por:
webpage += "<br><div style='font-weight: bold; font-size: 2em;'>Web Server com ESP8266 e AutomationBoard</div><br>";
Resultado esperado: sem exibição do LOGO, mas apenas do título com formatação conforme o estilo (negrito e tamanho de fonte maior)

Resultado: aguardando 192.168.0.142 ... e não carrega


=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

Em nenhum deles funcionou infelizmente, como teste final comentei o trecho inserido e o código voltou a carregar.

Ta sendo um teste de paciência rsrs

se não conseguir fazer funcionar, estou aberto a sugestões para outra tecnica.

teria como eu inserir o html direto, sem o "webpage+=" nesse sketch?

Tiago, frustrante demais nenhum dos testes nos fornecer ao menos uma pista.

eu realmente não vejo por que desse problema ocorrer por causa dessas duas linhas.
Quando vc faz upload desse sketch, a IDE acusa algo sobre o quase esgotamento de memória?
Desconheço outra maneira de preparar o output html que não seja dessa maneira que vc está fazendo, mas já passei por situação onde havia a utilização quase total da memória pelo sketch no arduino uno e a troca pelo arduino mega me resolveu o travamento

frustante mesmo, tenho uma breve noçao, para ver q não tem erro,.

durante o carregamento consumiu 39% de armazenamento e 54% da memoria dinamica.

uma outra alternativa q estou estudando, seria programar o esp para controlar o arduino, ja q o mesmo possui mais memoria, mas o o meu esp-01 esta sem o node-mcu

Estou só com tablet aqui, então não tem como acessar seu arquivo INO, mas ali no seu sketch, teste arrancar fora (comentar) aquela parte que faz exibir as horas, assim como aquela parte que prepara a formatação da data, que está logo na linha anterior

Então, é justamente esse o problema, se eu tiro a hora funciona.

Se tirar as horas e incluir aquelas duas linhas que eu pedi pra vc substituir nos 5 testes, Funciona?

Sem as horas  funciona, abaixo o print do teste 3;

Então surgiu uma luz no seu problema... o trecho do código problemático é aquele que manipula a data/hora.

Fiz uma pequena alteração no seu código originalmente postado nesse tópico. Postei no PASTEBIN AQUI

Ao invés de sprintf, manipulei as horas de uma maneira mais simples.

Não tive como testar aqui, então talvez haja pequenos erros no código, mas se houver, são facilmente consertáveis.

Veja se funciona dessa maneira mais simples, se funcionar, vc aprimora o código para que os números da hora/minutos/segundos apareçam sempre com dois dígitos

tentei aqui, para conseguir  gravar tive q fazer uma pequena alteração estava dando erro de index depois do now.minute().

DateTime now = rtc.now();
String horas = "";
horas += now.hour();
horas += ":";
horas += now.minute();
horas += ":";
horas += now.second();

contudo tambem não foi, mas não sei se foi por causa da minha modificação

Já tinha tentado uma alternativa similar sugeria pelo Jose Augusto Cintra, mas no final a unica coisa que havia feito funcionar era  utilizar o CHAR e Sprintf, só que com essa solução infelizmente por algum motivo não é possível exibir o cabeçalho da pagina.

abaixo o tópico que havia levantado o problema de como exibir hora em html

[Resolvido] Duvida - Como exibir hora do RTC DS1307 na pagina exibi...

amigo, me surgiu aqui uma idéia nova.

Substitua por favor o seguinte trecho:


String webpage = "";

webpage += "<html><head></head><body><center>"; //"<html><head><meta http-equiv='refresh' content='10'></head><body><center>"; //trecho com meta tag trava a pagina somado ao sprintf da hora

Por esse:


String webpage = "";

webpage += "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd' >";

webpage += "<html><head><meta http-equiv='refresh' content='10'></head><body><center>";

E também tente fazer exibir as horas, conforme vc já sabe exibir.

Essa idéia trata basicamente de explicitar o doctype da sua página, serve a grosso modo pra dizer ao browser qual regra vc está usando pra escrever teu código html

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço