16 febrero 2013

Controlando el puerto GPIO de su Raspberry Pi con WebIOPi y DRGPIO

Hace unos días me encontraba revisando la comunidad de Google+ para la Raspberry PI cuando alguien preguntó:  ¿Cual podría ser la mejor manera de controlar el puerto GPIO desde Android?

Otro usuario sugirió WebIOPi que es un pequeño script de python que te provee de una API RESTFUL para controlar el puerto GPIO de la Raspberry PI.

En las últimas dos semanas, he ocupado mi tiempo libre en desarrollar una pequeña herrameinta que te permita controlar el puerto GPIO de la misma manera que lo harías en la interfaz web de WebIOPi. También funciona como una sencilla referencia para las funciones de los pines cuando no está conectada a la Raspberry Pi.

Esta entrada la voy a dedicar a mostrarles como funciona DRGPIO y como lo pueden utilizar para controlar el puerto GPIO desde su dispositivo Android.


Prerequisitos


Primero, antes de descargar cualquier cosa en su Android, deben instalar y correr WebIOPi. Esto no es algo complicado de hacer, solo sigan estas instrucciones:

Instalando WebIOPi "la forma fácil"


Si ya tienen instalado python setup tools solo abran una terminal y ejecuten el siguiente comando:

sudo easy_install webiopi

Esto descargará todos los paquetes necesarios y estarán listos para correr WebIOPi.

Instalando WebIOPi "la forma difícil"


Si no tienens instalado python setup tools, ve a la página del proyecto WebIOPi y descarga la última versión disponible:


En el directorio de descarga ejecuta el siguiente comando:

tar -xzf WebIOPi-0.5.3.tar.gz

Cambiate al directorio extraído:

cd WebIOPi-0.5.3

E instalalo como root:

sudo ./setup.sh


Corriendo WebIOPi


La siguiente cosa por hacer es correr WebIOPi, esto es realmente fácil... Solo ejecuta el siguiente comando:

sudo python -m webiopi 8000

Si quieres correr la tarea en segundo plano solo coloca una "&" al final del comando como se muestra a continuación:

sudo python -m webiopi 8000 &

DRGPIO


Descargandolo


El siguiente paso es descargar en tu dispositivo android la aplicación DRGPIO, puedes encontrarla en la play store con ese nombre o haciendo click en el siguiente link:



Configuración inicial


Cuando abras la aplicación por primera vez, DRGPIO te pedirá verificar si ya tienes instalado WebIOPi y si está corrriendo, si ese es el caso has click en "Skip this step".





En la segunda pantalla, puedes especificar la información de conección de tu Raspberry PI. Esta pantalla de configuración está llena con los parámetros por defecto utilizados por WebIOPi. Si los has cambiado solo ingresa los valores correctos ahí.

La parte más importante es el nombre de host o la dirección IP, en este ejemplo estoy utilizando la IP privada de mi Raspberry PI:


En esta versión no es necesario especificar la versión correcta de su Raspberry PI.

Si quieres cambiar los valores de configuración luego, puedes regresar a esta pantalla seleccionando la opción "Settings" del menú principal..

Utilizando DRGPIO


Un mensaje se mostrará indicando que DRGPIO se está intentando conectar a tu Raspberry PI:




La palabra "connected" se mostrará en la parte de arriba de la pantalla si la conexión es exitosa:


Yo tengo una malísima memoria, por lo que quería que esta aplicación fuera una referencia fácil del puerto GPIO de la Raspberry. Así que los botones tienen la misma distribución que se muestra en la referencia del puerto GPIO.

Utiliza los cheques a los lados de los botones para cambiar el "modo" del puerto. Cuando están marcados el puerto está configurado como "entrada", cuando no están marcados son "salidas".

Hay un pequeño retardo entre hacer clic en el puerto y observar los cambios en la interfaz de usuario, así que procura no hacer click varias veces. Si hay algún error DRGPIO te mostrará un mensaje de error.

Modo de referencia


Puedes obtener más información del puerto seleccionando la opción "Reference mode" del menú principal.



Si haces clic a cualquier botón te mostrará información detallada acerca de ese puerto:



Problemas de Conexión


Si hay algún problema DRGPIO se va a desconectar de tu Raspberry y va a cambiar a "modo de referencia".


Si no te puedes conectar, por favor revisa que tengas acceso directo por red a tu Raspberry PI, también revisa si WebIOPi está corriendo y revisa las configuraciones en DRGPIO.

Para conectarte de nuevo selecciona la opción "Refresh" del menú principal.



Que esperár luego?


Esta primera versión es sumamente simple. Quisiera incorporar todas las funciones disponibles en WebIOPi, tal vez en las próximas versiones incluya alguna forma de utilizar el PWM o tal vez usar "pieles personalizadas" para lso botones o la posibilidad de utilizar diferentes configuraciones para diferentes Raspberrys PI.

Créditos y más información


Este software ha sido desarrollado por mi persona y es 100% grátis. Pero no habría sido posible sin WebIOPi y el consejo de Eric Trouch, así que si quieren conocer más de su trabajo pueden visitar su página:


Si quieren compartir ideas o desean que incorpore alguna funcionalidad pueden contactarme a info_at_teubi.co (cambien _at_ por @) o por medio de mensajes directos en mi twitter @mxgxw_alpha.

Si realmente les ha gustado este software también pueden hacer una pequeña donación vía PayPal:


No habiendo nada más que decir.. ¡Descarguen y disfruten!

No hay comentarios: