hoopdreams
Posts: 313
Joined: Mon Mar 23, 2015 7:51 pm

DashboardPi

Sun May 22, 2016 11:36 am

Buenas,

Aunque ya puse el enlace en otro tema he pensado crear uno para presentar en condiciones mi último proyecto.

¿Qué hace?

Como resumen general: coger datos de sensores (en concreto del Sense HAT) y crear gráficas, todo esto utilizando Python. Al tener Apache funcionando y un Virtual Host en funcionamiento, la gráfica se crea en la carpeta de este VIrtual Host y accediendo a la URL puedo ver los datos que cogen los sensores.

¿Cómo funciona?

Utilizando Matplotlib. Una librería para Python, muy potente, que permite crear diversos tipos de gráficas. No es, probablemente, la librería para gráficas más ágil pero sí quizá la que más ofrece ya que permite crear gráficas con una calidad suficiente para ser publicadas en revistas científicas.

Respecto a la pequeña web desde la que puedo observar las gráficas y que da nombre al proyecto, sin conocimientos de HTML, CSS o PHP, tirando de código que está en internet y modificándolo a mi gusto he hecho una pequeña pantalla de login y un menú para navegar entre las distintas gráficas que puedo crear.

La idea era crear algo parecido a Initial State (https://www.initialstate.com/) ya que me encanta este servicio pero la versión gratuita se me queda corta y la de pago se me va de las manos. Es más cutre mi versión pero con la satisfacción de haberla hecho yo compensa :lol: Estoy investigando porque parece ser que hay servicios parecidos al que comento pero que son completamente gratis, ya lo comentaré.

¿Dónde está el código?

https://github.com/IkerGarcia/DashboardPi

¡El mes que viene (creo) en The MagPi!

*Sólo la parte de datos/gráficos, la del Virtual Host no.

Un saludo.
https://github.com/ikergarcia

User avatar
actkk2000
Posts: 1309
Joined: Wed Apr 02, 2014 3:22 am

Re: DashboardPi

Mon May 23, 2016 1:09 pm

Muchas gracias por la info :)

Slds!
Robot +Camara +Sensores +Encoder +Servo +Matriz8x8 +Joystick:
https://www.raspberrypi.org/forums/viewtopic.php?f=76&t=130470

nanipi
Posts: 11
Joined: Tue Mar 29, 2016 10:55 am

Re: DashboardPi

Tue May 24, 2016 6:08 am

Mi enhorabuena por tu nuevo proyecto.

raspdroid
Posts: 1603
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: DashboardPi

Wed May 25, 2016 6:31 pm

Hola,

¿Se podrá usar la librería en un proyecto con licencia Apache v2?

Saludos

raspdroid
Posts: 1603
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: DashboardPi

Thu May 26, 2016 8:37 am

