Sie sind auf Seite 1von 3

Hola a todos!

�Hoy os traigo un tutorial s�per interesante, o al menos a m� me lo


parece! Vamos a aprender a crear una aplicaci�n Android (quien tenga iPhone, iPod o
iPad tambi�n la puede hacer, ya que es multiplataforma) que encienda un LED, una
l�mpara, una lavadora, una nevera, la televisi�n, lo que sea, a trav�s de Arduino y
una conexi�n WI-FI.

Bueno, os voy a pasar a explicaros de qu� va esta curiosa aplicaci�n, que puede ser
vuestra por tan s�lo.... NADA. Lo que hace la aplicaci�n, es informarte y
permitirte seleccionar si encendemos cualquier aparato electr�nico, activamos algo,
o pr�cticamente lo que queramos. En este caso, para hacerlo sencillo, vamos a
encender un LED. Cuando el LED est� encendido, aparece la bombilla encendida en la
pantalla de nuestro tel�fono. Cuando el LED est� apagado, se muestra una bombilla
apagada. Podemos encender el LED o apagarlo a nuestro gusto, cuando queramos, con
tan s�lo tocar la pantalla, es decir, no hay botones. El bot�n es la propia
pantalla. Tocaremos en cualquier parte y cambiar� de estado.

�C�mo haremos esto? Utilizaremos Appcelerator para programar nuestra aplicaci�n


multiplataforma, en mi caso para Android. Tambi�n utilizaremos una placa Arduino y
su Ethernet Shield, que pod�is encontrar por Internet realmente barata.

En este art�culo, har� un breve repaso de c�mo configurar Arduino y el Ethernet


Shield. Para verlo m�s en profundidad, pod�is leer el Tutorial Arduino: Ethernet
Shield + Relay, donde est� todo explicado y desarrollado. Tan s�lo he hecho un
cambio en el c�digo, que es apagar el LED cada vez que encendamos el Arduino. No os
asust�is con lo del relay, ya que aqu� tan s�lo vamos a utilizar un LED. Pod�is
considerar el tutorial que os he enlazado antes como la primera parte de este, al
cual le a�adiremos la aplicaci�n Android.

Voy a hacer un peque�o repaso del tutorial anterior:

Todos los dispositivos que est�n conectados a la misma red a la que est� conectado
el Arduino, tendr�n la posibilidad de interactuar con el aparato que queramos
encender o apagar (o los aparatos), es decir, quien est� en la red casa, de la
oficina, del edificio, etc. Es por esto que este tutorial est� orientado a la
dom�tica. �A qui�n no le gustar�a controlar su casa con su smartphone? A m� por lo
menos, s�.

El Ethernet Shield lo vamos a utilizar para montar un servidor Web, el cual nos
proporcionar� el c�digo poder verlo en nuestro navegador y poder, as�, interactuar
con �l y con la aplicaci�n Android que crearemos a continuaci�n.

Para este tutorial, no vamos a realizar una conexi�n a Internet, sino que nos
quedaremos en una red local. Para acceder a la p�gina Web que creemos, deberemos
acceder con una direcci�n IP perteneciente a nuestra red, que ser� la que le
hayamos asignado al Ethernet Shield. En el c�digo que podr�is descargar m�s abajo,
ver�is que la direcci�n IP que le he asignado es 192.168.0.100/24.

Si quer�is saber si una cierta direcci�n est� disponible, pod�is realizar un ping a
esa direcci�n. Est� explicado en el tutorial enlazado arriba.

El c�digo del Ethernet Shield lo ten�is abajo para descargar y, est� bastante claro
su funcionamiento, aunque, por supuesto, si ten�is cualquier duda me la pregunt�is.
No os cort�is.

Voy a pasar a explicar el c�digo utilizado para la aplicaci�n, que se llama


ANDRUINO. Tambi�n est� disponible para descargar al final de la entrada.
Lo primero que haremos, ser� crear un nuevo proyecto, al que llamaremos ANDRUINO,
tal y como nos muestra la siguiente imagen:

