Voy a usar un relé usb como este:

Y resulta que estos relés chinos siguen casi todos las mismas especificaciones, y se usan de la misma forma. Además resulta que no soy ni el primero ni el más listo de los que lo usan y hasta hay un proyecto en GitHud que es un controlador de relés usb. El proyecto se llama usbrelay y lo podéis encontrar aquí.

Para más sorpresa mía lo encontré también en los repositorios de Raspbian, por lo que el proceso de instalación es muy sencillo:

$sudo aptitude install usbrelay

 Más facil imposible.

Una vez instalado lo ejecutamos y nos saldrá algo así:

Esto nos da información sobre el aparato y el estado de los sensores. Tenemos que comprobar que donde pone type el valor sea «16c0 05df», si no es así debemos ejecutar usbrelay de la siguiente forma:

$sudo USBID=16c0:05df usbrelay

 Ahora nos tenemos que fijar en las dos ultimas lineas de la salida de usbrelay. En ellas nos enumera los relés de la placa y su estado.

          64T05_1=0
          64T05_2=0

Si el valor del estado es 0 significa que está en su estado «natural»: el puerto NC cerrado y el NO abierto y si es 1 lo contrario.
Y ahora lo encendemos con:

$sudo usbrelay 64T05_1=1

 y lo apagamos con:

$sudo usbrelay 64T05_1=0

Se pueden apagar o encender dos dispositivos a la vez, aunque sean de diferentes módulos:

$sudo usbrelay 64T05_1=1 64T05_2=0 0M70M_1=0

En la página del proyecto nos dan un truco muy útil para los scrips. Con el comando

$sudo usbrelay 2>/dev/null

nos devuelve el estado de los relés.

Y esto es todo. En la siguiente entrada veremos como se controla el sensor de humedad y temperatura y luego lo integraremos todo en un script que ejecutaremos regularmente con la ayuda de cron (el «programador de tareas» de linux).