Preguntaba porque estoy trabajando en una aplicación para Desktop multiplataforma, pero también compatible con plataformas móviles (Android e ios aunque este último dudo que vaya a funcionar de momento porque el proyecto del que depende lo han abandonado. Aunque en la noticias dicen que sí pero no estoy seguro aunque seguro que le buscarán una solución http://gluonhq.com/javafx-3d-now-available-android-ios/).

Si no se pudiera así pues haría una app para Android reutilizando el código Java, estuve valorando hacerlo en C++ con Qt y luego utilizando el NDK de Android pero al final me decanté por Java.

Estoy utilizando una librería nueva para efectos gráficos para el proyecto del Autopilot. Es una pasada y tiene muchas cosillas para el IoT con Raspberry Pi e incluso en un branch experimental hay algunos botones muy chulos para la Raspberry Pi. El autor le puso licencia Apachev2 y me ha dicho que es bastante liberal pero tampoco está seguro si es compatible con MIT o GPL, por eso preguntaba.

La librería también te viene muy bien para tu proyecto , tanto para hacer dashboard/gauges más visuales para la pantalla como para hacerlos para imprimir en revistas. Si te puede interesar te puedo echar una mano con una app que monitoree todos los datos de los sensores de la SenseHat.

Saludos

hoopdreams
Posts: 313
Joined: Mon Mar 23, 2015 7:51 pm

Re: DashboardPi

Thu May 26, 2016 9:46 am

Buenas,

He estado mirando en la pagina de Matplotlib y parece que no habría problemas con la licencia, siempre se puede preguntar.

Respecto a lo del proyecto, sabes que yo encantado en colaborar en lo que sea, siempre se hacen cosas mejores entre varios :D

Por si os interesa, salgo en la página 46 del número de este mes que viene de la MagPi:

https://www.raspberrypi.org/magpi-issues/MagPi46.pdf

Un saludo.
https://github.com/ikergarcia

raspdroid
Posts: 1603
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: DashboardPi

Thu May 26, 2016 11:02 am

Disculpa,
He estado mirando en la pagina de Matplotlib y parece que no habría problemas con la licencia, siempre se puede preguntar.
Me refería a la librería de SenseHat , Matplotlib no lo voy a utilizar ya que esta librería en Java hace cosas similares lo que más moderno. Similar a los efectos de InitialState.

Aunque pensándolo un poco no hay problemas de incompatibilidad ya que se usaría por un lado la librería en la RPi a modo servicio en Python poro ejemplo, que vaya enviando los datos de los sensores y por otro lado la aplicación los recibiría para mostrarlos en los indicadores (gauges).

Saludos

hoopdreams
Posts: 313
Joined: Mon Mar 23, 2015 7:51 pm

Re: DashboardPi

Thu May 26, 2016 12:51 pm

Ah, vale, pues aquí tienes toda la info de la licencia: https://github.com/RPi-Distro/python-se ... ICENCE.txt

Un saludo.
https://github.com/ikergarcia

raspdroid
Posts: 1603
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: DashboardPi

Thu May 26, 2016 2:06 pm

Ok, gracias

Es BSD, pero no te preocupes, aunque está bien saberlo, porque no lo voy a incluir en la aplicación de escritorio/móvil se usaría en la aplicación que vaya en la Raspberry Pi.

Podríamos hacer una demo con alguno de los sensores de la SenseHat sobre un instrumento de vuelo o de navegación de un vehículo. Por ejemplo un indicador de posición (Attitude indicator o Horizon) https://en.wikipedia.org/wiki/Attitude_indicator

Utilizo uno de la librería que funciona bien, le cambié un poco los colores le puse la tierra del verde la hoja de la raspberry y el rojo en los indicadores. Solo hay que enviarle los datos del gyro y ya estaría funcionando.

¿Qué podemos utilizar para exponer los datos? ¿has probado Node-Red? Tiene nodos para la Sense-Hat pero no lo he usado, yo pensaba usar módulos de radio XBee pero como lo veas.
http://nodered.org/docs/hardware/raspberrypi

Saludos

raspdroid
Posts: 1603
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: DashboardPi

Thu May 26, 2016 4:48 pm

Para Node-Red hay hasta un nodo para simular la Sense-Hat solo que no funciona con Motion, acelerómetro, gyro y brújula.

Creo que lo mejor va a ser usar MQTT, hice una prueba con la Rpi vía wifi y funciona y por lo que ha visto también funciona con XBee.

Saludos

raspdroid
Posts: 1603
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: DashboardPi

Fri May 27, 2016 9:41 am

Buenas,

Estoy probando mqtt . Hay 3 roles, Publisher, Broker y Subscriber

Como Publisher podríamos poner la SenseHat, para el tema de Environment y Motion porque lo de la matriz led en IoT no sé que utilidad puede tener. (bueno lo del Motion tampoco pero para mi proyecto es esencial).

Como Broker la Raspberry Pi (cualquier versión), mosquitto y mosquitto-clients está en los repos oficiales lo que la versión 1.3x, yo instalé manualmente la versión 1.4.8 pero solo de mosquitto no de mosquitto-clients (mosquitto_pub y mosquitto_sub)

Como Subscriber la aplicación de Desktop, Móvil/Tablet o el dispositivo que sea donde queramos enviar los datos.

Yo utilizo unas librerías de Jens Deters para la aplicación, y además tiene desarrollado un cliente MQTT en JavaFX, por lo que lo estoy usando para pruebas, conectarse a la Raspberry Pi lo hace sin problemas y también he podido ejecutar la prueba de una fuente que se enciende y apaga, pero ahora habría que crear algo de código en Javascript para crear la suscripción, creo que sea el siguiente paso porque la verdad que estoy más perdido que Wally, es la primera vez que utilizo MQTT y la verdad que tiene buena pinta.

Este es el cliente Mqtt que comentaba de Jerady por si lo quieres probar http://mqttfx.jfx4ee.org/

Hay versiones para Linux, Max y Windows. Yo lo utilizo en Fedora 23 64bits y funciona bien "sudo dnf install mqttfx-1.1.0-1.x86_64.rpm"

Una vez instalado se crea una carpeta en el Home (en Linux en ~/MQTT-FX/scripts) donde está este ejemplo:

01_Switch_Fountain_Test.js
var Thread = Java.type("java.lang.Thread");

function execute(action) {
out("Test Script: " + action.getName());
for (var i = 0; i < 10; i++) {
switchON();
Thread.sleep(500);
switchOFF();
Thread.sleep(500);
}
action.setExitCode(0);
action.setResultText("done.");
out("Test Script: Done");
return action;
}

function switchON() {
out("fountain ON");
mqttManager.publish("home/garden/fountain", "ON");
}

function switchOFF() {
out("fountain OFF");
mqttManager.publish("home/garden/fountain", "OFF");
}

function out(message){
output.print(message);
}

Saludos

hoopdreams
Posts: 313
Joined: Mon Mar 23, 2015 7:51 pm

Re: DashboardPi

Sat May 28, 2016 9:50 am

Buenas,

Yo sí que ando perdido :lol: la idea de crear la app para Android me parece muy buena y encantado de echar una mano en lo que buenamente pueda. Ando fuera, de fin de semana, a la vuelta miro todo lo que has puesto a ver qué voy entendiendo.

Un saludo.
https://github.com/ikergarcia

hoopdreams
Posts: 313
Joined: Mon Mar 23, 2015 7:51 pm

Re: DashboardPi

Sat Jun 11, 2016 10:55 am

He añadido una nueva función, la creación de gráficas animadas (en mp4)

https://github.com/IkerGarcia/DashboardPi/

El Example4, en concreto.

Un saludo.
https://github.com/ikergarcia

Return to “Español”