Post on 26-Dec-2015
description
Exportar datos de sensores desde
Arduino a Excel
! enero 15, 2014 (http://panamahitek.com/exportar-datos-de-sensores-desde-arduino-a-excel/) " Antony
García González (http://panamahitek.com/author/antony-garcia-gonzalezgmail-com/) # Proyectos con
Arduino (http://panamahitek.com/category/arduino/proyectos-con-arduino-arduino/), Tutoriales Arduino+Java
(http://panamahitek.com/category/arduinojava/tutoriales-arduinojava/)
A veces es necesario cuando realizamos proyectos conArduino y sensores, enviar la información obtenida a algúnotro software para su análisis y utilización. Aprende aexportar datos de sensores desde Arduino a Excel, pormedio de una interfaz en Java. Se utilizará las libreríasArduino para Java y la librería POI para generar los archivosde Excel.
Para exportar datos de sensores desde Arduino a Excel yo recomiendo
utilizar Java. Aquellos que frecuentan este blog saben acerca de mi
librería Arduino para Java.
http://panamahitek.com/libreria-arduino-para-java/ (/libreria-arduino-para-
java/)
Normalmente cuanto escribo un post acerca dealgún proyecto en la línea
Arduino/Java, empiezo por Java, pero esta vez voy a iniciar con Arduino.
Se va a utilizar para esta experiencia el sensor de humedad/temperatura
DHT11 (/dht11-sensor-de-humedadtemperatura-para-arduino/), del cual
ya he escrito lo suficiente en mis anteriores aportes.
El código a utilizar en Arduino es el siguiente:
123456789101112131415161718192021222324252627282930
**************************************************** #include "DHT.h" //cargamos la librería DHT#define DHTPIN 2 //Seleccionamos el pin en el que se //conectará el sensor#define DHTTYPE DHT11 //Se selecciona el DHT11 (hay //otros DHT)DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que será usada por Arduino para comunicarse con el sensorboolean Start=false;int mensaje=0;void setup() { Serial.begin(9600); //Se inicia la comunicación serial dht.begin(); //Se inicia el sensor}void loop() { if (Serial.available()>0){ mensaje =Serial.read(); if (mensaje=='1'){ Start=true; } else { Start=false; } } if (Start==true){ float h = dht.readHumidity(); //Se lee la humedad float t = dht.readTemperature(); //Se lee la temperatura //Se imprimen las variables Serial.println(h); delay(10); //Este delay nos servirá para la lectura de datos en Java
Es un código sencillo. Se lee la humedad y la temperatura y se envían por
medio del puerto serie. Es importante utilizar Serial.println() y un pequeño
delay de 10 milisegundos. A la hora de leer los datos Java a veces se
confunde. El método que utilizo yo para enviarme series de datos de
Arduino a Java requiere de una secuencia, y ese pequeño delay es el que
hace que todo me funcione correctamente. A continuación se muestra a
que me refiero. Le he colocado una “lave”, una variable del tipo boolean
que iniciará o detendrá la toma de datos.
Vamos a Netbeans y creamos un proyecto, colocamos un jTable y 2
botones, uno para iniciar/detener la toma de datos y el otro para exportar
a Excel.
(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-a-
Excel.png)
3132333435
Serial.println(t); delay(2000); //Se espera 2 segundos para seguir leyendo //datos }}****************************************************
Ahora se necesita implementar la librería Arduino para Java (/libreria-
arduino-para-java-version-2-0-1/). La librería RXTX
(http://panamahitek.com/requisitos-para-utilizar-arduino-con-java/) será
necesaria en esta ocasión.
Se debe utilizar la conexión RXTX debido a que se transmitirán y se
recibirán datos.
(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-a-Excel1.png)
Se debe tomar en cuenta que el puerto COM utilizado varía de computadora a
computadora. En mi caso es el 10, en el de ustedes puede ser diferente. Al
declarar el objeto “evento” aparecerá una opción a la izquierda de la línea que
indicará que se deben importar todos los métodos abstractos. Al hacer clic en
dicha opción, se agregará el método SerialEvent.
Ahora hay que establecer cómo se van a recibir los datos. En Arduino
primero se envía la Humedad y luego la Temperatura. Se debe crear una
variable, a la cual llamará Slot. Dependiendo del valor de Slot, se ejecutará
determinada acción.
(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-a-
Excel6.png)
Analicemos lo que sucede aquí. La variable Slot, inicialmente tiene valor 1.
Si hay un mensaje disponible, es decir, si se ha invocado el método
Serial.println en Arduino, Java reconocerá que debe leer el mensaje. Se le
asigna a la variable “Humedad” y se aumenta el valor de Slot hasta 2. El
próximo mensaje que se reciba, se le asignará el valor a la Temperatura y
el valor de Slot volverá a ser 1 y así sucesivamente.
El SerialEvent se ejecuta hasta que se lee el valor, por lo que cualquier
instrucción que se coloque después del PrintMessage será despreciada.
Lo que voy a hacer es lo siguiente: crearé un método que sea el que
introduce en el jTable la humedad y la temperatura “al leer la humedad”.
Pero esto debe suceder luego de la segunda lectura, así que se declara
una variable llamada Lecturas que al ser mayor que 1, permita que se
desencadene el jTableUpdate.
(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-a-
Excel7.png)
De esta forma, al leerse el dato de temperatura, se disparará el método
jTableUpdate. Agregamos las instrucciones para agregar los datos a la
tabla.
Para cada ejecución del jTableUpdate, se debe agregar una fila al jTable.
Esto ya lo expliqué en uno de mis anteriores aportes
(http://panamahitek.com/agregar-filas-a-un-jtable-en-java/).
Se declara el modelo y en el jTableUpdate se agrega la fila, a la vez que se
insertan los valores en las celdas. Hay que insertar el tiempo, por lo que es
necesario invocar una librería en Java. Se trata de Calendar, que nos
permite declarar un objeto al que yo he llamado Calendario y obtener
hora, minutos y segundos para agregarlos a la tabla.
(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-a-
Excel10.png)
Ahora hay que programar los botones. Primero el botón de iniciar la toma de datos.
Se crea otra llave, una variable del tipo boolean para condicionar el
comportamiento del botón. Si es falso, se envía un “1” para iniciar la toma
de datos. De lo contrario se envía un “0” para detener la toma de datos.
(http://panamahitek.com/wp-content/uploads/2014/01/Sin-título-3.png)
Hasta aquí, el proyecto es funcional. Ya se puede apreciar lo que sucede
cuando se presiona “Iniciar Toma de Datos”.
(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-a-
Excel11.png)
Ahora estamos listos para pasar a Excel.
Uso de la Librería POI
La librería POI (que está disponible en este enlace
(http://panamahitek.com/wp-content/uploads/2014/01/poi-bin-3.9-
20121203.rar)). Ha sido diseñada especialmente para exportar
documentos a Excel. Ahora voy a explicar como funciona.
Lo primero que le vamos a agregar al botón “Exportar a Excel” es un
jFileChooser que nos entregue la dirección en la cual queremos guardar el
fichero.
(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-a-
Excel12.png)
Ahora vamos a crear un método donde se cree el fichero.
Hay que crear algunos objetos: un libro, una hoja, una fila y una celda,
todos elementos de Excel.
(http://panamahitek.com/wp-content/uploads/2014/01/Sin-título-6.png)
Ahora si se quiere crear una fila, se debe modificar el parámetro del
método createRow(int row). Si se quiere modificar la columna entonces
se debe cambiar la celda en el parámetro de createCell(int celda).
Lo primero que haré es colocar un título. Luego empezaré a imprimir
todos los datos del jTable en la hoja de Excel utilizando un ciclo for. Por
último, generaré un fichero que se guardará en la ruta que escogí.
(http://panamahitek.com/wp-content/uploads/2014/01/Sin-título-4.png)
En el código del botón de exportar a Excel he colocado lo siguiente:
(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-a-
Excel14.png)
Esto es todo. Se puede hacer la prueba y se obtendrá lo siguiente:
(http://panamahitek.com/wp-content/uploads/2014/01/Sin-título-
41.png)
Los archivos que forman este proyecto los puedes descargar desde este
enlace (http://panamahitek.com/wp-
content/uploads/2014/01/SensorsToExcel.rar).
Por último, el tutorial completo en video:
Espero que la información suministrada sea de su agrado y comprensión.
Artículos relacionados
(http://panamahitek.co
m/arduino-java-
enviando-mensajes-a-
pantalla-lcd-desde-
java-con-arduino/)
Arduino + Java:
Enviando mensajes a
pantalla LCD desde Java
con Arduino
(http://panamahitek.co
m/arduino-java-
enviando-mensajes-a-
pantalla-lcd-desde-
java-con-arduino/)
(http://panamahitek.co
m/libreria-arduino-para-
java-version-1-3-0/)
Libreria Arduino para
Java, versión 1.3.0
(http://panamahitek.co
m/libreria-arduino-para-
java-version-1-3-0/)
(http://panamahitek.co
m/libreria-arduino-para-
java-version-2-0-0/)
Librería Arduino para
Java, versión 2.0.0
(http://panamahitek.co
m/libreria-arduino-para-
java-version-2-0-0/)
Comments
31 comments
Arduino (http://panamahitek.com/tag/arduino/)
Arduino Excel. Exportar de Arduino a Excel (http://panamahitek.com/tag/arduino-excel-exportar-de-arduino-a-excel/)
Arduino y Java (http://panamahitek.com/tag/arduino-y-java/)
Exportar datos de sensores a excel (http://panamahitek.com/tag/exportar-datos-de-sensores-a-excel/)
Exportar de Java a Excel (http://panamahitek.com/tag/exportar-de-java-a-excel/)
Java (http://panamahitek.com/tag/java/)
Librería Arduino para Java (http://panamahitek.com/tag/libreria-arduino-para-java/)
Librería POI (http://panamahitek.com/tag/libreria-poi/) Netbeans (http://panamahitek.com/tag/netbeans/)
ANTONY GARCÍA GONZÁLEZANTONY GARCÍA GONZÁLEZ (HTTP://PANAMAHITEK.COM/AUTHOR/ANTONY- (HTTP://PANAMAHITEK.COM/AUTHOR/ANTONY-
GARCIA-GONZALEZGMAIL-COM/)GARCIA-GONZALEZGMAIL-COM/)
Nace el 30 de julio del año 1992 en Ciudad de Chitré, provincia de
Herrera, Panamá. Crece y recibe su educación primaria y pre media en
Guararé. Hacia el año 2008 inicia sus estudios de Bachillerato en Ciencias
con Énfasis en Informática en el Instituto Coronel Segundo De Villarreal
en la Villa de Los Santos. Se gradúa en el año 2010 e inicia sus estudios de
Licenciatura en Ingeniería Electromecánica en la Universidad Tecnológica
de Panamá (UTP), sede Azuero. En el 2013 inicia el proyecto Panama
Hitek. Actualmente es el director del equipo de autores, cursa el séptimo
semestre de su carrera y trabajar para la UTP como asistente de
investigación, para la Unidad de Eficiencia Energética
$ Un documental sobre la Historia de Arduino (http://panamahitek.com/un-documental-sobre-la-historia-de-arduino/)
Java 3D: Programando en la tercera dimensión % (http://panamahitek.com/java-3d-programando-en-la-tercera-dimension/)
BUSCAR EN PANAMA HITEK
LICENCIA
Panama Hitek by Antony García G. and Kiara Navarro (http://www.panamahitek.com) is
licensed under a Creative Commons Reconocimiento-NoComercial 4.0 Internacional
License. (http://creativecommons.org/licenses/by-nc/4.0/)
CONTRIBUYE A NUESTRA CAUSA
Con tu contribución podremos comprar nuevos dispositivos para seguir publicando
nuestros conocimientos.
AUTORES
Antony García González (http://panamahitek.com/author/antony-garcia-gonzalezgmail-com/) (141)
Kiara Navarro (http://panamahitek.com/author/kiara-navarro/) (31)
José Villalaz (http://panamahitek.com/author/josevillalaz/) (6)
Ricardo Montenegro (http://panamahitek.com/author/ricardomontenegro/) (4)
Edwin De Leon (http://panamahitek.com/author/edwindeleon/) (4)
Félix Tomás González (http://panamahitek.com/author/felixgonzalez/) (2)
Buscar...
Javier Brathwaite (http://panamahitek.com/author/jbrathwaite/) (1)
VIDEOS
(https://www.youtube.com/watch?v=HgAxnYDVx90) (https://www.youtube.com/watch?v=kJ_L5bz7hM0) (https://www.youtube.com/watch?v=r0WSmKU3OH4)
(https://www.youtube.com/watch?v=oAwA5t3_diY) (https://www.youtube.com/watch?v=3NdWIDMqV80) (https://www.youtube.com/watch?v=7lO7dnVSGkQ)
(https://www.youtube.com/watch?v=XYtrVl8R0Wk) (https://www.youtube.com/watch?v=ZvcW0-DEeVQ) (https://www.youtube.com/watch?v=k0qEMOlN6KM)
SÍGUENOS EN FACEBOOK
Búscanos en Facebook
Panama Hitek
A 1398 personas les gusta Panama Hitek.
Plug-in social de Facebook
Me gustaMe gusta
Panama Hitek18 h
Antony García G., de Panama Hitek estarárepresentando a la UniversidadTecnológica de Panamá y a Panamá en elpróximo Congreso Regional deInstrumentación Avanzada en Costa Rica.El tema a exponer "Sistema de Captura yAnálisis de Datos (SiCADA) para estudiosde rendimiento en unidades deacondicionamiento de aire".
PROYECTO FEDORA
(http://fedoraproject.org/es)
► Excel► Excel to Java► Arduino Java
► Arduino Java► Arduino sensores► MS Excel 2010
► MS Excel 2010► Arduino tutorial► Arduino serial
¡ ¡ V I S Í T A N O S ! !
Mantente en contacto a través de
nuestras redes sociales. Visítanos aquí
también.
&
(https://www.youtube.co
m/channel/UCOrMOPkLx
jToXj0k1bziRew) '
(https://www.facebook.c
om/PanamaHitek) )
(https://twitter.com/Pana
maHitek) *
(https://github.com/Pana
maHitek) +
Panamahitek © 2014 - Todos los Derechos Reservados.
(https://www.youtube.co
m/channel/UCOrMOPkLx
jToXj0k1bziRew) +
(http://panamahitek.com
/feed/)