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

Imhugo, acho que entendi a solução, ela faz sentido, testarei amanha cedo, fiquei sem meu note agora a tarde, fico na expectativa que certo.

Fiz varios testes

mas fiquei sem muito tempo para fazer outros mais agora cedo,

com o trecho baixo não carrega, testei sem a hora só inserindo esse trecho para ver se funcionava

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

com a hora mas sem a meta-tag e o titulo funcionou com   webpage += "<!DOCTYPE html>";

quando coloco o trecho abaixo tambem funciona sem a meta tag 

sprintf( hora, "%02d:%02d:%02d", now.hour(), now.minute(), now.second() ); // converte char hora em string 01:01:01
webpage += "<h3>";
webpage += String(hora);// imprime a string hora na pagina
webpage += "</h3>";

mas na hora que complemento com meta-tag não carrega, não tive tempo o para testar se carrega com o titulo

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

farei mais testes a noite.

vamos tentar insistir na questão da sintaxe de tags html mais um pouco.

pegue seu sketch originalmente postado nesse tópico.

repare que na maioria das vezes, quando vc abre uma tag html, vc fecha mais adiante. Exemplos:

* inicia com <html> e termina com </html>

* inicia com <body> e termina com </body>

* inicia com <h2> e termina com </h2>

* inicia com <a> e termina com </a>

Mas há algumas tags html que não possuem fechamento; não foi erro seu, fique bem claro, elas simplesmente não existem mesmo. Exemplos:

* <br>

* <meta>

* <img>

 

Pois bem, nessas tais tags que não possuem fechamento, há uma determinada regra de DOCTYPE que preconiza finalizar a tag com uma barra simples. Exemplo: ao invés de <br>, a regra diz pra escrever <br />

Ao invés de

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

Experimento usar:

webpage += "<img src='http://goo.gl/IoorRu' width='250' />"; // repare na barra ali quase no final da linha

Então experimente fazer isso: onde há tais tags que não possuem fechamento, coloque a barra no final. São as tags <meta>, <br> e <img>. Faça isso usando como base seu sketch originalmente postado nesse tópico

Fiz novos testes, o unico que funcionou normalmente sem a necessidade do !DOCTYPE, foi o trecho abaixo,

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

deixei o trecho abaixo ativado para ver se era ele o motivo do erro, mas não é ele o motivo do erro da exibição.

sprintf( hora, "%02d:%02d:%02d", now.hour(), now.minute(), now.second() );  

contudo são exclusivamente  os headers e os paragrafos que  estão gerando erro para o carregamento da pagina, dentro da tag <center>, o interessante é que  dentro da tag <a href > possui headers, mas estes funcionam normalmente.

estou desde cedo fazendo vários testes, acho que o problema estaria entre essas partes abaixo, pois tudo que faço dentro deles da problema rsrsrs.

String webpage = "";

webpage += "<html><head></head><body><center>"; //

webpage += "</center></body></html>";

O bom que estou aprendendo melhor a logica do uso das tags do html, só não entendo o conflito que esta dando neste código, esta sendo um desafio enorme fazer algo simples rsrs

cara, está parecendo então que a sintaxe exigida precisa seguir rigorosamente as regras.

Sugiro arrancar fora a tag <center> e </center>, pois já são considerados obsoletos (deprecated).

substitua o:

<center>

por:

<div style='text-align: center; width: 100%; margin-left: auto; margin-right: auto;'>

e depois o fechamento da antiga tag </center>, obviamente precisa ser mudado pra </div>

E se vc desconfia que a tag <h3> é quem esteja dando problema, retira ela e teste. Tire a <h3> e seu fechamento </h3>

Ou se vc quiser, substitua a tag <h3> por <div style='font-size: 2em; font-weight: bold;'> e depois feche com </div>

Gostaria de ver o sketch que levou ao funcionamento mais próximo do esperado nesses seus testes (coloca no pastebin pois fica melhor)

Imhugo, boa noite, essa semana o serviço apertou e fiquei com pouco tempo, mas gostei da sua sugestão, o center é um metodo antigo mesmo, farei os testes.

abaixo o codigo que funcionou

http://pastebin.com/ek0PcqQw

Imhugo, fiz mais testes seguindo sua sugestão, fiz as substituições e consegui fazer algumas coisas funcionarem, no entanto tive que  sacrificar os botões para o teste,  agora eu não sei informar com precisão se é erro de programação ou estouro de memoria, pois o código só funciona se eu manter memoria dinâmica próximo de 50%, se ficar acima de 53% ja não funciona, mas se eu tomo esse cuidado, quase toda suas sugestões funcionam., com exceção da meta-tag refresh.

abaixo o codigo testado funcionando, acredito que vou ter que estudar em como diminuir mais esse programa para deixa-lo apto, 

http://pastebin.com/CyMTByhw

Eu acredito que seu insucesso nesses últimos testes se devam ao uso incorreto da sintaxe

Veja a correção aqui no pastebin.

Mantive somente o trecho que comporá a string webpage. Retire do seu sketch o trecho problemático e Incorpore esse que coloquei no pastebin

Da forma como você postou funcionou com refresh, ficou bom, mas só funcionou sem a hora e sem os botões, fiz a alteração do botão usando div style, funcionou, mas sem o titulo e a hora e o refresh rsrs. A hora funcionou, mas sem o botão e o titulo rsrs

Mas o que eu estou achando é que o arduino não da conta de rodar o código inteiro, pois tudo que você passou até o momento esta correto, esta muito frustante isso, sempre quando acho que vai dar certo pifa.

Não teria como eu fazer este código rodar direto no ESP, usando a automation board como uma expansão de portas do ESP-01.

Segue o trecho que funcionou certinho  http://pastebin.com/qK3PjS32

Essa vou ter que passar, não sei mais como ajudar, nem em relação ao código, nem em relação a programar diretamente no ESP

Imhugo, muito obrigado pela ajuda, agradeço imensamente pela paciência e determinação.  Foi muito valido pois aprendi como funciona  a estrutura do html e sua integração com arduino, acho que fizemos o possível neste caso.

muito obrigado novamente

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço