enc28j60 + SNMP + DHT22 + Arduino Mega

Hola, la finalidad del proyecto es poder monitorizar mediante SNMP (servidor Observium) el sensor de temperatura DHT22 conectado a mi Arduino Mega 2560, la tarjeta de red que uso es la ENC28j60.

El script funciona correctamente, levanta la red, responde a las llamadas snmp (incluso conseguí poder añadirlo en el observium), etc … el problema es que de manera aleatoria (a las 2 o 3 horas), la red deja de funcionar, el Arduino sigue funcionando, pero la ethernet deja de recibir peticiones, se queda congelada.

He cambiado el código para que si no recibe una solicitud snmp cada 2 minutos, reactive la tarjeta, pero tampoco, se queda colgada la tarjeta de red.

He pensado en modificar el código para intentar hacer un reset a la propia raspberry si no recibe una petición SNMP cada 2 minutos (lo malo es que watchdog tiene como máximo 8 segundos, usaría otro código para resetearla), también he pensado en comprar otra tarjeta ethernet…

Adjunto el código del programa

¿Alguien ha tenido un problema similiar o sabe qué me puede estar ocurriendo?

snmp_temperatura_v4.ino (3.5 KB)

me autorespondo :-)

tras mucho investigar al parecer el arduino y la ethernet siguen funcionando, lo que se cuelga es el objeto agentuino (snmp), tras recibir 6 o 7 veces una petición de OID concreta por parte de Ovservium, la 1.3.6.1.2.1.4.3.0, que por definición de las OID tiene algo que ver con broadcast.

voy a intentar o bien no contestar a esas peticiones, o bien contestarlas como toca, cualquier cosa la posteo para ayudar a los que vengan detrás.