Domotizar Aire Acondicionado

Domotizar el aire acondicionado es uno de eso proyectos que a todos nos gustaría llevar a cabo, pero tenemos la sensación de que si algo va mal, la podemos liar, y mucho.

En mi caso tengo un equipo de aire acondicionado por conductos, de la marca MHI (Mitsubishi Heavy Industries), que está controlado por un panel central RC-E5 (o RC-E4) como el que podéis ver en la imagen:

Por lo que he podido leer sobre este panel de control, resulta que o tienes un mando por infrarrojos de los de toda la vida, o tienes el panel de control, pero no ambas cosas a la vez. Por tanto cada vez que quieres cambiar la temperatura o hacer otra operación, tienes que levantarte e ir al panel a apretar los botones. Me recuerda a cuando de pequeños nuestro padres nos usaban de mando a distancia de la tele… ¡que coñazo!. Esto no se puede consentir. Investigando un poco más averigüé que se pueden tener dos paneles de control en modo maestro/esclavo y que los dos sean totalmente operativos. ¡Bien!

 

Instalación hardware

Necesitamos otro panel de control igual que este. Buscando en Ebay conseguí uno por 30€, perfecto para empezar a trastear. Lo primero es conectarlos los dos y ver que realmente funcionan en pareja. Al desmontarlo vemos que, desde la unidad central que tengo encima del falso techo del aseo, le llegan dos cables, marcados como X e Y, y que hay dos mini interruptores en la placa del panel de control:

En la esquina inferior izquierda veis los bornes para los dos cables que unen el panel con la unidad central, y en el borde izquierdo están los dos switches: el de abajo sirve para poner el panel como Master o como Slave. De los dos paneles, uno debe ser el Master y el otro el Slave, si no es así, no funcionarán. Al arrancar la unidad central del aire acondicionado, se ve esto en el panel de control Master:

Una vez comprobado que los dos paneles funcionan bien juntos, ¿qué vamos a hacer? Pues bien, nuestro proyecto va a consistir en construir un sistema que pulse los botones por nosotros, cuando se le mande una orden desde un ordenador. Antes de empezar vamos a explicar en que consiste un pulsador como los que se pueden ver en cualquier placa de circuito impreso como la nuestra:

