Go Down

Topic: Problema con proyecto de temperaturas y Xively (Read 1 time) previous topic - next topic

aestrada

Hola a todos. Durante bastante tiempo he estado usando el proyecto que describo aqui. Consiste en un Arduino Uno, un modulo ENC28J60 y sensores DS18B20. Con el monitorizo temperaturas y las envío a Xively. El sketch usa un código desarrollado para pachube, pero que funcionaba perfectamente para Xively. Como digo todo funcionaba perfectamente hasta que hace unas pocas horas el sistema ya no es capaz de conectar con Xively ni enviarle datos. En el sketch existe una parte de comprobación cada 15 minutos de la conexión a internet en base a verificar el DNS, y este es correcto. He probado a generar nuevos feed y Api, pero no ha servido. Fugazmente el sistema ha respondido una vez, pero sin continuidad. He comprobado el funcionamiento del hardware haciendo que ejecute otros sketch de conexión a internet y recuperación de datos de web, y son positivos. Me temo que el código empleado en mi sketch ya no es compatible con Xively por alguna razón. El sketch es el del atachment. Hay alguna solución que no pase por rehacer todo el código.

surbyte

BIen con el código que has puesto pero hablas como si todos trabajaramos con Xively y lo demas.

Pon alguna información complementaria.

aestrada

El sistema envía los datos que recopila de los sensores de temperatura, y añade el envío de datos como la temperatura máxima y mínima de uno de ellos, así como un indicador de funcionamiento simple, un contador que crece cada 15 minutos. Se supone que el código envía los valores dentro de un fichero con la cabecera indicativa de cada variable enviada, el formato enviado es el csv. El servidor Xively recibe los valores y los procesa en formato json, y se pueden consultar en su web.

carmeloco

Es muy posible que Xively haya hecho algún cambio en su web.

Mírate el manual que sale en su web:

https://xively.com/dev/tutorials/arduino_wi-fi/

Es para wifi, pero es perfectamente adaptable a ethernet. Además, allí hablan de usar una librería específica para xively, que tu código no usa. Quizá la clave está simplemente en usarla.

aestrada

Hola a todos. Lo que mas me extrañaba es que funcionando correctamente el conjunto de sketch y arduino, dejara de funcionar así como así. No volvió a funcionar ni con un reset, ni con apagado, ni con recarga del sketch. Por eso supuse que era un problema de Xively. En mi ofuscación he intentado con este post de consulta buscar una respuesta sencilla y rápida. La cuestión es que puede que Xively haya cambiado alguna cuestión relacionada con su interacción con Arduino, pero este no es el problema que me ha afectado.
Os explico.
He realizado una limpieza de código complejo del programa intentando dejar parámetros básicos de funcionamiento, he dejado de usar nada que no sea exclusivo de interactuar con Xively, excepto la monitorización por el Monitor Serie, y el resultado es que el sistema funciona perfectamente.
Entonces, cual es el problema?
Pues parece que es el propio sketch, sobre todo en la interacción de los bufferes con el manejo de el módulo lcd y el ethernet. El uso de ciertos comandos que generan un consumo alto de memoria origina fallos aleatorios. En mi antiguo sketch se utilizaba u_int32 para almacenar valores de variables que producían un alto consumo de memoria y originaba a la larga fallos. Se ha sustituido por llamadas simples de timer con variables tipo long y ya todo funciona correctamente.
Os adjunto el código final:

surbyte

Cuando tienes comportamientos anómalos, usa algo que te indique la RAM disponible para ver como esta el uso de la memoria en todo momento o en los procesos críticos.

Memoria disponible
Hay muchas otras cuestiones para tener en cuenta pero como tu código no es muy grande ese debe ser el problema.

Go Up