Vous êtes sur la page 1sur 23

Exportar datos de sensores desde

Arduino a Excel
! enero 15, 2014 (http://panamahitek.com/exportar-datos-de-sensores-desde-arduino-a-excel/) " Antony
Garca Gonzlez (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 con


Arduino y sensores, enviar la informacin obtenida a algn
otro software para su anlisis y utilizacin. Aprende a
exportar datos de sensores desde Arduino a Excel, por
medio de una interfaz en Java. Se utilizar las libreras
Arduino para Java y la librera POI para generar los archivos
de Excel.

Para exportar datos de sensores desde Arduino a Excel yo recomiendo


utilizar Java. Aquellos que frecuentan este blog saben acerca de mi
librera Arduino para Java.
http://panamahitek.com/libreria-arduino-para-java/ (/libreria-arduino-parajava/)

Normalmente cuanto escribo un post acerca dealgn proyecto en la lnea


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 cdigo a utilizar en Arduino es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

****************************************************

#include "DHT.h" //cargamos la librera DHT


#define DHTPIN 2 //Seleccionamos el pin en el que se //conectar el senso
#define DHTTYPE DHT11 //Se selecciona el DHT11 (hay //otros DHT)
DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que ser usada por Ard
boolean Start=false;
int mensaje=0;
void setup() {
Serial.begin(9600); //Se inicia la comunicacin 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

31
Serial.println(t);
32
delay(2000); //Se espera 2 segundos para seguir leyendo //datos
33
}
34 }
35 ****************************************************

Es un cdigo sencillo. Se lee la humedad y la temperatura y se envan por


medio del puerto serie. Es importante utilizar Serial.println() y un pequeo
delay de 10 milisegundos. A la hora de leer los datos Java a veces se
confunde. El mtodo que utilizo yo para enviarme series de datos de
Arduino a Java requiere de una secuencia, y ese pequeo delay es el que
hace que todo me funcione correctamente. A continuacin 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-aExcel.png)

Ahora se necesita implementar la librera Arduino para Java (/libreriaarduino-para-java-version-2-0-1/).


La
librera
RXTX
(http://panamahitek.com/requisitos-para-utilizar-arduino-con-java/) ser
necesaria en esta ocasin.
Se debe utilizar la conexin RXTX debido a que se transmitirn y se
recibirn datos.

(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-a-Excel1.png)
Se debe tomar en cuenta que el puerto COM utilizado vara de computadora a
computadora. En mi caso es el 10, en el de ustedes puede ser diferente. Al
declarar el objeto evento aparecer una opcin a la izquierda de la lnea que
indicar que se deben importar todos los mtodos abstractos. Al hacer clic en
dicha opcin, se agregar el mtodo SerialEvent.

Ahora hay que establecer cmo se van a recibir los datos. En Arduino
primero se enva la Humedad y luego la Temperatura. Se debe crear una
variable, a la cual llamar Slot. Dependiendo del valor de Slot, se ejecutar
determinada accin.

(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-aExcel6.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 mtodo
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
prximo 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
instruccin que se coloque despus del PrintMessage ser despreciada.
Lo que voy a hacer es lo siguiente: crear un mtodo 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-aExcel7.png)
De esta forma, al leerse el dato de temperatura, se disparar el mtodo
jTableUpdate. Agregamos las instrucciones para agregar los datos a la
tabla.
Para cada ejecucin 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 librera 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-aExcel10.png)
Ahora hay que programar los botones. Primero el botn de iniciar la toma de datos.

Se crea otra llave, una variable del tipo boolean para condicionar el
comportamiento del botn. Si es falso, se enva un 1 para iniciar la toma
de datos. De lo contrario se enva un 0 para detener la toma de datos.