Tenemos dos tipos de montaje: los tres de arriba, que vienen con los pulsadores soldados o los trece de abajo, que son dos pistas que se unen cuando el pulsador baja y las toca simultáneamente. En mi caso lo único que necesito es controlar los tres botones de arriba, que sirven para subir la temperatura, bajarla, y encender o apagar el aparato. El resto, en principio no me supone una molestia hacerlo desde el panel (por ejemplo, el modo frio lo selecciono cuando empieza la temporada de calor y hasta que llega la del frio no lo cambio, por tanto no tiene sentido soldar y añadir más complejidad al sistema (aunque quien quiera puede hacerlo, y domotizar el aire al 100%). Si nos fijamos por la parte de detrás de la placa, vemos donde están soldados los pines de los pulsadores, y esa pulsación en la que simularemos con relés:

Una pulsación no es más que la conexión momentánea de los dos pines, por tanto con un relé lo podremos hacer de forma muy sencilla. La única pega es que si queremos mantener el panel dentro de su carcasa tendremos que hacerle un agujero por la parte de atrás y sacar los cables que soldemos a los pines por ese agujero. Vamos a soldar:

Lo que he hecho ha sido soldar unos pines en los puntos de soldadura de la placa para poder conectar después unas cables, pero es muuucho más fácil si soldáis directamente  los cables a la gota de estaño de la placa. En la parte de arriba de la imagen veis la tapa trasera del panel y el agujero por donde sacaré los cables para llevarlos a la placa de relés. Es conveniente usar cables de colores por parejas para no liarse: los amarillos son para bajar la temperatura, los grises para subirla y los azules para encender/apagar el aparato de aire acondicionado.

Una vez que habéis soldado los cables, conviene montar el panel, como Slave, junto con el otro, y probar que al juntar las puntas de cada pareja de cables, el panel ejecuta los que proceda, por ejemplo, con los dos cables amarillos, se baja la temperatura.

Si todo va bien, continuamos, si no, deberemos repasar las soldaduras, y buscar si hay algún cable cortado (que me ha pasado).

Vale, las soldaduras están bien, y todo esta correcto, ¿que placa de relés usamos? En mi caso, para controlar tres botones valdría con una de 4 relés opto-acoplados de las que se venden por ebay, pero como quiero dejar el sistema preparado para que si en un futuro quiero conectar algún otro botón, voy a poner el modulo de 8 relés (4€ en Ebay):

¿Cómo conectamos cada pareja de cables? Pues como queremos que cuando se active el relé, se conecten los dos cables del mismo color, tenemos que conectar uno al centro y otro al borne de la derecha del relé (configuración Normalmente Abierto (N.O.) de los relés):

Perfecto, ¡la cosa marcha! Ahora tenemos que decidir quién va a controlar esa placa de relés. Existen dos posibilidades (en realidad muchas más, pero bueno): Arduino o ESP8266. Si tenéis posibilidad de red, un arduino con una placa ethernet no es mala solución, pero en mi caso no tenía esa posibilidad asique me fui a un módulo nodemcu (2,68€ en Ebay), que me da la misma funcionalidad pero por WIFI. El software que uso en el módulo nodemcu es el ESPEasy, que permite hacer muchísimas cosas con el módulo, configurándolo a través de una web. Podéis descargar el software directamente desde aquí. Para subirlo al nodemcu, presionáis el botón del FLASH y sin soltar lo conectáis por USB para entrar en el modo programación del módulo. Una vez hecho, le subimos el firmware con el siguiente comando:

Tenéis más información sobre el ESP8266 en esta entrada del blog y en esta otra. Vale la pena darle una oportunidad a este módulo.

En mi caso, me he fabricado una placa casera con el módulo nodemcu y unas tiras de pines para poder conectar y desconectar los cables fácilmente (por si quiero hacer algún cambio). Aquí tenéis un par de imágenes de la placa:

Los pines de la parte de abajo son para conectar el alimentador de 5V para el nodemcu, y para alimentar la placa de relés que también funciona a 5V. Llegados a este punto, hay que hacer un inciso: la placa funciona internamente a 3.3v y las salidas digitales que tiene también. Si alimentáis el nodemcu desde el microusb, no tendréis forma de sacar 5v para alimentar la placa de relés, y esta no funcionará demasiado bien con menos de 5v (a mi con 4.3v me funcionaba a veces, no hacía bien los contactos internos de los relés, es como si le faltará fuerza…). La activación de los relés funciona perfectamente si la placa se alimenta a 5v y las entradas In1In8 se activan con mas de 3v. Otra puntualización: existen varios modelos de nodemcu, concretamente el que tenéis sobre estas lineas tiene un pin VU (el tercero por la izquierda, en la parte de abajo) que se corresponde con la alimentación VUsb, que en teoría deberían ser 5V (pero como existen varios modelos de placas, y yo no tenía a mano un alimentador con conector microusb, use los pines Vin y G que están en todas las placas nodemcu).

 

Configuración de ESPEasy

La configuración de ESPEasy, no es demasiado complicada. Una vez que arrancamos el nodemcu con el firmware recién grabado, no generará una red wifi, a la que nos conectaremos con el móvil, y al intentar navegar nos aparecerá la web de configuración. Lo que nos pide es la red wifi a la que se deberá conectar el modulo y la contraseña de la misma. Al hacerlo, el módulo se reiniciará y podremos conectarnos a él desde nuestra red wifi (si tenéis el DHCP activado tendréis que ver qué IP se le ha asignado para conectar).

La web principal que nos mostrará sera similar a esta:

En la parte superior tenemos la barra de menú, con el que nos moveremos por las distintas partes de la configuración. En Config podremos cambiar la configuración de red, y las contraseñas de acceso:

La configuración del controller IP, user, port y password se refiere al servidor donde tendremos nuestro sistema domótico, con MQTT (openHab, Domoticz, o similares). No es estrictamente necesario, y no la usaremos aquí (yo la tengo puesta porque estoy haciendo pruebas de integración con estos sistemas).

La siguiente pestaña, Hardware, es muy importante ya que es donde especificaremos el estado por defecto de los GPIOs de nodemcu cuando arranque el sistema. Si os fijáis en las foto de los pines que tengo soldados en la placa de arriba, he usado D3, D4, D6, D7, y D0. Esos pines deberán ser de salida, ya que se usarán para activar los relés. Su valor por defecto será desactivado, ya que no queremos que se pulse ningún botón al arrancar el nodemcu. Para conseguir esto, y por el tipo de placa de relés, deberemos aplicar un valor HIGH a los pines para que NO se activen los relés. Resumiendo: los relés se activan cuando ponemos 0V en los pines IN de la placa de relés, y queremos que no se pulse ninguno cuando se inicia el nodemcu, por tanto el valor por defecto inicial de los pines de nodemcu debe ser OUTPUT HIGH, lo que no dejará los relés sin activar:

La pestaña Devices sirve para cuando queremos conectar un determinado sensor al nodemcu, pero en nuestro caso, como vamos a activar los GPIO directamente accediendo al módulo por HTTP, no será necesario configurar nada en este apartado:

En la pestaña Tools,  iremos al botón Advanced para activar la pestaña Rules (que por defecto no está activa):

En esta última ventana, veis que se puede activar el envío de mensajes de debug a un servidor syslog, el servidor de hora NTP, las plantillas de los mensajes MQTT… Es bastante completo el software ESPEasy.

Para finalizar, en la recién aparecida pestaña Rules podemos definir el comportamiento de nuestro módulo. En el caso de la pulsación de botones en un panel de control de aire acondicionado vemos que la duración de la pulsación es muy importante, ya que si, por ejemplo, mantenemos el botón de subir la temperatura pulsado durante unos segundos podemos ver como la temperatura va subiendo continuamente y eso no es lo que queremos. Lo que queremos es que el panel actué como si hiciésemos una pulsación simple del botón. Ahora nos surge una duda: ¿cuanto tiempo deberemos activar el relé para que el panel lo reconozca como una pulsación simple y no como si mantuviésemos el botón pulsado de forma continua? La respuesta es simple: hay que hacer varias pruebas, con varias duraciones y ver como se comporta el panel. Lo que se llama: prueba y error, jajajaja. Y otra pregunta, también importante, ¿cómo garantizaremos que el tiempo que le digamos será siempre el mismo?. Muy fácil, lo que vamos a hacer es activar un GPIO desde nuestro ordenador haciendo una llamada HTTP del tipo http://IP/control?cmd=event,subirTemp y que sea ESPEasy quien automáticamente la desactive pasado un tiempo. Esto se consigue con las reglas (rules):

Como veis tenemos tres eventos: subirTemp, bajarTemp, y onOff que activan los relés poniendo el GPIO correspondiente a LOW (0V) y a los 200ms lo ponen a nivel HIGH desactivándolo. De esta forma simulamos una pulsación del botón de 200ms de duración. El número de GPIO depende de como hayamos cableado los relés (cables de colores de los que hablamos mas arriba). El valor de 200ms se obtiene mediante prueba y error, lo primero que probé fueron 50ms y unas veces lo detectaba como pulsación y otras no hacia nada el panel, luego probé con 1000ms, y el panel lo detectaba con varias pulsaciones (como si tuviera el botón apretado de continuo), y finalmente con 200ms lo detectaba como una pulsación simple en el panel.

El sistema completo queda tal que así:

 

En el servidor que se encargará de controlar el aire acondicionado, tendremos unos scripts, para subir la temperatura (subirTemp.sh):

para bajarla (bajarTemp.sh):

y de forma similar para encender y apagar el aire acondicionado… pues no, para encender y apagar el aire acondicionado tenemos un problema… ¿cómo detectamos que el aire está encendido o apagado si solo hay un botón para encenderlo y apagarlo? ¿cómo sabemos si esta encendido o apagado? Eso lo veremos en la segunda parte de esta entrada, pero ya os avanzo que lo haremos chulo (y barato), detectando la información que nos da el panel del aire acondicionado ¡mediante visión artificial con openCV!

 

Espero que os haya sido útil, y ¡os espero en la siguiente entrada!

4 Comments

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *