0% encontró este documento útil (0 votos)
118 vistas9 páginas

Graficando Datos de Sensores en Tiempo Real Con Arduino Java y JFreecharts PDF

Este documento describe los pasos para graficar datos de sensores conectados a Arduino en tiempo real usando Java y las librerías JFreeChart y Arduino para Java. Explica cómo establecer la comunicación serial entre Arduino y Java, declarar variables para almacenar los datos del sensor y crear gráficos dinámicos con JFreeChart. También incluye la programación requerida en Arduino para leer datos del sensor y enviarlos a Java a través del puerto serial.

Cargado por

Gilberto Guevara
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
118 vistas9 páginas

Graficando Datos de Sensores en Tiempo Real Con Arduino Java y JFreecharts PDF

Este documento describe los pasos para graficar datos de sensores conectados a Arduino en tiempo real usando Java y las librerías JFreeChart y Arduino para Java. Explica cómo establecer la comunicación serial entre Arduino y Java, declarar variables para almacenar los datos del sensor y crear gráficos dinámicos con JFreeChart. También incluye la programación requerida en Arduino para leer datos del sensor y enviarlos a Java a través del puerto serial.

Cargado por

Gilberto Guevara
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

´

GRAFICANDO DATOS
Antony García González
DE SENSORES EN
Estudiante de la Universidad Tecnológica de

TIEMPO REAL CON Panamá

Facultad de Ingeniería Eléctrica


ARDUINO, JAVA Y Licenciatura en Ingeniería Electromecánica

JFREECHARTS Creador y Administrador del blog


PanamaHitek.com
Por Antony García González
Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

Graficando datos de sensores en tiempo real con Arduino, Java y jFreeChart


Por Antony García G.

ABSTRACT

Un documento que muestra los pasos a seguir para graficar los datos
obtenidos a partir de cualquier tipo de sensor conectado a Arduino a
través de la implementación de las librerías JFreeChart y Arduino para
Java. Por medio de comunicación serial entre un micro controlador, el
usuario puede supervisar el comportamiento de cualquier fenómeno
de forma gráfica en la pantalla de la computadora.

 INTRODUCCIÓN

La librería JFreeChart1 ha sido presentada en Panama Hitek2 como una opción muy útil
para la creación de gráficos en Java. En esta ocasión de va a aprovechar las ventajas de
JFreeChart para elaborar gráficos en tiempo real, específicamente para hacer lectura de
datos obtenidos a partir de sensores conectados a Arduino.

La comunicación entre Java y Arduino se lograr por medio del puerto serie3, con la librería
RXTX4 y con la asistencia de la Librería Arduino5 diseñada para Java. La interfaz de
desarrollo utilizada para esta demostración es Netbeans IDE, en su versión 7.3 6.

Se espera obtener una interfaz muy sencilla que pueda ser utilizada como parte de futuros
proyectos para evaluar el comportamiento de fenómenos físicos transformados a pulsos
eléctricos por medio de los sensores y con Arduino como interfaz electrónica. Se podrá
utilizar cualquier tipo de sensor con esta interfaz.

1
http://panamahitek.com/2013/03/03/graficando-en-java-con-jfreechart/
2
http://panamahitek.com/
3
http://panamahitek.com/2013/01/27/comunicacion-serial-con-arduino/
4
http://panamahitek.com/2013/01/31/requisitos-para-utilizar-arduino-con-java/
5
http://panamahitek.com/2013/03/08/libreria-arduino-para-java/
6
https://netbeans.org/

Presentado por Antony García G. | [email protected] 1


Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

 REQUISITOS PARA LA CREACIÓN DEL PROGRAMA


 Librería Arduino para Java
 Librería RXTX
 Librería jFreeChart
 Netbeans IDE 7.3

Nota: las librerías se encuentran disponibles en Panama Hitek y en los enlaces


proporcionados como referencia de este documento.

 CREACIÓN DE LA INTERFAZ EN JAVA

Se crea un proyecto en Netbeans llamado Charts. Se deja la clase principal y se agrega


un jFrame bajo el nombre Windows. Desde la clase principal se instancia Windows de tal
forma que al iniciar la ejecución del programa se abra la ventana principal.

Figura 1 – Panel de proyectos y código de la clase principal “Charts.java”

Figura 2 – Panel de
diseño de Netbeans IDE
con la interfaz del
programa, la cual
solamente constará de
un solo botón que
desplegará los gráficos.

Presentado por Antony García G. | [email protected] 2


Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

Es necesario implementar las librerías que harán posible la utilización del código a usar. Los
enlaces de descarga para las librerías se encuentran al final de este documento. Los
archivos a importar son los siguientes:

Archivo Librería
Arduino.jar Librería Arduino para Java
RXTXcomm.jar Librería RXTX
Jcommon-1.0.17.jar
Librería JFreeChart
Jfreechart-1.0.14.jar

Tabla 1 – Archivos que se necesitan importar a las librerías del proyecto

Estos cuatro archivos deben estar en el árbol del proyecto en la sección de librerías.

Figura 3 – Archivos importados al árbol de librerías


del proyecto. Los archivos pueden ser descargados
desde Panama Hitek o bien desde los enlaces
proporcionados al final del documento.

