• Arduino,  Hardware,  Software

    Haciendo inteligente mi ventilador de pie

    ¿Que más se le puede pedir a un ventilador? Nos dan aire en los calurosos veranos, y no nos piden gran cosa a cambio… Frente al típico aire acondicionado, que gasta cientos de vatios, incluso más de mil, un ventilador de pie se contenta con menos de 100, por lo general. ¿Tiene sentido hacerlos inteligentes? ¿Al menos algo más de sentido que el hecho de que esté escribiendo esto en pleno Enero, cuando este mismo ventilador ya está guardado hasta que venga de nuevo el verano?

    Como se dice, «ya está todo inventado»… Ya existen modelos de ventilador con wifi, conectables a tu sistema domótico. Sencillo, podría pagar de 70 a 100 euros y ea, ya tendría ventilador inteligente. Pero así no es como se hacen las cosas aquí en El Programador Ibérico 😏.

    Empecemos por desmontar el ventilador y ver como funciona. La botonera delantera tiene un cable de entrada (que viene del cable de fase) y tres de salida, y al pulsar cada uno de los botones, se cierra circuito entre el cable de entrada y uno de los cables de salida, quedando el resto sin conectar. Este mismo funcionamiento será el que tendremos que replicar: recibir una orden del servidor de domótica y activar una de 3 salidas, según la velocidad que queramos, desactivando las otras.

  • Logo avisador de timbre
    Arduino,  Hardware

    Avisador de timbre casero

    ¡Ding-dong!

    Toda casa tiene un timbre. Ya sea más básico, más avanzado, nuevo, viejo… Pero no siempre lo escuchamos. Ya sea porque estamos en un rincón recóndito de nuestro hogar, porque estamos haciendo más ruido de lo normal (obras, aspiradora…), porque estamos disfrutando de ese temazo de moda con los auriculares, o porque nuestro sistema auditivo ha decidido no captar las ondas sonoras que nos avisan que el repartidor de Amazon está en la puerta esperando que le abramos.

    Agregar notificaciones al móvil puede ser la solución en este caso (y si tenéis un smartwatch aun mejor, porque será más difícil que se pase por alto). No me he puesto a mirar el mercado, pero seguro que hay modelos de timbre super guays del paraguay que se conectan al móvil, pero ¿por qué cambiar el timbre que ya tengo?. Me gusta mi ding-dong marca blanca, y no quiero tener otra app más del fabricante del timbre en mi teléfono.

    ¿Por qué no sacar una solución casera entonces? Vamos allá 🙂

    Mi timbre es básico y recibe corriente de 230v cuando se presiona el pulsador, estando sin corriente si no está sonando. Así que lo primero que habrá que hacer, es detectar la presencia de esos 230v, de forma segura a ser posible, para que una avería no nos fría nuestro microcontrolador. Hablando de microcontrolador, necesitaremos uno con capacidad WiFi, y qué mejor que el ya conocido ESP-01: barato, pequeño y fácil de usar.

  • Arduino,  Hardware

    Haciendo inteligente mi aire acondicionado – Epílogo

    Haciendo mantenimiento en mi casa, me decidí a arreglar el aire acondicionado del salón, un Johnson MGE-30-BC, que lleva bastante tiempo sin funcionar.

    Compré mi casa hace casi dos años, y por entonces el aire del salón no funcionaba. Siempre había dejado a un lado el proyecto de repararlo porque me esperaba lo peor (que el gas se habría escapado y habría que buscar la fuga, repararla y volver a cargarlo, que el compresor estaría estropeado y habría que cambiarlo, con la descarga y recarga de gas correspondiente, que habría que cambiar el aire acondicionado al completo… vamos, reparaciones no baratas precisamente), pero ha resultado ser la reparación más sencilla en mucho tiempo: la manguera que interconecta split y unidad exterior tiene todos los cables del mismo color, y dos de ellos estaban cambiados.

    No llego a comprender cómo llegó a ocurrir este problema… ¿el que lo instaló no lo probó? ¿pensó que estaba estropeado? ¿no persiguió al que le vendió la máquina para que le devolviese el dinero o algo? ¿le dió pereza?. Lo único que sé es que ahora funciona 😂.

    Ahora que ya estaba funcionando, y con el aire acondicionado de mi habitación modificado para poder controlarlo con el móvil, dije que el del salón no podía ser menos, por lo que me puse a descodificar los códigos del mando, igual que hice hace unos meses con el de mi habitación.

  • Arduino,  Hardware

    Haciendo inteligente mi aire acondicionado – Parte 3

    << Continuación de la parte 2

    Hora de terminar este proyecto y de ir pensando en el siguiente 😄.

    En la entrada anterior, portamos nuestro código para controlar el aire acondicionado al pequeño ESP-01. Toca hacer la instalación en el interior del aire acondicionado y cerrar todo.

    Primero, montemos una pequeña placa para alimentar al ESP-01 y con una salida para el pequeño LED infrarrojo. No necesitamos gran cosa: un regulador de tensión (en nuestro caso un LM317), un par de resistencias para configurarlo a 3,3v, un conector de 2×4 pines, y otro par de resistencias para que el ESP-01 inicie en modo normal. El diseño de la placa es el siguiente:

    Todo parece correcto. Montémosla en real a ver que tal. Lo más sencillo y rápido es usar placa perforada, aunque en un futuro empezaremos a hacerlas con ácido 😊

    ¿Qué hacer cuando no tienes resistencias de un tamaño específico? Poner varias en serie 😊
  • Banner
    Arduino,  Hardware

    Haciendo inteligente mi aire acondicionado – Parte 2

    << Continuación de la parte 1

    Vuelvo desde el inframundo para continuar con mi «aire acondicionado inteligente» 😄

    En la anterior entrada, conseguimos echar a andar un sketch de prueba que permitía controlar el aire acondicionado mediante un arduino mega. Ahora toca portar el sketch a un ESP-01 para hacer uso de su conectividad WiFi y tamaño compacto, ya que no parece haber demasiado hueco dentro de la unidad split del aire acondicionado.

    Al igual que con el proyecto de mi lavadora inteligente (que sigue funcionando genial un año después 😊), la idea sería usar MQTT para la comunicación con mi servidor central openHAB, por lo que necesitaremos la librería PubSubClient.

    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <PubSubClient.h>
    
    .
    .
    .
    
    void reconnect() {
      // Loop until we're reconnected
      while (!client.connected()) {
        // Attempt to connect
        if (client.connect(mqttClientId, mqttUser, mqttPassword)) {
          // Once connected, resubscribe
          client.subscribe(mqttPowerCommandTopic);
          client.subscribe(mqttModeCommandTopic);
          client.subscribe(mqttTempCommandTopic);
          client.subscribe(mqttSpeedCommandTopic);
        } else {
          // Wait 5 seconds before retrying
          delay(5000);
        }
      }
    }

    Para la gestión de conexiones WiFi, he encontrado una librería que nos permite configurar de nuevo la conexión WiFi en caso de que cambiemos de red, sin tener que reprogramar la placa, lo que nos viene genial. Se llama WiFiManager. En este caso, le indicamos que, en caso de no poder conectarse por WiFi a nuestro router, abra una conexión para realizar la configuración, y reintente la conexión pasados 3 minutos (180 segundos).

  • Arduino,  Hardware

    Haciendo inteligente mi lavadora – Parte 5

    << Continuación de la parte 4

    Llegó la hora de la verdad. Es hora de conectar las nuevas tripas a mi lavadora y ver si todo funciona como esperábamos. O bueno… Casi… Acabo de recordar que cuando hice las modificaciones preparatorias a mi lavadora (parte 1), no preparé el botón de inicio de lavado, que será el que puentee nuestro relé para simular que se ha pulsado el botón y con ello, mandará la orden de iniciar el lavado a la lavadora.

    La modificación debería ser sencilla. Soldar un par de cables a ambos terminales del botón de inicio de lavado. Veamos cómo termina siendo 🙂

    Primero, volvemos a abrir la parte superior de la lavadora, y buscamos cómo quitar los mandos frontales. En mi caso, con quitar cuatro tornillos, unas pestañas de plástico y desenchufar todos los cables, y ya tenía el frontal entero en mis manos.

    Manchas de dedos de fábrica incluidas en el precio
  • Arduino

    Haciendo inteligente mi lavadora – Parte 4

    << Continuación de la parte 3

    Hora de tocar la parte de software de este proyecto. Si recordamos, el requerimiento es simple: Hacer que cuando la lavadora termine el lavado (desbloquee la puerta), se lance una notificación a mi teléfono móvil.

    Para enviar notificaciones, podría elegir una de muchas rutas posibles: por e-mail, por alguno de los servicios que existen de comunicaciones, a través de una app que me diseñe yo mismo… Para ahorrar tiempo, decidí usar uno de los servicios que existen para notificaciones simples: pushbullet.

    Pushbullet te permite, entre muchas otras opciones, enviar pequeñas notificaciones de texto a todos los dispositivos que tengas enlazados. Podría entonces, desde mi microcontrolador ESP8266, enviar una notificación y recibirla en el móvil. Pero decidí ir un poco más lejos: Tengo un mini-ordenador como centro domótico en mi casa: un orange PI PC con OpenHAB, que me permite controlar centralizadamente mis enchufes inteligentes. ¿Y si conecto mi lavadora al sistema y es mi centro domótico el encargado de enviar dichas notificaciones? Así, también podré controlar el estado de la lavadora y enviar órdenes de puesta en marcha de forma remota.

    Empecemos con la forma de comunicación que va a tener el ESP-01 con mi centro domótico. En este caso, decidí elegir MQTT, por lo simple que es: Defines canales (topics) de comunicación, el dispositivo que vaya a escuchar esos canales se suscribe a ellos, y el dispositivo que vaya a enviar publica los mensajes a dicho topic. Para el uso de MQTT con los microcontroladores ESP8266, existe la librería PubSubClient, que nos facilitará el envío de mensajes entre un dispositivo y otro.

  • Arduino,  Hardware

    Haciendo inteligente mi aire acondicionado – Parte 1

    ¿Qué hay mejor que tener en manos un proyecto de mejora de un aparato electrónico (véase Haciendo Inteligente mi lavadora)? ¡Tener en mano dos proyectos de mejora de aparatos electrónicos!

    Tengo un aire acondicionado en mi habitación marca Daitsu. Es un modelo antiguo, el DSG-07HRN2. Mis planes son: quiero manejarlo desde mi móvil, y poder programarlo según X criterios (temperatura, época del año, si voy a estar o no en casa…). La mayoría de estas funciones se pueden programar en OpenHAB, pero por supuesto, primero deberé conectar mi aire acondicionado a mi servidor OpenHAB, cosa que, sin modificaciones, no es posible.

    Podría usar algún aparatito mágico (y caro) para manejar aparatos de infrarrojos desde el móvil (sé de su existencia), pero… ¿donde está la diversión? :P. Mi idea es meter otro microcontrolador ESP-01 en mi aire, que inyecte comandos en la placa receptora de infrarrojos, simulando que se ha recibido una señal infrarroja del mando. Y estoy seguro que va a ser una aventura interesante 🙂

    Primero, para investigar el protocolo con el que el mando se comunica con la unidad split, he usado el sketch de ejemplo IRrecvDumpV2 de la librería Arduino-IRRemote, creada por Ken Shirriff y con varios contribuidores.

    Cuando probé el mando de mi aire con mi arduino MEGA, me quedé extrañado de que decía que usaba protocolo de SAMSUNG. Curioso.

    ¿Samsung? ¿Daitsu? ¿Usan el mismo protocolo? ¿O es un error del sketch? ¿Lo averiguaremos?
  • Arduino,  Hardware

    Haciendo inteligente mi lavadora – Parte 3

    << Continuación de la parte 2

    Empecemos con el montaje de la placa que controlará el estado de lavado de la lavadora. Para que sea más sencillo de entender, lo separaremos en cuatro partes: El microcontrolador, su alimentación (ya que funciona a 3,3 voltios, en lugar de los 5 del adaptador de corriente que estoy usando), la detección de bloqueo de puerta y la actuación sobre el botón de inicio de lavado.

    El ESP-01 necesita alimentación a 3,3 voltios, como decía arriba, masa por supuesto, y para que funcione correctamente, necesita tener a positivo (mediante una resistencia, por ejemplo, de 10K) los pines GPIO0 y GPIO2. Después de eso nos queda un pin de salida (hacia el relé actuador del botón de inicio de lavado) y un pin de entrada, para la detección de bloqueo.

    La alimentación de 3,3 voltios la podemos conseguir, por ejemplo, de un LM317T, el famosísimo regulador de voltaje lineal que, a través de dos resistencias, nos permite obtener un voltaje específico. A través de una de las muchas calculadoras online, se puede calcular qué resistencias necesitas. En mi caso, utilicé ésta.

  • Arduino,  Hardware

    Haciendo inteligente mi lavadora – Parte 2

    << Continuación de la parte 1

    Tripas, hora de hablar de tripas. Tripas electrónicas, por supuesto…

    ¿Qué tipo de controlador puedo usar para este proyecto?. El primer requisito es que tenga WiFi, ya que será la forma en la que enviará las notificaciones a mi teléfono. Sobre cantidad de pines de entrada/salida (GPIO), con dos me vale (uno para detectar el bloqueo de puerta y otro para iniciar remotamente el lavado). Podría usar uno de los clásicos, Arduino UNO, con una placa (shield) WiFi:

    Es conocido por la mayoría de makers. Soporta miles de librerías con las que hacer vilguerías, pero… Tiene como 20 pines entre digitales y analógicos, y aunque la placa WiFi use algunos de ellos, sigue siendo demasiado para mi proyecto. Con dos pines me sería suficiente.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver
Privacidad