Continuando la serie de artículos sobre aparatos que tengo, introduzco el último y más importante del sistema casero de domótica que he creado.
El kit o módulo que aparece en la fotografía pertenece a la familia de módulos a relé de la empresa CEBEK, cuyo código es T-1. Es un módulo que puede manejar hasta 4 relés a través de unos bornes de entrada. Tiene muchas ventajas, como que aisla la señal de entrada del resto del circuito con optoacopladores o como que usa un puente rectificador para la alimentación del circuito. El módulo se alimenta con una tensión de 12 voltios e intensidad de 200 mA (muchos transformadores pequeños de móvil u otros aparatos los proporcionan de sobra).
La idea es que con este circuito se puedan manejar aparatos eléctricos (incluidos electrodomesticos) desde el ordenador. Para ello, por una parte se usan los relés a modo de interruptor de un cable normal (en mi caso uso alargadores para no tener que pelar los de los aparatos eléctricos), por lo que en el circuito que uso podría manejar hasta cuatro aparatos distintos; por otra parte los cuatro bornes de entrada van conectados a cuatro de los ocho cables de datos de un cable paralelo.
Aprovechando que es muy sencillo acceder al puerto paralelo del ordenador y que las señales son de 5 voltios (más que suficiente para activar los optoacopladores) es posible mandar un byte al puerto de datos del paralelo (0x378) para que llegue a los bornes del circuito y posteriormente active los relés. ¿Como funciona la lógica de encender y apagar relés? pues cuando se manda un byte a través del puerto paralelo, los bits que esten a 1 hacen que los correspondientes pines del puerto paralelo se activen a 5 voltios, lo que en el circuito provoca finalmente que se activen los relés asociados. Asi por ejemplo si enviamos un 3, en binario es 0011, activándose los dos primeros relés. Con este sistema se pueden encender lámparas, calefacciones, microondas, lavadoras, persianas eléctricas, sistemas de riego, etc.
En windows 95, 98 y Millenium se puede acceder directamente al puerto paralelo, sin embargo en windows nt, 2000 y xp se necesita crear un driver que se ejecute en el nivel (ring) privilegiado 0, porque en el nivel 3 no se permite hacer directamente. Como tampoco quise perder tiempo en crear mi propio driver, usé un programa que ya hace todo eso de una forma muy sencilla: Port Talk, el cual, una vez instalado, da permiso a una aplicación (proceso) para que acceda a un puerto determinado (o a todos) desde la linea de comandos. Finalmente solo basta usar el método _outp en C para enviar datos al puerto paralelo:
_outp(0x378,3);