Ahora se procede con la programación que hará posible obtener los resultados deseados.
Es necesario instanciar la librería Arduino para Java en el proyecto e iniciar la
comunicación RXTX con Arduino.

Los parámetros para RXTX serán el puerto COM donde se conectará Arduino, 2000
milisegundos de tiempo de espera, un baud rate de 9600 y un SerialPortEventListener
llamado evento, que será el encargado de ejecutarse al recibir los datos.

Presentado por Antony García G. | [email protected] 3


Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

Figura 4 – El código con el cual se instancia la librería Arduino y se inicia la comunicación con Arduino.
Cualquier error que aparezca será automáticamente corregido por Netbeans. Las líneas en verde
serán las únicas que se deben escribir ya que todo lo demás será agregado por el IDE al hacer clic
en las notificaciones que aparezcan en la izquierda.

Luego de esto solo se necesita crear las gráficas con jFreeChart. Se crea una variable del
tipo JFreeChart llamada Gráfica. También se necesitan dos variables que serán los
contenedores para los datos del sensor, sean Serie y Datos.

Figura 5 – Las variables que se deben declarar para hacer las gráficas con jFreeChart. La serie XY guarda
los valores obtenidos del sensor. En la variable Colección es donde se agregan las series de Datos.
Finalmente la variable Gráfica es en sí la gráfica del jFreeChart.

Ahora se inicia la serie de datos con la coordenada 0, para que la gráfica parta desde el
origen. Se agregan los datos de la Serie a la colección de datos y se crea el gráfico a partir
de las variables declaradas. El tipo de gráfico debe ser XYLineChart y se inicia como un
método de ChartFactory. Los parámetros son los siguientes:

Presentado por Antony García G. | [email protected] 4


Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

Grafica = ChartFactory.createXYLineChart(String título del gráfico, String Etiqueta del eje


horizontal, String Etiqueta del eje vertical, XYDataset colección de datos,
PlotOrientation orientación, boolean leyenda, boolean tooltips, boolean urls)

Para efectos de este documento, los parámetros serían:

Figura 6 – Parámetros para la gráfica

Ahora solo se necesita programar el botón que abrirá la ventana con la gráfica.

Figura 7 – Programación del botón “Graficar”. Se crea un ChartPanel y se agrega la gráfica.


Luego se coloca el ChartPanel en una nueva ventana y se muestra la gráfica.

Con esto es suficiente para obtener resultados. Es una programación sencilla que mostrará
una ventana con un gráfico en tiempo real sin mayores detalles. Se puede optimizar las
funciones que tenga el programa agregando otros elementos según sean las necesidades
del usuario.

 PROGRAMACIÓN EN ARDUINO
La programación en Arduino es muy sencilla: solo se inicia la comunicación serial y se hace
lectura del nivel análogo en el divisor de tensión y se imprime por medio del método
Serial.println(). Se coloca un retraso de 100 ms para evitar una sobresaturación de datos.

Presentado por Antony García G. | [email protected] 5


Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

Figura 8 – Programación de Arduino para


hacer lectura del nivel de luminosidad a
partir de un divisor de tensión con una foto
resistencia.

 ESQUEMA ELECTRÓNICO
El circuito que funcionará como detector de luz consiste en una fuente de voltaje (5 voltios,
desde Arduino), una resistencia de 1 kΩ y una foto resistencia.

Figura 9 – Diagrama
pictórico del circuito
detector de luz (Cortesía
de Fritzing.org)

Presentado por Antony García G. | [email protected] 6


Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

 RESULTADO FINAL
El comportamiento del programa es tal cual lo esperado. Se muestra una gráfica cuyo
comportamiento depende de la Luz aplicada a la foto resistencia.

Figura 10 – Ejemplo de gráfica en tiempo real en JFreeChart

Los resultados han sido satisfactorios. Con JFreeChart ahora es posible conseguir gráficas
directamente desde cualquier sensor con Arduino.

Presentado por Antony García G. | [email protected] 7


Controlando Motor de Corriente Directa con Arduino y Java| Panama Hitek

 REFERENCIAS
Los conceptos expuestos en este documento forman parte de los contenidos asociados a
PanamaHitek.com y pueden ser encontrados en dicha dirección web.

 Acerca de la librería RXTX

 http://panamahitek.com/2013/01/31/requisitos-para-utilizar-arduino-con-java/

 http://rxtx.qbang.org/wiki/index.php/Main_Page

 Acerca de la librería JFreeChart

 http://www.jfree.org/jfreechart/
 http://panamahitek.com/2013/03/03/graficando-en-java-con-jfreechart/

 Acerca de la librería Arduino para Java

 http://panamahitek.com/2013/03/08/libreria-arduino-para-java/
 http://panamahitek.com/2013/04/21/libreria-arduino-para-java-troubleshoot/

 Demostración en video del funcionamiento del código presentado

 http://youtu.be/VALfzVn-GSo

 Archivos de Código fuente para Arduino y Java

 https://docs.google.com/file/d/0B0hsUkhqWH97S0VUTVhpV3NKQ2c/edit?usp
=sharing

Presentado por Antony García G. | [email protected] 8

También podría gustarte