[RESOLVIDO] ESP8266 como webserver - problema ao atualizar a página web - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T08:10:39Zhttps://labdegaragem.com/forum/topics/help-esp8266-como-webserver-problema-ao-atualizar-a-p-gina-web?commentId=6223006%3AComment%3A668575&xg_source=activity&feed=yes&xn_auth=noO bom de saber onde erramos é…tag:labdegaragem.com,2018-05-02:6223006:Comment:6694012018-05-02T15:24:44.134ZMarco Antonio Proençahttps://labdegaragem.com/profile/MarcoAntonioProenca
<p>O bom de saber onde erramos é que reduzimos o risco de cometer o exato mesmo erro ^^</p>
<p>O uso de bibliotecas facilita e reduz a "quantidade de programação", mas algumas bibliotecas trazem muitos recursos que não usamos e aumenta o tamanho do programa final, o que é ruim quando chegamos no limite de memória (fácil de acontecer com nossos pequenos microcontroladores). Porem, enquanto espaço não é o problema, os benefícios são maiores ;)</p>
<p></p>
<p>Até a próxima!</p>
<p>O bom de saber onde erramos é que reduzimos o risco de cometer o exato mesmo erro ^^</p>
<p>O uso de bibliotecas facilita e reduz a "quantidade de programação", mas algumas bibliotecas trazem muitos recursos que não usamos e aumenta o tamanho do programa final, o que é ruim quando chegamos no limite de memória (fácil de acontecer com nossos pequenos microcontroladores). Porem, enquanto espaço não é o problema, os benefícios são maiores ;)</p>
<p></p>
<p>Até a próxima!</p> Pessoal, muito obrigada a tod…tag:labdegaragem.com,2018-05-02:6223006:Comment:6691382018-05-02T14:56:12.307ZAlessandrahttps://labdegaragem.com/profile/Alessandra
<p>Pessoal, muito obrigada a todos que colaboraram com a solução deste tópico!!!</p>
<p>Após várias hipóteses, o Marco identificou o problema que era o comando break; após a chamada da função LerDados(); Isso impedia o programa de reiniciar o index "req_index = 0" e de limpar o buffer "StrClear(HTTP_req, REQ_BUF_SZ)", então "HTTP_req" sempre continha ajax_LerDados após a primeira requisição e quando se dava um refresh na página, ela já recebia os dados, sem o html da página.</p>
<p>Mas o Marcos…</p>
<p>Pessoal, muito obrigada a todos que colaboraram com a solução deste tópico!!!</p>
<p>Após várias hipóteses, o Marco identificou o problema que era o comando break; após a chamada da função LerDados(); Isso impedia o programa de reiniciar o index "req_index = 0" e de limpar o buffer "StrClear(HTTP_req, REQ_BUF_SZ)", então "HTTP_req" sempre continha ajax_LerDados após a primeira requisição e quando se dava um refresh na página, ela já recebia os dados, sem o html da página.</p>
<p>Mas o Marcos postou um código que executa a mesma função de servidor com a biblioteca "ESP8266WifiServer.h" que, na minha opinião, melhora bastante o programa. Então acabei implementando dessa forma.</p>
<p>O tópico está RESOLVIDO!</p> Oi Marco, era isso mesmo! Aca…tag:labdegaragem.com,2018-05-02:6223006:Comment:6693102018-05-02T14:48:18.389ZAlessandrahttps://labdegaragem.com/profile/Alessandra
<p>Oi Marco, era isso mesmo! Acabei de fazer o teste e foi só retirar o break; após a chamada LerDados(client); Eu mudei a posição do script na página web e não surtiu nenhum efeito.</p>
<p>De qualquer forma, eu implementei o código com a biblioteca ESP8266WebServer.h pois facilita e reduz bem o programa, mas agora sei porque não estava funcionando anteriormente.</p>
<p></p>
<p>Valeu mesmo!!!</p>
<p>Oi Marco, era isso mesmo! Acabei de fazer o teste e foi só retirar o break; após a chamada LerDados(client); Eu mudei a posição do script na página web e não surtiu nenhum efeito.</p>
<p>De qualquer forma, eu implementei o código com a biblioteca ESP8266WebServer.h pois facilita e reduz bem o programa, mas agora sei porque não estava funcionando anteriormente.</p>
<p></p>
<p>Valeu mesmo!!!</p> Oi Alessandra,
Perdoa-me imen…tag:labdegaragem.com,2018-04-26:6223006:Comment:6687002018-04-26T19:22:07.622ZMarco Antonio Proençahttps://labdegaragem.com/profile/MarcoAntonioProenca
<p>Oi Alessandra,</p>
<p>Perdoa-me imenso, o CELSO esta correto! A posição do script não causa o processamento incorreto, apenas a ordem em que o script e página são carregados.</p>
<p>Não estou certo sobre o que me confundiu antes, mas revisando o teu código agora vi que o problema esta apenas na existência do break após LerDados(client) que impede o programa de reiniciar o index "req_index = 0" e a limpar o buffer "StrClear(HTTP_req, REQ_BUF_SZ)" por isso HTTP_req sempre continha…</p>
<p>Oi Alessandra,</p>
<p>Perdoa-me imenso, o CELSO esta correto! A posição do script não causa o processamento incorreto, apenas a ordem em que o script e página são carregados.</p>
<p>Não estou certo sobre o que me confundiu antes, mas revisando o teu código agora vi que o problema esta apenas na existência do break após LerDados(client) que impede o programa de reiniciar o index "req_index = 0" e a limpar o buffer "StrClear(HTTP_req, REQ_BUF_SZ)" por isso HTTP_req sempre continha ajax_LerDados após a primeira requisição.</p>
<p></p>
<p>A proposta do MPS de usar a classe ESP8266WebServer é boa, já que você só precisa tratar o que vem depois do endereço, exemplo: "server.on(/ajax_LerDados)", o resto já é tratado pela classe.</p> Eu também não entendo muito d…tag:labdegaragem.com,2018-04-26:6223006:Comment:6683962018-04-26T17:38:42.237ZMarco Antonio Proençahttps://labdegaragem.com/profile/MarcoAntonioProenca
<p>Eu também não entendo muito de html e aproveito para aprender com as nossas duvidas. ;)</p>
<p>Eu também não entendo muito de html e aproveito para aprender com as nossas duvidas. ;)</p> Olá Alessandra,
O problema nã…tag:labdegaragem.com,2018-04-26:6223006:Comment:6683922018-04-26T15:27:14.009ZCurti Esse Lado Seu Otimistahttps://labdegaragem.com/profile/eijuito
Olá Alessandra,<br />
O problema não é por causa da posição que colocou o script.<br />
Por exemplo: a maioria dos exemplos do JQuery e Bootstrap possuem o script declarados no final do código html, dentro do<br />
Voce deve entender a tag
Olá Alessandra,<br />
O problema não é por causa da posição que colocou o script.<br />
Por exemplo: a maioria dos exemplos do JQuery e Bootstrap possuem o script declarados no final do código html, dentro do<br />
Voce deve entender a tag Pode ser isso sim Marco Anton…tag:labdegaragem.com,2018-04-26:6223006:Comment:6685852018-04-26T13:25:53.616ZAlessandrahttps://labdegaragem.com/profile/Alessandra
<p>Pode ser isso sim Marco Antonio, farei esse teste.</p>
<p>Obrigada pela dica!</p>
<p>Pode ser isso sim Marco Antonio, farei esse teste.</p>
<p>Obrigada pela dica!</p> Olá Marco Antonio,
pode ser s…tag:labdegaragem.com,2018-04-26:6223006:Comment:6685842018-04-26T13:15:25.136ZAlessandrahttps://labdegaragem.com/profile/Alessandra
<p>Olá Marco Antonio,</p>
<p>pode ser sim, pois o código HTML que o Marcos forneceu, está com o JavaScript fora do body. Isso foi uma falta de atenção minha ao manipular a página, pois peguei um código pronto como base, que está estruturado como você sugeriu, mas, como não entendo de programação web, eu não percebi essa mudança quando fiz as alterações. Farei esse teste assim que puder, pois agora estou sem o roteador.</p>
<p>Obrigada pela dica!</p>
<p>Olá Marco Antonio,</p>
<p>pode ser sim, pois o código HTML que o Marcos forneceu, está com o JavaScript fora do body. Isso foi uma falta de atenção minha ao manipular a página, pois peguei um código pronto como base, que está estruturado como você sugeriu, mas, como não entendo de programação web, eu não percebi essa mudança quando fiz as alterações. Farei esse teste assim que puder, pois agora estou sem o roteador.</p>
<p>Obrigada pela dica!</p> o problema não era na localiz…tag:labdegaragem.com,2018-04-26:6223006:Comment:6687092018-04-26T13:04:33.847ZMarco Antonio Proençahttps://labdegaragem.com/profile/MarcoAntonioProenca
<p>o problema não era na localização do java script, que estava no body fazendo com que o o browser se perdesse ao executar oi refresh?</p>
<p>o problema não era na localização do java script, que estava no body fazendo com que o o browser se perdesse ao executar oi refresh?</p> Olá Marcos, muito obrigada po…tag:labdegaragem.com,2018-04-26:6223006:Comment:6686892018-04-26T11:28:24.288ZAlessandrahttps://labdegaragem.com/profile/Alessandra
<p>Olá Marcos, muito obrigada por sua ajuda, parece que você resolveu o problema! rs</p>
<p>Eu vou testar a sua lógica, mas agora levaram meu roteador hahaha assim que conseguir testar eu já atualizo o tópico como RESOLVIDO.</p>
<p>Vi que você alterou bastante o código, está tratando com outras funções. Achei muito interessante, mas como eu disse, não tenho muito conhecimento de servidores, então vou ficar estudando as funções aqui por enquanto.</p>
<p>Na verdade, esse projeto foi feito…</p>
<p>Olá Marcos, muito obrigada por sua ajuda, parece que você resolveu o problema! rs</p>
<p>Eu vou testar a sua lógica, mas agora levaram meu roteador hahaha assim que conseguir testar eu já atualizo o tópico como RESOLVIDO.</p>
<p>Vi que você alterou bastante o código, está tratando com outras funções. Achei muito interessante, mas como eu disse, não tenho muito conhecimento de servidores, então vou ficar estudando as funções aqui por enquanto.</p>
<p>Na verdade, esse projeto foi feito incialmente no Arduino, por isso está com duas variáveis analógicas, mas na versão final, as informações virão pela serial.</p>
<p></p>
<p>Valeu mesmo!!!</p>