A continuaci�n, como siempre, configuraremos el archivo tiapp.xml:

Tras esto, incluiremos nuestras im�genes personalizadas para el arranque de la


aplicaci�n y tambi�n para el icono de la aplicaci�n. Esto lo haremos en las
carpetas siguientes:

Las im�genes que pondremos tendr�n el siguiente aspecto:

Vamos a ver el c�digo de la aplicaci�n. Lo primero que haremos es crear una


ventana, a la que llamaremos ANDRUINO:

var ventana=Ti.UI.createWindow({ title: "ANDRUINO", backgroundColor:'white' }); A


continuaci�n, habr� que poner una imagen de fondo a la ventana, que podr� ser una
bombilla encendida o una bombilla apagada. Depender� del estado del LED. Para ello,
lo que vamos a hacer es guardar una variable llamada "encendido", la cual ser�
booleana (true: encendido, false: apagado). Esto lo haremos con una funci�n que
guarde el estado aunque se salga de la aplicaci�n. Esto se suele utilizar para
guardar los ajustes de una aplicaci�n, es decir, que cuando el usuario la cierre,
no se reinicie todo. Para ello, utilizaremos lo siguiente:
if(Ti.App.Properties.getBool("encendido")==null)
Ti.App.Properties.setBool("encendido",false);
if(Ti.App.Properties.getBool("encendido")==false)
{ ventana.backgroundImage='bombillaapagada.jpg'; } else
{ ventana.backgroundImage='bombillaencendida.jpg'; } Para acceder al valor de la
variable: Ti.APP.Properties.getBool("encendido"); Para asignar un valor a la
variable: Ti.App.Properties.setBool("encendido",false);
Ti.App.Properties.setBool("encendido",true); A continuaci�n, crearemos un click
listener para la ventana y, dentro tendremos un condicional para ver qu� imagen
ponemos cada vez que hacemos click en la pantalla y, tambi�n crearemos un cliente
HTTP para mandarle la petici�n al Arduino. ventana.addEventListener('click',
function(){ if(Ti.App.Properties.getBool("encendido")==false){ var url =
'http://192.168.0.100/?LED=F'; Ti.App.Properties.setBool("encendido",true);
ventana.backgroundImage='bombillaencendida.jpg'; } else { var url =
'http://192.168.0.100/?LED=T'; Ti.App.Properties.setBool("encendido",false);
ventana.backgroundImage='bombillaapagada.jpg'; } var client =
Ti.Network.createHTTPClient({ onerror : function(e) { alert('error'); }, timeout :
5000 }); client.open("GET", url); //Mandar la petici�n client.send(); }); En
funci�n del estado del LED, escogeremos una URL u otra, es decir, o apagamos el LED
o lo encendemos. Para finalizar, abriremos la ventana: ventana.open(); El c�digo
completo es el siguiente: /** * * Autor: Mario P�rez Esteso * www.geekytheory.com *
Android + Arduino = ANDRUINO * */ var ventana=Ti.UI.createWindow({ title:
"ANDRUINO", backgroundColor:'white' });
if(Ti.App.Properties.getBool("encendido")==null)
Ti.App.Properties.setBool("encendido",false);
if(Ti.App.Properties.getBool("encendido")==false)
{ ventana.backgroundImage='bombillaapagada.jpg'; } else
{ ventana.backgroundImage='bombillaencendida.jpg'; }
ventana.addEventListener('click', function()
{ if(Ti.App.Properties.getBool("encendido")==false){ var url =
'http://192.168.0.100/?LED=F'; Ti.App.Properties.setBool("encendido",true);
ventana.backgroundImage='bombillaencendida.jpg'; } else { var url =
'http://192.168.0.100/?LED=T'; Ti.App.Properties.setBool("encendido",false);
ventana.backgroundImage='bombillaapagada.jpg'; } var client =
Ti.Network.createHTTPClient({ onerror : function(e) { alert('error'); }, timeout :
5000 }); client.open("GET", url); //Mandar la petici�n client.send(); });
ventana.open(); - MONTAJE

Das könnte Ihnen auch gefallen