Controlador de A.C.

Año 2017

La domótica es algo interesante, pero siempre que sea útil y no un alarde.

En mi caso, había percibido la utilidad de poder controlar la unidad Split del Aire acondicionado de casa cuando salía del trabajo, para que la estancia alcanzara la temperatura deseada antes de llegar a casa. Un sistema que funcionara bajo demanda, pues no quería un servicio programable o un temporizador, ya que no sabía previamente cuándo o a qué hora iba a salir de la oficina.

Esto además optmizaría el gasto energético, pues solamente en los casos en los que necesitaba enfriar la estancia, consumiría electricidad, y además, podía saber si me lo había dejado encendido por olvido y apagarlo desde cualquier lugar remoto.

Por último, lo quise diseñar para que formara parte de todo el sistema domótico que estaba ideando para la casa, y como tal, se comunicaría con otros dispositivos de domótica del hogar para interactuar con ellos de manera coordinada.  (por ejemplo, no encenderse si la calefacción también estaba conectada).

-Sensor de Temperatura interior.

-Conexión WIFI 

-Display OLED para indicar temperatura e IP asociada.

-Emisor de Infrarojos para comandar el Split

-Receptor de infrarojos para aprendizaje.

-Protocolo MQTT para envío y recepción de mensajes a otros dispositivos domóticos.

-Broker MQTT en NAS.

-Desarrollado en módulo ESP 8266

El corazón de la controlador es un sistema basado en el  microcontrolador ESP 8266 que programé mediante el sistema compatible con Arduino para que aprendiera los comandos que desde el mando original del Aire Acondicionado se podían enviar.

Para ello, le conecté un diodo led IR para que leyera el tren de bits que el mando original enviaba, lo decodificara utilizando el protocolo apropiado, y los almacenara digitalmente para tenerlos a disposición y poder repetirlos.

Para volver a enviarlos al split desde el controlador, le conecté un diodo emisor IR.

La estación base de este controlador tendría que ir ubicado en un lugar ‘visible’ para el split del Aire acondicionado, y que tuviera cobertura WIFI, pues el controlador se conectaba al punto de acceso de la casa para ser accesible y controlable desde internet.

Como último elemento de conexión, le doté de un sensor de temperatura, para poder saber en todo momento qué temperatura alcanzaba la estancia  y poder actuar en consecuencia.

Por último doté al controlador de un pantalla OLED que mostraba los datos de temperatura, así como la dirección IP asignada y el estado de conectividad.

Quise diseñar este primer sistema domótico pensando que en el futuro añadiría más elementos similares, y por ese motivo, lo programé siguiendo el estándar de protocolo de comunicaciones industriales MQTT. Definí un sistema jerárquico de mensajes en los que los clientes emiten, identificando otros miembros domóticos de la red y accediendo (suscribiéndose) a la información que ellos publican y poder actuar en consecuencia. Por ejemplo, un radiador eléctrico no tendría sentido que estuviera funcionando a la vez que el Aire acondicionado, por lo que este tipo de incompatibilidades formaban parte de la lógica de negocio que programé dentro del controlador.

Como este sistemas de mensajes es centralizado, se necesita un broker MQTT, es decir, alguien que coordine y gestione los mensajes, las suscripciones (para saber a quién tiene que enviar los mensajes) así como establecer su tiempo de vida y difusión para asegurar que son entregados a quienes correspondan, aunque en ese momento estén offline.

En mi caso, el broker MQTT fue instalado y configurado dentro del servidor NAS, y así asegurar el sistema con alta disponibilidad.

 

Tal y como se ha comentado, el dispositivo basado en ESP 8266 se conecta a internet a través de un punto de acceso inhalámbrico, pero además, programé un mini servidor web dentro de él, de modo que puedo acceder a una sencilla página web y poder realizar acciones tal y como parada o arranque del Aire a condiucionado, o consulta de las temperaturas y su evolución.

Como esto puede ser poco sencillo de utilizar, además programé una app para dispositivos móvles que facilitara su funcionamiento, la llamé «domoticApp«.

Aproveché la coyuntura para hacerla en otro lenguaje distinto al que había utilizado en la estación meteorológica y en esta ocasión la programé utilizando el nuevo lenguaje Swing deApple también nativo para iOS, integrando librerías CocoaMQTT FrameWork. 

De nuevo, la app no tiene un aspecto final, pues eso lleva un tiempo que por ahora no tengo, y la app me es perfectamente funcional.

De igual modo, la app se suscribe a la cola de mensajes MQTT apropiada para que le lleguen todos los mensajes publicados por los dispositivos que me interesa controlar con ella, y poder conoecer su estado.

Todo: Tengo que aprovechar la circunstancia para probar el sistema de notificaciones Push y que de este modo me avise en los casos de olvido, o me haga algún tipo de recordatorio de que el split está conectado.

Obviamenet la imagen de la entrada es  el sistema montado en una protoboard, a falta de tiempo para poder hacerle un encapsulado con la impresora 3d y colgarlo en la pared. El tiempo da para lo que da…