msgbartop
Me encanta el olor del napalm por la mañana
msgbarbottom

12 oct 13 Control del riego de jardín con Raspberry Pi

Escribía hace unos días sobre el control de relés con una Raspberry Pi. Este fin de semana, en el que he vuelto a Córdoba tras mucho tiempo sin regresar, hemos sacado, entre mi padre y yo, el primer partido al sistema anteriormente descrito:

Hemos conectado la electroválvula que controla el riego del jardín a uno de los relés. Mediante el uso del software WebIOPi controlamos desde un móvil o un PC la apertura de la válvula de riego. Y eso, aunque no está nada mal, no se presta demasiado bien a la automatización. Para ello, he desarrollado un pequeño script que permite controlar la electroválvula desde línea de comandos. Y, por descontado, invocarla desde el cron del sistema. :D

Siguiente paso: controlar el encendido de la depuradora de la piscina, del sistema de luces de la misma, y del sistema de riego por goteo del patio trasero. :mrgreen:

VN:F [1.9.20_1166]
Rating: 7.0/10 (2 votes cast)

Etiquetas: , , , ,

12 oct 13 Cómo instalar una tarjeta TP-Link TL-WN725N v2 en raspbian

…o en xbian, o en cualquier otro sistema operativo linux para Raspberry Pi. Uno de los problemas que estoy viendo que son más habituales a la hora de manejarse con la RPi es que las tarjetas de red inalámbricas por USB no suelen disponer de drivers adecuados para funcionar.

TP-Link TL-WN725N v2

TP-Link TL-WN725N v2

O al menos, las dos que yo he comprado, adolecían de este problema. ^_^ En el caso concreto de la TP-Link TL-WN725N, existen, al parecer, dos versiones: la v1 hace uso del chipset RealTek RTL8188CUS (que sí cuenta con soporte nativo en la RPi), la v2 utiliza el chipset RTL8188EUS, que no lo tiene, por lo que es preciso andar compilando, algo que en la RPi suele ser un tanto doloroso. Pero que, dado que se cuenta con fuentes adecuadas, tampoco es excesivamente complicado.

Lo que sí hay que tener en cuenta, según he podido descubrir, es que el driver, compilado directamente de las fuentes, tiene dos problemas tal y como viene de fábrica: el led de estado no funciona, y vuelca demasiada información de debug en los logs de sistema. Esto último, en el caso de la RPi, que hace uso de tarjetas microSD para albergar el sistema operativo, puede ser bastante grave, tanto por problemas de rendimiento como por desgaste del dispositivo. Por suerte, se puede modificar la fuente del código para solventar este problema antes de la instalación. Los pasos a seguir son los siguientes:

Obtener el código necesario para compilar el driver

git clone https://github.com/liwei/rpi-rtl8188eu.git
git clone –depth 1 git://github.com/raspberrypi/linux.git rpi-linux
git clone –depth 1 git://github.com/raspberrypi/firmware.git rpi-firmware

Modificar el fichero rpi-rtl8188eu/include/autoconf.h

Es preciso modificar dos aspectos: descomentar la línea #define CONFIG_LED, y comentar la línea #define CONFIG_DEBUG_RTL819X. En el siguiente diff puede verse de manera más clara:

diff -Nauw ~/src/pi_plus/linux/drivers/net/wireless/rtl8188eu/include/autoconf.h include/autoconf.h
— /home/pi/src/pi_plus/linux/drivers/net/wireless/rtl8188eu/include/autoconf.h 2013-05-02 19:39:42.177227144 +0100
+++ include/autoconf.h 2013-05-03 00:22:52.383030986 +0100
@@ -156,7 +156,7 @@

#define CONFIG_SKB_COPY 1//for amsdu

-//#define CONFIG_LED
+#define CONFIG_LED
#ifdef CONFIG_LED
#define CONFIG_SW_LED
#ifdef CONFIG_SW_LED
@@ -328,7 +328,7 @@
//#define CONFIG_DEBUG_RTL871X

#define DBG 1
-#define CONFIG_DEBUG_RTL819X
+//#define CONFIG_DEBUG_RTL819X

#define CONFIG_PROC_DEBUG 1

Compilar e instalar el driver

Seguimos con la receta anterior:

cd rpi-linux
make mrproper
zcat /proc/config.gz > .config
make modules_prepare
cp ../rpi-firmware/extra/Module.symvers .
cd ../rpi-rtl8188eu
CONFIG_RTL8188EU=m make -C ../rpi-linux M=`pwd`
sudo rmmod 8188eu
sudo install -p -m 644 8188eu.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
sudo depmod -a
sudo modprobe 8188eu

Con todo ello, quedará correctamente instalado el driver para poder utilizar esta tarjeta.

Las fuentes de este artículo son las siguientes:

Bonus extra

