Paso 4: código
El código no se explica completamente, sólo las partes más importantes. Aún así, usted puede descargar el código y creo que se entiende bastante bien. Si tienes cualquier duda no dudes preguntar.
El código consta de 3 archivos, uno principal con el código principal, sensores de inicialización, depuración, lazo principal, etc.. Otro archivo para controlar el acelerómetro y giroscopio y una tercera para los sensores de temperatura y barómetro. En primer lugar definimos las constantes y variables que el programa va a utilizar. Para Plotly definimos tres variables:
#define num_traces 4
Es el número de variables de datos que queremos visualizar, en nuestro caso 4.
char * streaming_tokens [num_traces] = {"your_plotly_stream_token", "another_plotly_stream_token",...};
Aquí especificamos las claves de nuestras fichas de corriente, cada uno para cada variable de datos.
gráfico plotly = plotly ("your_plotly_username", "your_plotly_api_key", streaming_tokens, "your_plotly_filename", num_traces);
Un tipo de datos para permitir que el arduino conectar con nuestro servicio de Plotly, finalmente tenemos que indicar el nombre de nuestra cuenta Plotly, el API key y el nombre del archivo que almacenará los datos.
El principal código inicializa los sensores y configura el shield Ethernet para establecer contacto con el servicio web Plotly.
En el bucle ejecutan la función cada 100 milisegundos. Eso significa que la frecuencia de muestreo es de 10 Hz (podemos usar otra frecuencia como 100 o 1000 Hz). La función toma los valores del sensor de procesarlos (Kalman filter, filtro complementario,...) y finalmente envía los datos al servicio de Plotly.
Hice dos programas, uno para utilizar los datos del acelerómetro y giroscopio, enviando cuatro ángulos a Plotly, y otro que mida la temperatura y la presión y envía estos valores más el valor de altura calculado previamente a Plotly.