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
Tags:
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!!!
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...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por