Boa tarde Pessoal,
Tenho feito alguns testes com o Arduino + Shield Ethernet para funções diversas, como por exemplo: enviar comandos via IR, acender leds, realizar leituras de sensores.
Durante esses testes eu já havia percebido alguns problemas como demora ao responder e também falha ao carregar a pagina web.
Essa semana estou testando o controle de 4 reles através de uma pagina web que fica gravada no próprio sketch. Faço o controle pra saber se a porta está aciona ou não, coisa simples.
Porém aconteceu várias vezes durante o teste a queda da conexão com o arduino e até mesmo problemas ao carregar a página, carregando exibindo os codigos HTML's ao invés da página.
Alguém saberia me explicar o motivo? será a capacidade do arduino executar os comandos HTML's?
Agradeço a ajuda de todos.
Abraços e obrigado.
Tags:
Osiris, esse comportamento que você relatou: as vezes funciona, as vezes não.
Uma das causas pode ser a memória.
Em vários posts aqui publicados que relatavam problemas parecidos com a dobradinha Arduino x Shield Ethernet, a substituição do UNO pelo Mega resolveu o problema.
Para formar as páginas WEB usam-se muitas concatenações de variáveis String que utilizam a memória dinâmica.
Veja neste post algumas técnicas de otimização:
Em todo caso, vamos ver ser alguém mais teve alguma experiência parecida...
Oziris, veja uma dica que postei hoje:
http://labdegaragem.com/forum/topics/dica-string-otimiza-o-de-sketc...
Bom dia José,
Obrigado pelo retorno.
Abaixo a parte do meu sketch com o HTML.
Já estou usando o recurso F();
client.println(F("HTTP/1.1 200 OK")); //send new page
client.println(F("Content-Type: text/html"));
client.println();
client.println(F("<HTML>"));
client.println(F("<HEAD>"));
client.println(F("<meta name='viewport' content='width=device-width,minimum-scale=1.0,maximum-scale=1.0'>"));
client.println(F("<script languagem='javascript'>"));
client.println(F("function envioLiga(id){"));
client.println(F("location.href = '?btn'+id+'L';"));
client.println(F("}"));
client.println(F("function envioDesliga(id){"));
client.println(F("location.href = '?btn'+id+'D';"));
client.println(F("}"));
client.println(F("</script>"));
client.println(F("</head>"));
client.println(F("<body>"));
client.println(F("<table width='260' border='0' align='center' cellpadding='0' cellspacing='0'>"));
client.println(F("<tr>"));
client.println(F("<td height='25' colspan='3' align='center' bgcolor='#FF6600'><font face='verdana' size='2' color='#FFF'><strong>PAINEL CONTROLE</strong></font></td>"));
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td height='5' colspan='3'></td>"));
client.println(F("</tr>"));
client.println(F("<tr>"));
if(leituraLed1 == HIGH){
client.println(F("<td height='120' width='120'align='center' valign='middle' bgcolor='#1e62d0' onClick='envioDesliga(1);'><a href='?btn1D' style='text-decoration:none;'><font face='verdana' size='2' color='#FFF'>"));
client.println(can1);
client.println(F("</font></a></td>"));
} else {
client.println(F("<td height='120' width='120' align='center' valign='middle' bgcolor='#77a809' onClick='envioLiga(1);'><a href='?btn1L' style='text-decoration:none;'><font face='verdana' size='2' color='#FFF'>"));
client.println(can1);
client.println(F("</font></a></td>"));
}
client.println(F("<td width='20'> </td>"));
if(leituraLed2 == HIGH){
client.println(F("<td height='120' align='center' valign='middle' bgcolor='#1e62d0' onClick='envioDesliga(2);'><a href='?btn2D' style='text-decoration:none;'><font face='verdana' size='2' color='#FFF'>"));
client.println(can2);
client.println(F("</font></a></td>"));
} else {
client.println(F("<td height='120' align='center' valign='middle' bgcolor='#77a809' onClick='envioLiga(2);'><a href='?btn2L' style='text-decoration:none;'><font face='verdana' size='2' color='#FFF'>"));
client.println(can2);
client.println(F("</font></a></td>"));
}
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td> </td>"));
client.println(F("<td width='20'> </td>"));
client.println(F("<td> </td>"));
client.println(F("</tr>"));
client.println(F("<tr>"));
if(leituraLed3 == HIGH){
client.println(F("<td height='120' align='center' valign='middle' bgcolor='#1e62d0' onClick='envioDesliga(3);'><a href='?btn3D' style='text-decoration:none;'><font face='verdana' size='2' color='#FFF'>"));
client.println(can3);
client.println(F("</font></a></td>"));
} else {
client.println(F("<td height='120' align='center' valign='middle' bgcolor='#77a809' onClick='envioLiga(3);'><a href='?btn3L' style='text-decoration:none;'><font face='verdana' size='2' color='#FFF'>"));
client.println(can3);
client.println(F("</font></a></td>"));
}
client.println(F("<td height='120'> </td>"));
if(leituraLed4 == HIGH){
client.println(F("<td height='120' align='center' valign='middle' bgcolor='#1e62d0' onClick='envioDesliga(4);'><a href='?btn4D' style='text-decoration:none;'><font face='verdana' size='2' color='#FFF'>"));
client.println(can4);
client.println(F("</font></a></td>"));
} else {
client.println(F("<td height='120' align='center' valign='middle' bgcolor='#77a809' onClick='envioLiga(4);'><a href='?btn4L' style='text-decoration:none;'><font face='verdana' size='2' color='#FFF'>"));
client.println(can4);
client.println(F("</font></a></td>"));
}
client.println(F("</tr>"));
client.println(F("</table>"));
client.println(F("</body>"));
client.println(F("</html>"));
delay(1);
Ele se comporta bem por algumas vezes, de um clique pra outro, ele trava, as vezes exibe o codigo HTML ao invés do visual, as vezes simplesmente para de responder a ponto de ser necessário reiniciar o arduino.
Abraços e obrigado.
Pelo visto, o seu problema não é a memória.
Como você já está usando o Mega, Não deve ser erro no código também pois, senão o problema ocorreria sempre.
Vamos ter que pesquisar mais...
Verdade, vou pesquisar mais a respeito....
Obrigado.
Bom dia Luiz,
Dei uma pesquisada mais não achei nada a respeito. Tens alguma referência?
Abraços e obrigado.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por