(http://panamahitek.com/wp-content/uploads/2014/01/Sin-ttulo-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-aExcel11.png)
Ahora estamos listos para pasar a Excel.

Uso de la Librera POI


La
librera
POI
(que
est
disponible
en
este
enlace
(http://panamahitek.com/wp-content/uploads/2014/01/poi-bin-3.920121203.rar)). Ha sido diseada especialmente para exportar
documentos a Excel. Ahora voy a explicar como funciona.
Lo primero que le vamos a agregar al botn Exportar a Excel es un
jFileChooser que nos entregue la direccin en la cual queremos guardar el
fichero.

(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-aExcel12.png)
Ahora vamos a crear un mtodo 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-ttulo-6.png)
Ahora si se quiere crear una fila, se debe modificar el parmetro del
mtodo createRow(int row). Si se quiere modificar la columna entonces
se debe cambiar la celda en el parmetro de createCell(int celda).
Lo primero que har es colocar un ttulo. 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-ttulo-4.png)
En el cdigo del botn de exportar a Excel he colocado lo siguiente:

(http://panamahitek.com/wp-content/uploads/2014/01/Arduino-aExcel14.png)
Esto es todo. Se puede hacer la prueba y se obtendr lo siguiente:

(http://panamahitek.com/wp-content/uploads/2014/01/Sin-ttulo41.png)
Los archivos que forman este proyecto los puedes descargar desde este
enlace
(http://panamahitek.com/wpcontent/uploads/2014/01/SensorsToExcel.rar).
Por ltimo, el tutorial completo en video:

Espero que la informacin suministrada sea de su agrado y comprensin.

Artculos relacionados

(http://panamahitek.co

(http://panamahitek.co

m/arduino-java-

m/libreria-arduino-para- m/libreria-arduino-para-

enviando-mensajes-a-

java-version-1-3-0/)

pantalla-lcd-desde-

Libreria

java-con-arduino/)

Java,

Arduino
Enviando

Arduino
versin

para Librera
1.3.0 Java,

Arduino

(http://panamahitek.co
m/arduino-javaenviando-mensajes-apantalla-lcd-desdejava-con-arduino/)

Arduino
versin

para
2.0.0

(http://panamahitek.co

a m/libreria-arduino-para- m/libreria-arduino-para-

pantalla LCD desde Java java-version-1-3-0/)


con

java-version-2-0-0/)

Java: (http://panamahitek.co

mensajes

(http://panamahitek.co

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/)
Librera Arduino para Java (http://panamahitek.com/tag/libreria-arduino-para-java/)
Librera POI (http://panamahitek.com/tag/libreria-poi/)

Netbeans (http://panamahitek.com/tag/netbeans/)

ANTONY GARCA GONZLEZ (HTTP://PANAMAHITEK.COM/AUTHOR/ANTONYGARCIA-GONZALEZGMAIL-COM/)

Nace el 30 de julio del ao 1992 en Ciudad de Chitr, provincia de


Herrera, Panam. Crece y recibe su educacin primaria y pre media en
Guarar. Hacia el ao 2008 inicia sus estudios de Bachillerato en Ciencias
con nfasis en Informtica en el Instituto Coronel Segundo De Villarreal
en la Villa de Los Santos. Se grada en el ao 2010 e inicia sus estudios de
Licenciatura en Ingeniera Electromecnica en la Universidad Tecnolgica
de Panam (UTP), sede Azuero. En el 2013 inicia el proyecto Panama
Hitek. Actualmente es el director del equipo de autores, cursa el sptimo
semestre de su carrera y trabajar para la UTP como asistente de
investigacin, para la Unidad de Eficiencia Energtica

$ Un documental sobre la Historia de Arduino (http://panamahitek.com/un-documental-sobre-la-historia-de-arduino/)

Java 3D: Programando en la tercera dimensin % (http://panamahitek.com/java-3d-programando-en-la-tercera-dimension/)

BUSCAR EN PANAMA HITEK

Buscar...

LICENCIA

Panama Hitek by Antony Garca 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 contribucin podremos comprar nuevos dispositivos para seguir publicando


nuestros conocimientos.

AUTORES
Antony Garca Gonzlez (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)
Flix Toms Gonzlez (http://panamahitek.com/author/felixgonzalez/) (2)

Javier Brathwaite (http://panamahitek.com/author/jbrathwaite/) (1)

VIDEOS

h?v=HgAxnYDVx90)
(https://www.youtube.com/watc

h?v=kJ_L5bz7hM0)
(https://www.youtube.com/watc

h?v=r0WSmKU3OH4)
(https://www.youtube.com/watc

h?v=oAwA5t3_diY)
(https://www.youtube.com/watc

h?v=3NdWIDMqV80)
(https://www.youtube.com/watc

h?v=7lO7dnVSGkQ)
(https://www.youtube.com/watc

h?v=XYtrVl8R0Wk)
(https://www.youtube.com/watc

h?v=ZvcW0-DEeVQ)
(https://www.youtube.com/watc

h?v=k0qEMOlN6KM)
(https://www.youtube.com/watc

SGUENOS EN FACEBOOK

Bscanos en Facebook

Panama Hitek
Me gusta

Panama Hitek
18 h

Antony Garca G., de Panama Hitek estar


representando a la Universidad
Tecnolgica de Panam y a Panam en el
prximo Congreso Regional de
Instrumentacin Avanzada en Costa Rica.
El tema a exponer "Sistema de Captura y
Anlisis de Datos (SiCADA) para estudios
de rendimiento en unidades de
acondicionamiento de aire".

A 1398 personas les gusta Panama Hitek.

Plug-in social de Facebook

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

VISTANOS!!
Mantente en contacto a travs de
nuestras redes sociales. Vistanos aqu
tambin.

&

(https://www.youtube.co
m/channel/UCOrMOPkLx
jToXj0k1bziRew) '
(https://www.facebook.c
om/PanamaHitek) )
(https://twitter.com/Pana
maHitek) *
(https://github.com/Pana
maHitek) +

(https://www.youtube.co
m/channel/UCOrMOPkLx
jToXj0k1bziRew) +
(http://panamahitek.com
/feed/)
Panamahitek 2014 - Todos los Derechos Reservados.

Vous aimerez peut-être aussi