En la raspbian pelada y mondada, tal y como viene de fábrica, no se disponen de los elementos necesarios para compilar drivers, ni para hacer funcionar una tarjeta wifi. Es necesario, al menos, instalar lo siguiente:

  • build-essentials para poder compilar
  • git para descargar los respositorios
  • wireless-tools, usbutils y wpa-supplicant para poder conectar correctamente a una red wifi con cifrado WPA/WPA2
  • Para realizar la instalación de lo anterior, lo de siempre en sistemas de la familia Debian:

    apt-get install build-essentials git wireless-tools usbutils wpa-supplicant

VN:F [1.9.20_1166]
Rating: 9.5/10 (2 votes cast)

Etiquetas: , , , , ,

17 sep 13 Control de relés con una Raspberry Pi

Hace algún tiempo compré junto con mis compañeros de curro una Raspberry Pi. Para quien no sepa qué es este invento, en líneas generales se trata de un microordenador equipado con un procesador ARM (arquitectura que se usa habitualmente en teléfonos móviles), 512 MB de RAM, y una impresionante GPU que permite reproducir vídeos a 1080p Full HD. Y todo por el ridículo precio de 30 euros, aproximadamente. Y con la ventaja de que es un “ordenador de aprendizaje”, que permite hacer mil diabluras y pequeños proyectos, que asombrarían al más pintado.

Solar Powered Raspberry Pi

Solar Powered Raspberry Pi

Desde que la compramos cada uno hemos empezado a hacer pruebas, con la idea de ver hasta dónde podíamos hacer llegar el invento. Lo más convencional ha sido, obviamente, instalar una Debian preparada para esta peculiar máquina (Raspbian, por lo general), y montar pequeños sistemas. Otra de las labores que hemos realizado ha sido instalar sistemas de visualización de vídeo para convertir televisores en auténticos centros multimedia.

Yo, por mi parte, me he entretenido haciendo cosas más o menos sencillitas, hasta que he recuperado un viejo proyecto que llevaba años queriendo implementar: un sistema de domótica casero, para controlar los sistemas de riego por goteo del jardín. Estos sistemas procuran controlar de manera remota una electroválvula, que es la que permite el paso de agua al sistema de riego. Pero para implementar cualquier sistema de domótica que se precie -y un sistema de riego no es una excepción-, es necesario hacer uso de relés para controlar el paso de corriente a los dispositivos que se trata de controlar. Y es aquí donde la Raspberry se porta de maravilla.

Diagrama de conexión GPIO Rasbperry Pi a relés

Diagrama de conexión GPIO Rasbperry Pi a relés

La Raspberry proporciona un sistema GPIO sumamente configurable, mediante un bus de comunicación, que permite comunicarse con dispositivos externos programando el uso de puertos del sistema. Esto permite controlar de una manera sencilla una placa de relés preparada al efecto, y que gracias a la popularización de otro sistema programable empotrado como es Arduino, se pueden encontrar con suma facilidad en sitios como DealExtreme:

Conjunto de relés

Conjunto de relés

Dicho y hecho. No tardé mucho tiempo en hacerme con la placa anterior, y empezar a hacer pruebas de control con una aplicación web, especialmente bien pensada para controlar los puertos GPIO mediante dispositivos móviles. El resultado es el siguiente:

Esta aplicación permite controlar con una sencilla pulsación el cambio de estado del puerto de comunicación escogida, que activa o desactiva el relé. Una vez que puedes controlar los relés, puedes controlar de una manera sencilla algo como una electroválvula, disponiendo de una fuente de alimentación adecuada, cuyo paso de corriente se controla mediante el relé. La siguiente prueba que tengo que hacer es conectar de manera efectiva la salida del relé a la electroválvula.

La aplicación, por supuesto, es apenas el primer paso, ya que su operación es completamente manual y no permite establecer ninguna programación de la activación del sistema de riego, pero permite verificar de una manera muy sencilla que el sistema funciona. A partir de aquí, mi siguiente paso será implementar una aplicación que permita establecer una programación mediante cron o eventos externos.

Seguiremos informando… :mrgreen:

VN:F [1.9.20_1166]
Rating: 9.3/10 (3 votes cast)

Etiquetas: , , ,

08 jun 13 Copia de seguridad y compresión de tarjetas SD en Linux

Hoy traigo un mini-tutorial de cómo hacer imágenes comprimidas de memorias externas (SD, USB…) en Linux.
Para crear las imágenes:

dd if=/dev/sdX | gzip -9 > /ruta/a/backup.img.gz

…siendo sdX el dispositivo a clonar.

Para restaurar las imágenes:

gzip -dc ruta/a/backup.img.gz | dd of=/dev/sdX

…siendo iguamente sdX donde restaurar la imagen.

Pero si queremos ser creativos, podemos hacer esto mismo, enviado las imágenes a un tercer servidor:

dd bs=1M if=/dev/sdX | ssh user@host ‘gzip -9 > /ruta_remota/a/backup.img.gz’

…algo sumamente útil si, por ejemplo, estamos haciendo diabluras con una Raspberry Pi y contamos -obviamente- con poco espacio en el sistema local.

VN:F [1.9.20_1166]
Rating: 0.0/10 (0 votes cast)

Etiquetas: , , , , ,