RESOLVIDO! problema Web Server alocado na memória interna!

Bom Dia Galera;

estou precisando de uma ajuda com web server alocado na memoria do arduino. (ocupando muita memória)

minha duvida é existe uma forma de liberar memória após realizar o client.print?

inicialmente eu achei que ele guardasse o texto na memória de programas, e ao executar ele carregaria na RAM mas já liberasse em seguida!

mas não é o que ocorre... segue uma breve descrição da situação toda

tenho um sistema montado que é acessado e comandado via HTML e JS, a pagina que criei fica alocada no SD. está funcionando até que bem,

o problema é que dificilmente consigo carregar a HP via 3G (se a pagina estiver aberta o comando funciona, mas se tiver que carregar a pagina dá erro!)

pensei em alocar a pagina dentro do Sketch, utilizando client.println para reduzir o delay causado na leitura do SD

client.println("<!DOCTYPE html>");
client.println("<html>");
client.println("<head>");

...

comecei colocando a pagina inteira... achei vários erros de sintaxe, então comecei a inserir o código linha a linha e testando, e sempre dava erro ao colocar aproximadamente umas 30 linhas

habilitei a função freeMemory() e vi que antes de travar resta apenas cerca de 300B de memória

Exibições: 910

Responder esta

Respostas a este tópico

O unico meio de liberar memória no Arduino que eu imagino, é retirando o espaço alocado 

para o bootloader.

Mas assim vai ter que usar um outro metodo para gravar o seu programa no processador.

Entendi errado...

Achei que estava faltando espaço na memória.

Resolvido....  

Pessoal o que eu estava pensando em fazer, não é necessário, o problema não está no delay de leitura do SD e sim no timeout do ethernet no arduino...

desta forma adicionando as seguintes linhas é possível ajustar este timeout

#include <utility/w5100.h>

// logo após o Ethernet.begin inclua:

W5100.setRetransmissionTime(2000);
W5100.setRetransmissionCount(3);

PS:

Agradeimentos ao Gabriel Yoshiaki Hotta que foi quem me deu a dica!!!

mas continua usando o HTML no sd ????

sim a pagina continua no SD

Muito bom. Tive o mesmo problema que tinha resolvido com uma página PHP com servidor externo, mas dessa forma é muito mais prático. Obrigado pela dica.

o problema do PHP é que vc fica preso a um servidor e acesso a WEB

o meu problema e como recebo os dados de sensores no HTML do sd

Millencolinhc, é exatamente esse o problema. A programação em PHP é bem mais completa que a simples "formatação" do HTML, mas se usarmos somente o HTML o próprio arduino será o servidor necessário.

fredsant, talvez essa não seja a melhor maneira. Use o método de fazer o arduino ler o que está "sobrando" no endereço depois de cada ação na página criada, por exemplo, após pressionar um botão você é encaminhado da página www.labdegaragem.com.br para www.labdegaragem.com.br/botao.

Quando isso acontecer o arduino toma uma certa atitude, como acender uma lâmpada ou enviar sinal para um relé.

mas no meu projecto preciso de essa comunicação o facto de ter o código HTML no sd facilita muito devido ao tamanho e ao tamanho da programação todo do arduino assim podia ter as duas coisas separadas mas interligadas .

fredsant... se sus duvida é como fazer a comunicação entre o PC e o arduino usando HTML no SD, de uma olhada neste link... está em inglês mas é bem completo e didático.

http://startingelectronics.com/tutorials/arduino/ethernet-shield-we...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço