Relé USB con Linux

releusb

Dado lo variopinto de mis contenidos, y por tanto, probablemente de mi audiencia, explicaré en primer lugar que un relé es como un interruptor, pero controlado eléctricamente, dicho coloquialmente. De ésta manera, en pocas palabras, un relé USB me permite encender y apagar aparatos eléctricos desde el ordenador.

Lo cierto es que no hay muchos sitios donde poder comprar un relé controlable por USB, pero yo además tuve doble suerte porque encontré un ‘fabricante’ que además proporcionaba un programa para su manejo que funcionaba en Linux. Lo encontré en TCTEC y distribuye en varias tiendas internacionales por unos 40€ la placa de cuatro relés.

En mi caso, la utilidad de este aparatito es darle un valor añadido más a mi servidor casero, y hacer que éste haga varias cosas, por poner las primeras ideas en las que estoy pensando:

  • Encender una luz de sirena cuando el sistema de vigilancia basado en Motion detecte una alerta en alguna de las cámaras (el servidor ya hacía las veces de vigilancia desde hace un tiempo).
  • Programar el encendido y apagado de la calefacción. Fácil combinando el programa que controla el relé, y el servicio CRON de Linux.
  • Hacer (mediante Motion) que las cámaras de seguridad hagan de detectores de presencia y enciendan selectivamente la iluminación al pasar.
  • En definitiva todo lo que se pueda hacer programando un interruptor, las posibilidades son numerosas…
Una vez con el cacharrito en la mano, voy a explicar cómo configuro y manejo el software que proporciona el fabricante para Linux.

En primer lugar, me bajo el software de su página de descarga. Actualmente hay a disposición una versión con la librería libftd2xx incluida estáticamente con lo cual nos ahorramos problemas de dependencias, útil para impacientes como yo.

Una vez bajado el archivo, lo descomprimimos y entramos a la carpeta resultante en un terminal para compilarlo con un sencillo make. Es importante recordar que para éste paso es necesario tener instalado libftdi-dev (está disponible por defecto en Debian y casi todas las distribuciones, que yo sepa).

Una vez compilado sin errores, obtenemos el binario lrelaysetU. Si bien lo hemos podido compilar como usuario normal, para que nuestro nuevo ejecutable se pueda comunicar con el relé, es necesario lanzarlo como root.

La parte aburrida ya casi ha terminado, sólo nos falta obtener el número de serie único de la placa, ejecutando:

./lrelaysetU -l

Y obtenemos algo parecido a lo siguiente:

FTDI Devices = 1 -------------------------------------- Device         SerialNumber --------------------------------------------------------- TCTEC USB RELAY        FTUHVL12

A nosotros nos interesa el número que he marcado en negrita, que será el que usaremos cada vez que ejecutemos una acción para el relé. Y ahora vamos a divertirnos:

Como ejemplo, el siguiente comando activaría el relé número 1:

./lrelaysetU -sFTUHVL12,1

La parte que está coloreada de verde indica si estamos activando o desactivando el relé, así que pondríamos s para activar, o u para desactivar.

La parte que está coloreada en azul indica a qué relés de la placa va a afectar la acción. Ésta es la lista de posibilidades:

  • 1 – relé 1
  • 2 – relé 2
  • 4 – relé 3
  • 8 – relé 4
  • 15 – todos los relés

Todo eso con respecto al software. En cuanto al hardare es sencillo sabiendo algo de electrónica (yo, novato de mí, ¡tuve que consultarlo!), pero para hacer el manual completo del todo, aclararé que una parte del cable siempre irá conectada al contacto R (R1, R2, R3 o R4) y el otro a NO (desconectado -normally open-) o NC (conectado -normally closed-) según la acción que queramos que produzca el relé al activarse: desconectar o conectar, respectivamente.

8 comments On Relé USB con Linux

  • Ahora me das envidia… aix si la casa fuera mia y tuviera dinero…

    Espero que notaras que puedes lanzar varios relées al tiempo sumandolos… 5 = R1+R2 …

    Yo tengo un par de proyectitos con arduino a ver si los termino y hablo un poco de ellos ;)

  • _CONEJO da igual que la casa sea tuya o no, hay muchas utilidades que no lo requieren; por poner un ejemplo la “calefacción” puede ser activar o no un radiador de aceite :)

    Tomo nota de tu apunte, lo consideraré un anexo al manual!

  • Muy interesante, no conocía dichas placas.

    Centrándonos en el caso calefacción, ¿como montarías todo el tema eléctrico?, porque si tenemos varios radiadores eléctricos distribuidos por distintas habitaciones puede ser un lío de cuidado.

    Ya puestos sería interesante tambien disponer de algún sensor de temperatura, así podriamos tener la función termostato, encendido/apagado por tiempo o encendido/apagado remoto a través de internet.

    Le veo muchas posibilidades.

    Un abrazo!

  • Yorus, cada placa tiene un identificador propio que se usa para controlarlas, así que basta con tener tantas placas como necesites para controlar lo que tengas pensado.

    Lo del sensor de temperatura ya lo tengo controlado aunque no lo he mencionado por aquí todavía. Busca USB Tenki en Google y verás las sondas usb tan majas que me compré (también con controlador para Linux, of course).

    Lo único que hay que tener en cuenta es que lo que conectes a cada relé de la placa no supere los 5A, que es lo que soporta cada uno. Según el aparato de calefacción, es fácil que los supere así que una solución podría ser conectar entre el relé usb y la calefacción, otro relé más potente.

  • Membris Khan me equivoqué de hilo cuando comenté, sobre el RELE USB… quería saber donde compraste la board, porque he estado mirando y no encuentro un “site” online fiable para realizar la compra, si pudieras ayudarme en mi adquisición te lo agradecería. Un saludo.

  • Hola agmesas, en la página oficial del relé tienes una lista de tiendas a lo largo del mundo donde se puede comprar. Yo me decidí por Dontronics y todo me fue bien, pero seguro que con cualquier otra de la lista no hay ningún problema.

  • Membris Khan muchas gracias por responder, me gustaria que me dieras tu e-mail para poder concretar un poco, y no hacerlo por aqui y “guarrotear” el blog. Dontronics es Australiana… Mucho viaje para una board no? jeje, Saludos y gracias.

  • En superrrobotica.com tenéis la misma placa. Y es una tienda española.
    Yo lo estoy pensando seriamente.
    Hay otra cosa que también me gusta mucho y estoy esperando que llegue. Es un usb con emisor/receptor de infrarrojos para manejar aire acondicionado o televisores.

    Un saludo.

Dejar una respuesta:

Tu dirección de correo no será publicada

Pie del sitio