Estoy usando un arduino para recuperar algunos datos de una aplicación web. El problema es que después de un tiempo comienza a colgarse.
Para las pruebas, utilicé el esbozo EthernetClient
predeterminado y lo modifiqué un poco para que, cada pocos segundos, envíe una solicitud al servidor para obtener la información. Para las pruebas no hago nada con los datos que obtengo, por lo que solo envía la solicitud y recupera los datos.
Para las pruebas utilizo un Arduino Mega 2560 + Ethernet Shield y una placa Arduino Ethernet, tengo el problema en ambos. Funciona desde 30 minutos hasta un día y luego toda la placa se congela. Las tablas no se calientan o cualquier otra cosa.
Al principio parece que funciona, pero después de un tiempo indefinido comienza a colgarse, ¿alguien tiene una idea de qué podría causar esto? ¿Hay algún error en el arduino o en el chip Ethernet W5100?
¿Intentarías solucionar este problema o cambiarte a una Raspberry Pi? Usar el temporizador de vigilancia no es una opción porque no funciona en el Mega sin cambiar el cargador de arranque.
ACTUALIZACIÓN (Agregué mi código de bucle, no hay problemas de memoria, he probado que antes):
void loop()
{
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
delay(2000);
if (client.connect(server, 80)) {
Serial.println("connected");
client.println("GET / HTTP/1.0");
client.println();
}
}
}
Esto es todo lo que hace, en la configuración está el código de inicialización predeterminado del bosquejo de demostración de Ethernet.
ACTUALIZACIÓN 2
Las pruebas con Arduino Mega + WiFi Shield también se cuelgan.
Las pruebas con EtherMega 2560 de freetronics se están ejecutando durante 2 días sin ningún problema. Continuaré con esto por un mínimo. una semana. Mi único problema con este bord es el precio. Es alrededor de 100 $.