Instalación de un repetidor inalámbrico para el timbre de una vivienda. El conjunto se compone de un pequeño transmisor de RF y su receptor. El transmisor tiene un alcance entre 100 y 300 metros, y funciona con una pila de 12V. El receptor del timbre tiene el mismo formato que un cargador USB, se puede conectar en cualquier toma de red, y funcionará siempre que esté dentro de la zona de cobertura del transmisor. La ventaja de este repetidor de timbre, es que su receptor se puede instalar rápidamente en cualquier lugar de la casa, pudiendo elegir su melodía y volumen, o dejarlo desconectado cuando no sea necesario.
A pesar de que tengo dos timbres en casa conectados al pulsador de entrada, ambos cableados, en alguna ocasión no lo he oído. Normalmente por estar trabajando con los auriculares puestos, o por estar mecanizado alguna pieza con la CNC.
Este problema lo voy a solucionar instalando un repetidor de timbre inalámbrico. De esta forma me podré llevar el receptor cerca de donde esté trabajando, y así podré oír siempre el timbre.
Como económicamente nunca merece la pena fabricar algo que ya está comercializado, he comprado un timbre inalámbrico compuesto por un transmisor y 2 receptores. El segundo receptor no sería necesario, pero la diferencia del conjunto con dos receptores es menor de 3€, y aunque no lo use me podría servir de repuesto. Este conjunto es un timbre completo y no funciona como repetidor, pero es muy sencillo integrarlo dentro de una instalación convencional para utilizarlo como repetidor.
El pulsador del timbre incorpora un transmisor de RF, funciona en la banda de los mandos a distancia, concretamente en 433,92MHz. Aunque la potencia del transmisor es inferior a 10mW, tiene un alcance entre 100 y 300 metros.
Montaje del timbre como repetidor
El transmisor funciona con una pila de 12V, pero como lo voy a utilizar de repetidor, lo alimentaré con una pequeña fuente conmutada, la cual tomará la tensión de red de uno de los timbres que ahora tengo instalados.
El pulsador del transmisor lo dejaré siempre accionado, soldando un puente entre sus dos terminales. Así cuando alguien presione el pulsador exterior del timbre, llegarán los 230V a los cables del timbre, y al mismo tiempo a la fuente conmutada. Convirtiendo de esta forma tan sencilla, un timbre inalámbrico en un repetidor de timbre convencional.
Receptor del timbre
El receptor del timbre tiene el mismo formato que un cargador USB, se puede conectar en cualquier toma de red, y funcionará siempre que esté dentro de la zona de cobertura del transmisor. La ventaja de este repetidor de timbre, es que su receptor se puede instalar rápidamente en cualquier lugar de la casa, pudiendo elegir su melodía y volumen, o dejarlo desconectado cuando no sea necesario.
Configuración y emparejado
El conjunto del timbre (Transmisor y Receptor-es) ya viene emparejado de fábrica. Pero si se quiere modificar la melodía del timbre, es necesario repetir de nuevo el proceso de emparejamiento. Con el pulsador superior se cambia la melodía, y con el pulsador inferior se puede modificar el volumen de escucha entre 3 niveles: Alto-Bajo-Medio.
El volumen de escucha inicial siempre será el más alto, y no se guarda al emaprejar los equipos.
Emparejado y selección de la melodía
Enchufar el receptor en una toma de red
Elegir una melodía mediante pulsaciones cortas, con el pulsador superior
Una vez elegida la melodía, mantener el pulsador durante 5″, hasta que el LED parpadee rápidamente
Soltar el pulsador del receptor, y pulsar el botón del transmisor
¿Dónde fabricar el PCB?
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos, pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.
Controlando la conexión y desconexión de una toma de enchufe, en función de los excedentes de energía eléctrica que genera una instalación solar, es posible adaptar los consumos de la vivienda de forma automática, y reducir el coste de la factura.
Hace unos días monté un controlador de encendido y apagado automático en dos equipos de aire acondicionado, para aprovechar una parte de la potencia excedente que generan los paneles solares en mejorar la climatización de la vivienda.
Ahora complementaré este sistema de control, añadiendo una toma de alimentación portátil. Esta toma de red la utilizaré para conectar equipos auxiliares, los cuales no necesiten permanecer siempre encendidos, consiguiendo así un ahorro extra en la factura eléctrica.
La toma de red se podría conectar a una regleta múltiple, y controlar varios dispositivos a la vez. La corriente máxima que soporten los contactos del interruptor que utilice, definirán la potencia máxima de uso. La electrónica de este controlador de red no varía en función de la potencia que maneja, sólo se necesita definir los umbrales de encendido y apagado en el firmware, antes de cargarlo en el módulo ESP32.
Los posibles usos que podría tener esta toma de red son muchos. Por ejemplo para alimentar un termo de agua caliente auxiliar, un calefactor o radiador portátil, la depuradora de una piscina y su climatización, el punto de carga para un coche eléctrico… y cualquier otra cosa que se nos ocurra. Para el uso que yo le voy a dar, he fijado sus dos preset de encendido por excedente de potencia solar en 1,2kW y 2,2kW. Una vez programado el módulo, se podrá elegir el preset de funcionamiento a través del interface Web del ESP32. La desconexión automática de ambos preset es la misma, y siempre desconectará la carga cuando la potencia solar excedente sea inferior a 100W.
En el montaje anterior, como protección para el aire acondicionado, configuré el intervalo de tiempo mínimo entre dos conmutaciones automáticas consecutivas con 3 minutos. En este caso, como la toma de red la utilizaré para otros usos, he reducido el tiempo de protección a 1 minuto, consiguiendo así un control de encendido/apagado más rápido.
Los interruptores de RED
Los interruptores de red más utilizados son los de tipo mecánico, principalmente por su bajo precio y gran aislamiento cuando los contactos están abiertos. Para automatizar la conexión y desconexión eléctrica de cualquier dispositivo se utilizan relés, también llamados contactores.
Los relés funcionan a partir de una tensión de control de baja corriente, normalmente suministrada por un autómata o circuito micro-controlador. El accionamiento que permite el paso de corriente a la salida de un relé, puede ser mecánico o electrónico.
El problema principal de un relé de tipo mecánico, es la degradación de sus contactos cuando trabaja con corrientes altas, pudiendo producir con el tiempo falsos contactos y chisporroteo. Otro inconveniente es que su tiempo de accionamiento, al ser mecánico es lento y su retardo no siempre es el mismo, quedando limitando su uso para controlar equipos que no requieran velocidad ni precisión en sus maniobras.
Relé de estado sólido (SSR)
Los relés de estado sólido, también conocidos por su abreviatura en inglés SSR, no tienen partes móviles, son silenciosos, rápidos y no sufren degradación. El inconveniente principal es que no soportan picos de corriente superior al definido por el fabricante, porque se averían. En caso de avería, los relés SSR normalmente se quedan con sus dos salidas en cortocircuito, manteniendo la carga permanentemente conectada a la red eléctrica y consumiendo energía.
Al igual que los relés electromecánicos, los SSR se accionan con una pequeña corriente en su entrada. La tensión y su rango de funcionamiento, tanto de entrada como salida, dependen del modelo de SSR que se elija.
Antes de comprar un relé de estado sólido (SSR) es importante saber que existen tres tipos, tienen diferentes rangos de tensión en su entrada y salida, y su corriente de trabajo máxima está limitada. Los SSR se identifican en su referencia con las dos letras finales, indicando si se activan con tensión continua o alterna:
DA: Tensión continua en la entrada y alterna en la salida
AA: Tensión alterna en la entrada y en la salida
DD: Tensión continua en la entrada y en la salida
Detalles del Montaje
Para hacer este interruptor automático, he utilizado un relé SSR-40 tipo DA. Es un relé sólido que se activa con una tensión continua en su entrada, y permite controlar el paso de una tensión alterna de 40A como máximo en sus dos terminales de salida. El inconveniente es que para soportar esa corriente máxima de 40A, sería necesario montarlo con un disipador. Como voy a utilizar este SSR sin disipador, con el fin de reducir el tamaño del circuito, he limitado su carga máxima intercalado un fusible rápido de 15A. Con esta corriente se podrían controlar consumos de hasta 3kW sin problemas, potencia más que suficiente para el uso que le quiero dar.
El rango de tensión de control de este SSR va desde 3 hasta 32V de tensión continua. Como lo voy a controlar con un ESP32 y funcionan a 3,3V, tensión muy próxima a la mínima de control de este SSR, he medido todo antes de diseñar el circuito. He comprobado que este SSR funciona conectando una tensión continua a partir de 2,5V, y consume aproximadamente 8mA. La corriente de control sube ligeramente a medida que sube la tensión de disparo, con 5V consume 10mA aproximadamente. Así que no habría problema para controlarlo directamente con el ESP32. Para proteger el pin de control del módulo ESP32, he intercalado un transistor NPN configurado en modo seguidor de emisor, conectando el colector del transistor al +5V de la fuente de alimentación. Así la corriente de control del SSR la suministrará la fuente de alimentación, y no pasará a través del pin de salida del módulo ESP32.
Los componentes que hay que añadir en este montaje son muy pocos, y al igual que hice con el controlador del aire acondicionado, los he montado y cableado todos en una placa aislante. He utilizado también los mismos pines del módulo ESP32, pero en este caso invirtiendo los pines de entrada y salida. He utilizado como salida el pin GIO2, porque así el LED azul del módulo ESP32 se encenderá cuando se esté disparando el control del SSR. Para disponer de esta indicación en el exterior y al mismo tiempo comprobar que el transistor funciona correctamente, he añadido otro LED junto con su resistencia limitadora, conectado en los terminales de entrada del SSR.
El pin TMS/GPIO14 está configurado como entrada en modo Pull-Up, y se utiliza con un interruptor a masa, para forzar su funcionamiento a modo manual. Cuando el interruptor está cerrado, el módulo ESP32 mantendrá de forma indefinida la tensión de salida de 230VAC, aunque la potencia del excedente solar sea inferior a 100W. De la misma forma, también es posible conectar y desconectar la tensión de salida en cualquier momento a distancia, utilizando el interface Web del ESP32.
Interface WEB
A través del interface Web del ESP32 es posible deshabilitar por completo el circuito de control, evitando así que el módulo SSR entregue tensión a su salida, incluso aunque estuviera su interruptor en modo manual. Cuando se deshabilita el control del SSR, el módulo ESP32 deja de realizar consultas al inversor y desaparecen las medidas de potencia, tanto en el interface Web como el display OLED. En este caso el display OLED funcionaría en modo reloj, mostrando únicamente la fecha y hora local con precisión.
Para evitar las molestias que podría ocasionar la luz del display OLED durante la noche, he añadido la opción de su apagado nocturno. Cuando el display OLED está configurado en modo día, nunca se apaga. Y si se configura en modo noche, el display OLED se encenderá a partir de las 7:00 y se apagará a partir de las 23:00. Esta modificación también la he añadido en la última actualización del firmware del controlador del aire acondicionado (v1.54).
Firmware del ESP32
El firmware que necesitas para programar el microcontrolador ESP32, lo puedes descargar de forma gratuita desde el siguiente enlace:
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos, pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.
Actualización del firmware del reloj de precisión (ESP32), para controlar el encendido y apagado automático de dos equipos de aire acondicionado. Automatizando el consumo eléctrico en función de los excedentes de energía Solar, se puede reforzar el sistema de climatización de una vivienda a coste cero.
Excedentes de energía Solar
Cuando se instalan paneles solares en una vivienda, es muy importante adaptar los hábitos del consumo con los de mayor producción solar, porque esta es la forma más rápida de amortizar la inversión. Hay electrodomésticos que no se pueden adaptar a las horas de sol, como son los frigoríficos y cocinas, pero hay otros que sí. Por ejemplo: lavadora, lavaplatos, secadora, plancha y los equipos auxiliares de climatización.
La ventaja principal de una instalación solar orientada al autoconsumo de una vivienda, es que durante el día se podría disponer de una potencia de pico superior a la contratada. Además esta energía es gratis, y se genera en los periodos en los que el precio de la electricidad es más cara, produciendo así un ahorro mayor en la factura.
Por otra parte, con la energía solar sobrante se podría mejorar el sistema de climatización de la vivienda, consiguiendo así un mayor confort a coste cero. La climatización de una vivienda siempre es mejorable, porque intentaremos reducir su coste al mínimo imprescindible, limitando el uso de la calefacción en el invierno y del aire acondicionado en verano.
Automatizar el consumo eléctrico
Hacer un uso eficiente de la energía solar sobrante para aplicarla a la climatización no parece complicado, el problema es que la radiación solar es muy variable y podría provocar picos de consumo extra cuando cambian las condiciones meteorológicas. La solución sería automatizar la conexión y desconexión de los sistemas de climatización y agua caliente auxiliares, adaptándolos a los excedentes de producción solar. Así estos elementos de climatización auxiliar utilizarían la energía sobrante y se desconectarían rápidamente de forma automática. Por ejemplo al aumentar el consumo en la vivienda por haber conectado la lavadora, o debido a la caída de la producción solar al paso de nubes.
Hace unos meses hice una adaptación del reloj de precisión construido con un módulo ESP32, para poder visualizar los valores de producción solar en su display. Esta información es muy útil, porque muestra la energía sobrante que podríamos utilizar a coste cero.
En esta ocasión haré unas modificaciones sobre el firmware anterior, para poder controlar el encendido y apagado automático de dos equipos de aire acondicionado. En concreto lo voy a controlar los dos splitter de un equipo SAMSUNG, modelo AM18A1E09. A través del interface Web de control del ESP32, es posible configurar los umbrales de encendido y apagado de forma individual, configurando a uno de ellos como principal y al otro como secundario.
Así el equipo configurado como 1 será el principal, se conectará el primero y se apagará el último, provocando menos cortes de encendido/apagado que el número 2. Según el fabricante SAMSUNG, cada splitter consume aproximadamente 0,87 kW. Así la configuración de encendido del equipo principal se hará cuando el excedente de potencia sea superior a 1,5 kW, y se desconectará cuando el excedente sea inferior a 100W. El equipo secundario se conectará cuando el excedente de potencia sea superior a 1,7 kW y se desconectará cuando el excedente sea inferior a 300W.
Compatibilidad con el funcinamiento en modo manual
Este controlador de encendido y apagado es totalmente compatible con el funcionamiento manual del aire acondicionada, ya sea a través del pulsador de encendido del splitter, o de su mando a distancia. Cuando se conecta el aire acondicionado utilizando el mando a distancia o su pulsador de encendido, el módulo de control detectará que está funcionando en modo manual, y no tomará el control del equipo. Cuando se desconecte el equipo de forma manual, después de 3 minutos, el módulo ESP32 tomará el control automático de encendido y apagado. En caso de que no se quisiera conectar el aire acondicionado en ningún momento, por ejemplo en invierno, se podría deshabilitar la función de control mediante el interface Web del ESP32, o desconectar la alimentación del módulo de control mediante su interruptor. Con el fin de proteger el compresor del equipo, he fijado el intervalo de tiempo mínimo entre dos maniobras en 3 minutos. Esta limitación es sólo en modo automático, porque desde el interface Web del ESP32, el mando a distancia o el pulsador del splitter, se podrá encender y apagar el equipo en cualquier momento.
Montaje del controlador y sus conexiones, en un equipo SAMSUNG modelo AM18A1E9
Aunque este equipo de aire acondicionado sea doble, cada evaporador funciona de forma independiente y habría que montar su propio controlador.
Este control automático está construido con un módulo ESP32 y un pequeño display OLED. Como el firmware del módulo ESP32 es totalmente compatible con el reloj de precisión, sería posible montar también el display de 8 dígitos y el amplificador de audio.
Este circuito está formado por 3 bloques: el interface de entrada, el circuito de control (ESP32) y el interface de salida:
Interface de entrada
Es el circuito detector de estado del evaporador o splitter, y es necesario para informar al módulo de control si el equipo está funcionando o parado. Como el ventilador del evaporador siempre estará alimentado cuando el equipo funciona, lo he tomado como referencia. El ventilador de este equipo tiene dos devanados, entre los hilos azul y amarillo he medido una tensión alterna de 120V aproximadamente, y entre los hilos azul y rojo de 160VAC. Ambas tensiones apenas varían con la velocidad del ventilador, pero he tomado como referencia la tensión de los hilos azul y rojo, porque me han parecido más estables. Para aislar la tensión de red del circuito de control, he intercalado el opto-transistor H2210. He utilizado este modelo porque tengo varios, pero podría utilizarse cualquier otro. El LED del opto-transistor se encenderá al recibir la tensión alterna del ventilador, pero esta tensión alterna de 160V hay que convertirla a continua y reducirla a 1 voltio aproximadamente. De esto se encarga el rectificador de media onda junto con la resistencia limitadora y el condensador de filtro. Al rectificar en media onda, la disipación en la resistencia es menor y con una resistencia de 47K 1/4W funciona perfectamente. El condensador de filtro de 1000uF es muy importante, porque hay que evitar que el rizado de 50Hz se transmita al circuito de salida. El transistor de salida del opto-acoplador conducirá cuando el evaporador esté funcionando, provocando que el siguiente transistor deje de conducir y entregue un nivel alto en el pin IO2 del módulo ESP32. He utilizado este pin porque va conectado con el LED azul del módulo ESP32, y esta indicación es muy útil para hacer pruebas. Para evitar posibles transiciones de estado debido a ruidos de la fuente de alimentación o inducciones generadas por el propio módulo ESP32, he añadido en la propia placa del módulo un condensador cerámico de 100nF. A pesar de que el módulo ESP32 funciona con 3 voltios, no hay problema en conectar la resistencia de colector del transistor a 5V, porque hay una resistencia en serie de 10K y la corriente será muy baja.
Hay que tener en cuenta que la placa de control de este equipo de aire acondicionado realiza un test cada vez que se da la orden de puesta en marcha, y tarda alrededor de 8 segundos en alimentar el ventilador del evaporador. Al apagar no sucede lo mismo, porque corta la alimentación del ventilador de inmediato. Para gestionar adecuadamente los estados desde el controlador y no producir falsas maniobras, en el firmware se produce una pausa de 10 segundos desde que se da la orden de arranque, antes de comprobar si el ventilador está alimentado. Cuando se da la orden de apagado, esta pausa se reduce a 2 segundos, es el tiempo necesario para mostrar la orden en el display OLED, antes de presentar el estado de funcionamiento del equipo.
Módulo de control ESP32
Es el encargado de gestionar las órdenes de control y mostrar la información en el display OLED, y de forma opcional en otro de 8 dígitos de 7 segmentos. Durante las pruebas, en alguna ocasión se quedó colgado el módulo ESP32 al conectar su alimentación, pero sólo sucedía cuando lo alimentaba con la fuente conmutada. Para solucionar este problema, he colocado un condensador de 10uF en los terminales de entrada de 5V del módulo ESP32.
Interface de salida
Es el encargado de enviar la orden de cambio de estado al evaporador del equipo de aire acondicionado. He utilizado el pin rotulado como TMS, el cual se corresponde con el GPIO14.
MH-ET_LIVE_D1_mini_ESP32_pinout
Este circuito actúa como si se pulsara el botón de encendido/apagado del evaporador, y lo hace mediante un transistor NPN en modo Open-Collector. Si medimos la tensión en el PCB de control del evaporador, entre los dos terminales del pulsador hay 5V de tensión continua y uno de los dos terminales es GND. Así el transistor de este módulo de control puede conectarse en paralelo de forma permanente, sin interferir al funcionamiento normal del equipo. Es importante conectar cada terminal en su sitio, el colector del transistor de salida se conecta con el terminal del pulsador en el que hemos medido +5V (terminal superior del pulsador).
Al alimentar el circuito de control me encontré con un problema, porque también se encendía el aire acondicionado. Cuando se reinicia el módulo ESP32 aparece una tensión alta en el pin TMS durante algo menos de 1 segundo, el tiempo que tarda el ESP32 en cargar los estados de inicio de sus pines, pero este tiempo es suficiente para crear una pulsación y provocar un cambo de estado en el evaporador. Para evitar este problema, he añadido un circuito RC en la entrada del transistor de control, compuesto por una resistencia de 100K y un condensador de 100uF. De esta forma es necesario recibir una tensión alta durante 2 segundos como mínimo, para provocar que el transistor empiece a conducir y se genere el cambio de estado. Como es lógico, los impulsos de control del cambio de estado los he tenido que configurar a 3 segundos.
Fuente de alimentación
Este control automático se alimenta con 5 voltios de continua, tensión que podría haber tomado de la placa de control del evaporador, pero es más seguro y fiable montar una fuente de alimentación aparte.
Los 230VAC de la fuente de alimentación se toman de los terminales 1 y 2 del evaporador, intercalando un pequeño interruptor en serie para poder desconectar por completo el circuito en cualquier momento.
Conexiones con el evaporador
He utilizado una placa aislante, para montar todos los componentes externos con el módulo ESP32. En un lateral está la clema de 4 conexiones, para conectar la alimentación de 5V (2 conexiones), la detección de encencido del evaporador GPIO2 y la salida TMS-GPIO14 para conectar con el transistor 2N2222 que contralará el encendido y apagado del evaporador (pulsador).
Las otras 3 clemas de 2 conexiones, son los 6 hilos que unen el controlador con el evaporador:
1 – Alimentación del controlador (230VAC)
Marrón: FASE
Azul: NEUTRO
2 – Tensión de los ventiladores (160VAC)
Naranja: FASE
Azul: NEUTRO
3 – Pulsador ON/OFF del evaporador
Rojo: +5
Negro: GND
Firmware del ESP32
El firmware que necesitas para programar el microcontrolador ESP32, lo puedes descargar de forma gratuita desde el siguiente enlace:
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos, pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.
Pérdida de privacidad al instalar dispositivos conectados a Internet (Domótica). Construcción de un temporizador programable, para el cierre automático de una puerta de garaje. Este temporizador está construido con el micro controlador ATTiny, y puede acoplarse con cualquier sistema de control de acceso que disponga de un pulsador de apertura/cierre manual.
Control remoto
El control remoto de los dispositivos electrónicos facilita enormemente su uso. A nadie se le ocurriría ahora comprar un televisor sin su mando a distancia. Es muy cómodo acceder a una vivienda desde su garaje, abriendo la puerta con un mando a distancia y sin tener que bajar del coche.
Pero esa comodidad no debería poner en riesgo la seguridad, porque si la puerta del garaje se quedase abierta, de nada serviría la puerta blindada de acceso a la vivienda. En la mayoría de los sistemas de apertura y cierre de puertas se incluye un cierre automático temporizado. Con esto se evita que la puerta se quedase abierta por olvido, o por haber pulsado su mando a distancia de forma accidental.
Domótica en la vivienda
Internet ha revolucionado la fabricación de dispositivos inteligentes, empezando por las cámaras de seguridad y llegando hasta las bombillas de iluminación. La tecnología actual permite la instalación de multitud de dispositivos inteligentes a un precio muy bajo, pudiendo convertir cualquier vivienda convencional en una casa domótica.
El problema es que muchos fabricantes obligan a que su control remoto funcione a través de Internet, y la mayoría de ellos lo hacen a través de un servidor externo a la vivienda, normalmente ubicado en China.
Sería conveniente que la legislación actual obligara a informar a los clientes de la pérdida de privacidad de cualquier dispositivo inteligente que esté comercializado, igual que lo hacen los fabricantes de tabaco en sus cajetillas.
La seguridad y privacidad de una vivienda, es inversamente proporcional al número de dispositivos inteligentes que contiene
Esquema
Del control de este circuito se encarga el micro controlador ATTiny85, funcionando con su oscilador interno de 16 MHz. El ATTiny monitoriza el estado alto/bajo del pin 3 (PB4) para detectar si la puerta está abierta o cerrada, por lo que será necesario montar un interruptor fin de carrera, que cierre su contacto cuando la puerta esté totalmente abierta. El interruptor que he pintado en el esquema es mecánico, pero podría utilizarse otro de tipo magnético.
Cada segundo se detecta el estado del pin 3 (PB4) del ATTiny. Cuando pasa de estado alto a bajo se inicia el descuento del temporizador, y el LED lo indica parpadeando muy rápido (5 destellos por segundo). En condiciones de reposo, cuando el circuito está conectado y el pin 3 (PB4) está a nivel alto, el LED hace un parpadeo cada segundo.
El tiempo de retardo se puede configurar entre 1 y 2,5 minutos, mediante la posición de los puentes J1 y J2. El valor del tiempo de retardo se actualiza y configura al alimentar el circuito, y se muestra su estado contando el número de destellos del LED = con 1 destello si el retardo es de 60 segundos, y 4 destellos para 150 segundos.
Cuando la puerta del garaje permanece abierta más tiempo del configurado en el temporizador, el pin 5 (PB0) del ATTiny envía un impulso alto de 1 segundo al transistor y se cierra el contacto del relé. Como los contactos del relé están libres de tensión, se pueden conectar con los 2 hilos del pulsador manual de apertura/cierre de la puerta, sin interferir al circuito controlador del motor.
Aunque la puerta en la que se monte este circuito ya disponga de un interruptor fin de carrera, no podría utilizarse y habría que montar un segundo interruptor, porque este circuito inyecta una tensión de 5V para detectar la posición del pulsador.
Para alimentar este temporizador he utilizado una pequeña fuente conmutada de 230VAC/5VDC. En la caja incorporé un interruptor que corte en la alimentación de entrada, con el fin de poder anular fácilmente este automatismo de cierre.
Firmware
El firmware que necesitas para programar el ATTiny85, lo puedes descargar de forma gratuita desde el siguiente enlace:
Para hacer este montaje utilicé el mismo PCB que había encargado a PCBWay para montar el interruptor inteligente. En este circuito impreso están todos los componentes de este circuito, y sólo se tienen que adaptar las conexiones de entrada y salida para convertirlo en un temporizador.
Revisando las pistas de conexión por delante y por detrás, observamos que en los terminales del filtro de red están los hilos de alimentación, y estos llegan desde la conexión de salida máster del PCB. Para utilizar este PCB, es necesario cortar una pista del circuito impreso y realizar un puente por la cara superior.
¿Dónde fabricar el PCB?
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos, pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.
Desde hace unos meses tengo funcionando una instalación solar destinada al autoconsumo de la vivienda. Como el proceso de instalación fue bastante largo debido a la falta de material, junto con algunos problemas con la empresa instaladora, me dio tiempo a modificar los cableados a mi gusto, y añadir algunos medidores de control en el nuevo cuadro eléctrico antes de que la empresa instaladora diera de alta la instalación.
Detalles de la instalación solar
La instalación solar es trifásica, compuesta por un inversor Fronius Symo de 7KW y 20 paneles solares de 380 W. Los paneles están repartidos en las dos caras del tejado, un string con 12 paneles conectados en serie y el otro con 8 paneles.
Conexión con Internet
En una instalación solar es muy importante que el inversor disponga de una conexión estable con Internet, con el fin de controlar su correcto funcionamiento y poder controlar su rendimiento. La mejor solución sería conectar el inversor con un cable Ethernet al router de la vivienda, a no ser que el nivel de la señal WiFi que le llegase al inversor fuera muy bueno. En mi caso, como la distancia entre el inversor y el router es muy larga, junto con la tirada de los cables de continua que conectan los paneles con el inversor, añadí un cable RG174 de bajas pérdidas, y conecté una antena doble BIQUAD en el tejado, muy cerca y orientada hacia el router WiFi.
Cuadro eléctrico DC
En el cuadro de continua de la instalación solar, he montado 2 voltímetros para medir la tensión que genera cada string de los paneles solares. Como los medidores de tensión son digitales, es necesario alimentarlos para que funcionen. He utilizado una pequeña fuente de alimentación conmutada de 230 VAC a 5 VDC. La entrada de la fuente de alimentación está conectada a la tensión continua que genera el string de 8 paneles, los cuales producen una tensión continua máxima de 320V, tensión inferior a la máxima permitida por la fuente conmutada. Ambos medidores están conectados directamente con los cables de bajada de los paneles, antes de los fusibles de protección de 15A, pero la fuente y los dos medidores están protegidos con dos fusibles de 100 mA.
Cuadro eléctrico AC
En el cuadro de alterna he intercalado un relé trifásico de protección, el cual incluye un medidor de corriente y tensión por fase. Este relé contiene un pequeño microprocesador, pudiendo programar los umbrales de tensión y corriente máxima y mínima. Los medidores muestran la tensión y corriente que está generando el inversor en cada fase. Al ser un inversor trifásico, la potencia total generada se reparte de forma proporcional entre las 3 fases. Un inversor solar conectado a la red, aumenta ligeramente la tensión de salida a medida que aumenta su producción solar. De esta forma no está de más disponer de un voltímetro que muestre en tiempo real la tensión que hay en cada una de las fases.
Smart Meter de Fronius
La conexión entre el inversor Fronius y su medidor Smart Meter utiliza 3 hilos, los dos hilos de datos y el hilo de masa. He utilizado los 5 hilos sobrantes de la manguera para conectar las 4 salidas GPIO del inversor y un hilo con la salida +12V. Así puedo controlar el encendido de los 4 indicadores LED que he montado junto al medidor.
Las 4 salidas GPIO del inversor son Open-Collector y las he configurado para que se cierren cuando se superen 4 umbrales de potencia. Los 3 primeros indicadores LED los he asociado a la producción solar: 1, 2 y 3 kW y el tercer indicador, el LED rojo, se enciende cuando exista un excedente superior a 1 kW. Es decir, cuando se esté vertiendo a la red una potencia superior a 1KW.
Reloj & Inverter
Para mostrar los datos de potencia del inversor he utilizado el reloj de precisión que hice con el módulo ESP32, el cual mostraba la fecha y hora en un display de 7 segmentos. Al diseño original le incorporé los avisos por voz, quedando la versión 1.46. A partir de ahí he ido depurando el código hasta optimizar al máximo las funcionalidades del nuevo display, llegando así a la versión que ahora publico, v1.51.
Con la primera versión del reloj, sólo se necesitaba una conexión a Internet al conectar la alimentación, para que pudiera conectarse con el servidor NTP de Internet y sincronizara la fecha y hora local del ESP32. Después el display podía funcionar de forma indefinida mostrando la hora del módulo ESP32, y ya no importaba si se perdía la conexión WiFi.
Ahora sí es imprescindible mantener la conexión WiFi en todo momento, para permitir la conexión con el inversor Fronius y poder mostrar los datos en el display. Por ese motivo ahora se chequea cada 30 segundos la conexión WiFi, y si el módulo perdiera en algún momento la conexión, automáticamente se reiniciaría y no volvería a funcionar hasta que se conectase de nuevo con el servidor NTP de Internet, y sincronizara de nuevo el reloj del ESP32.
Al igual que en la versión original, con este código también se puede mostrar la información en un display de 7 segmentos y otro OLED de forma simultánea. Así es posible hacer diferentes versiones utilizando el mismo firmware. Actualmente utilizo esta versión de 3 formas diferentes:
Con un display de 7 segmentos y el módulo de voz.
Con un display de 7 segmentos, sin el módulo de voz y acoplando todo al reloj de pared de esfera rotante. En este caso el reloj del ESP32 también resincroniza la fecha y hora del reloj de esfera rotante. Lo hace a través del puerto serie y sincronizando la fecha y hora de forma alterna, entre los segundos 20 y 50 de cada minuto.
Versión reducida, utilizando sólo un display OLED para mostrar los datos.
Medidas de potencia en el display
El módulo ESP32 interroga al inversor cada 3 segundos, así las medidas de potencia que muestra el display se actualizarán cada 3 segundos. El módulo ESP32 se puede configurar mediante su servidor Web desde cualquier dispositivo móvil, permitiendo así que muestre en su display la información que más nos interese. Por defecto, entre los segundos 58 y 2 de cada minuto, el display de 7 segmentos siempre mostrará la hora, y cada 30 segundos comprobará la conexión WiFi. Aprovechando esta ventana de tiempo, el display podría mostrar la información de la fecha en caso de que estuviese habilitada su presentación. Si el módulo ESP32 está configurado para mostrar alguno de los valores de potencia del inversor, cada 30 segundos chequeará si el inversor presenta algún error o no ha respondido a la última consulta, para mostrar ese error si existe.
En condiciones normales durante el día, el display no debería mostrar ningún error, sólo de forma ocasional podría mostrar algún error de conexión, debido a la colisión en el tiempo de varios dispositivos que consultan al mismo tiempo. En mi caso, estoy consultando los datos del inversor Fronius de forma local desde 4 equipos diferentes: la Raspberry y desde los 3 displays que tengo funcionando.
Cuando el display muestra alguno de los valores de potencia del inversor, la letra que indica el valor de potencia puede aparecer fija, o parpadeando si existe un excedente de potencia superior a 1kW.
Leer los datos del inversor Fronius
Los datos del inversor Fronius se pueden obtener de dos formas diferentes, mediante una conexión TCP utilizando el protocolo ModBus, o realizando las consultas definidas en la API de Fronius. Yo he utilizado ambos métodos para obtener los datos más relevantes del inversor, y luego almacenarlos en una Raspberry PI que tengo conectada directamente en el router. Así dispongo de un archivo histórico muy completo, pudiendo generar gráficas y comprobar el rendimiento de la instalación en cualquier momento.
Para la consulta de los valores de potencia a través del módulo ESP32, he utilizado dos consultas de la API de Fronius. El inversor responderá a las consultas de la API enviando los datos formateados en un archivo JSON. Para facilitar la lectura de las respuestas que envía el inversor, he utilizado la librería: ArduinoJson.h
Potencias del inversor
Esta es la consulta que realiza el módulo ESP32, para obtener los datos de potencia (la IP es la del inversor Fronius):
Esta es la consulta que realiza el módulo ESP32, cuando el inversor no genera potencia solar o su «StatusCode» es diferente a 7 (la IP es la del inversor Fronius):
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.
Hace justo ahora 4 años monté dos paneles LED, y ahora uno de ellos apenas luce. Calculando que habrán estado encendidos una media de 5 horas al día, serían 7300 horas, y me parece muy poco. La vida útil de un LED de iluminación suele estar siempre por encima de 20000 horas. El problema es que los plafones llevan muchos LED en serie, y la probabilidad de fallo es muy alta. Con un sólo LED que falle, el plafón deja de iluminar.
A continuación se muestra el esquema de conexión de los 90 LED que lleva el panel LED de 25W según el fabricante, porque si hacemos los cálculos serían: 56,3V x 0,3A = 16,89W
Es un montaje serie-paralelo, esta formado por grupos de 5 LED en paralelo y los 18 grupos conectados en serie.
En principio podría parecer que este montaje es robusto, por que si se fundiera un LED la corriente pasaría por los 4 LED restantes del grupo, y el panel seguiría funcionando. Pero hay un problema, si quitamos un LED de un grupo, los 300mA que circulan por la serie se tienen que repartir entre los 4 LED restantes, en lugar de 5, y ese exceso de corriente provocaría un recalentamiento en esos 4 LED y se quemarían de uno en uno hasta interrumpir el paso de corriente… y eso es lo que ha sucedido, se han quemado los 5 LED de un grupo, y el panel LED ha dejado de lucir.
¿Es contraproducente puentear un LED ?
Cuando se utiliza un driver de corriente constante para alimentar un conjunto de LED en serie, lo más sencillo es puentear el LED que interrumpa el paso de corriente. Esta reparación no provoca que el resto de los LED trabajen con más corriente de la calculada por el fabricante.
En este plafón LED, al puentear un grupo de 5 LED la tensión de salida del driver bajará, ya que es un driver de corriente constante. Así los 85 LED restantes seguirán funcionando con su corriente nominal, y lo único que se habrá perdido será un 6% de luminosidad. En estas condiciones el plafón LED podría funcionar sin problemas durante algunos años más, aumentamos su vida útil, y colaboramos con el medio ambiente.
¿Necesitas fabricar un circuito impreso?
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.
Hace unos meses monté un capacímetro con el fin de comprobar el funcionamiento de las librerías de Arduino: Capacitor.h y CapacitorLite.h. El resultado final no fue todo lo bueno que esperaba, porque el rango de medidas quedó bastante limitado, y no conseguí medir capacidades superiores a 100μF con precisión.
Ahora tengo un capacímetro que apenas utilizo, porque la mayoría de las veces lo necesito para comprobar el estado de condensadores electrolíticos en fuentes conmutadas. En estos casos, los condensadores superan el rango de medidas del capacímetro, y además necesitaría también comprobar su valor ESR para determinar si el condensador sospechoso está en buen estado o no.
Por todo esto, he decidido ampliar las prestaciones de este capacímetro de acuerdo a las necesidades de uso más habituales:
Medir capacidades entre 1pF y 10.000μF con precisión
Medir los valores ESR de los condensadores a partir de 10μF
Detalles de funcionamiento del capacímetro
Después de analizar todas las posibles opciones de medida del capacímetro que monté, limitada por los 1024 umbrales del conversor ADC de Arduino, he decidido añadir una segunda toma de medida. Una entrada será para medir las capacidades entre 1pF y 1μF, y la otra será para medir valores entre 50nF y 10.000μF, incorporando la medida ESR a partir de 10μF.
Así con la primera entrada utilizaré la librería Capacitor.h para medir capacidades por debajo de 1uF, y la segunda entrada la utilizaré para medir las capacidades más altas, midiendo el tiempo que tarda el condensador bajo prueba en alcanzar el 63% de la tensión máxima del conversor ADC. Con esta segunda entrada del capacímetro, se podrán medir capacidades entre 50nF y 10.000μF.
Entrada 1: 1pF … 1μF (Capacitor.h)
La librería Capacitor.h toma como referencia la capacidad interna de un pin analógico de Arduino, y mide su voltaje después de 30nS. Luego toma como referencia el 1% de la tensión aplicada junto con la capacidad del pin de Arduino, para calcular la capacidad del condensador que se ha conectado.
Partiendo de los 5 voltios máximos del ADC de Arduino y sus 1024 posibles valores, las lecturas del ADC que podemos esperar oscilarán aproximadamente entre un valor 33 para 1pF y 993 para 1nF (1000pF).
Si la capacidad medida es superior a 1nF, la librería Capacitor.h toma como referencia la resistencia interna PullUp del pin de Arduino, de aproximadamente 30KΩ, y mide el tiempo que tarda el condensador bajo prueba en alcanzar el 63% de la tensión aplicada. A partir de ese tiempo medido se calcula la capacidad aplicando la constante de tiempo RC, tomando como referencia el valor de la resistencia PullUp.
Entrada 2: 50nF … 10.000μF (bornas)
Al conectar un condensador en la segunda entrada, el programa realizará un test de estado del condensador y luego realizará una medida rápida, conectando en serie una resistencia de bajo valor (240Ω), para medir el tiempo que tarda en alcanzar el 63% de la tensión máxima del ADC.
Si la medida obtenida es superior a 80μF, medirá el valor ESR mostrando ambas medidas en el display. Haciendo la medida RC con una resistencia de bajo valor, se acelera el tiempo de medida de los condensadores de alta capacidad sin perder precisión.
En caso de que la medida obtenida fuera inferior a 80μF, no se muestra el valor y se realiza una segunda medida conectando una resistencia 40 veces más alta (10KΩ), con el fin de obtener mayor precisión en la medida de condensadores más bajos. En este caso también se mide el valor ESR si la capacidad es >80μF, y se muestran los resultados en el display.
Calibración del capacímetro
El proceso de calibración de este capacímetro hay que hacerlo en 4 pasos. Dos de ellos son para calibrar los dos sistemas de medida de la librería Capacitor.h, y los otras dos para calibrar los dos rangos de medida de la segunda entrada del capacímetro.
Entrada 1: medidas entre 1pF y 1nF
Es imprescindible conocer el valor exacto de la capacidad interna del pin analógico de Arduino, junto con las capacidades parásitas externas del montaje. Por esto siempre es necesario realizar una calibración final, conectando un condensador de valor conocido y menor de 1000pF como referencia, para medir su valor con el capacímetro una vez montado y cerrado. Si la medida que muestra el capacímetro fuera inferior a la capacidad real del condensador, subiremos ligeramente el valor de la capacidad interna en el programa, y volveremos a programar el microcontrolador con la nueva referencia. Y si midiera una capacidad superior a la real, bajaremos el valor de la capacidad de referencia. Este proceso habrá que hacerlo varias veces, hasta que consigamos que el capacímetro muestre el valor real del condensador que hemos elegido como referencia.
Entrada 1: medidas entre 1nF y 1μF
Seguiremos el mismo proceso de antes, pero en este caso es mucho más sencillo porque podremos hacerlo sin cerrar la caja del capacímetro. Conectaremos un condensador algo inferior a 1μF de valor conocido, y retocaremos el valor de la resistencia PullUp que hemos puesto en el programa. Teniendo en cuenta que si aumentamos el valor de la resistencia PullUp, se reducirá el valor de la capacidad que muestre el capacímetro, y si reducimos el valor de la resistencia aumentará la capacidad medida.
Entrada 2: medidas entre 50nF y 10.000μF
En la segunda entrada del capacímetro, los condensadores de capacidad más baja (<80μF) se miden conectando una resistencia en serie de 10KΩ, y se mide el tiempo que tarda el condensador en alcanzar el 63% de la tensión máxima del conversor ADC. Aunque pongamos una resistencia de precisión, como la tensión de 5V se conecta a través de un pin digital de Arduino, tendremos que sumar el valor de su resistencia interna para que la medida sea precisa.
Por otra parte, la conexión común de ambas entradas del capacímetro no es GND, es otro pin analógico de Arduino, y aunque lo configuremos como salida con valor bajo, se sumará una resistencia extra a la constante RC. El valor de esta resistencia extra se compensa de forma automática en el código del programa.
Cuando se miden condensadores >80μF, el capacímetro le conecta una resistencia en serie de 240Ω, con el fin de reducir el tiempo de la medida. En este caso sucede lo mismo que antes, y por eso también tendremos que compensar el valor de la resistencia interna del pin digital que conecta la tensión al circuito RC.
Ajuste automático de referencia
El capacímetro realiza un ajuste a cero de las dos entradas cada vez que se conecta la alimentación, compensando así las capacidades parásitas de las puntas de medida que hayamos conectado. Es importante conectar el capacímetro con las puntas libres, sin ningún condensador conectado entre ellas.
Firmware
El código que necesitas para programar el ATMEGA-328P de Arduino, lo puedes descargar del repositorio GitHub:
La caja del Capacímetro la hice con 3 piezas, impresas en 3D con PLA de color negro. Para que destaque la serigrafía, se puede pintar con un pincel fino y pintura sintética, utilizando cualquier color que sea claro.
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.
Construcción de un medidor de nivel de líquidos por ultrasonidos con Arduino. Los litros que contiene un depósito se calculan en función de la ditancia libre del depósito, medida por ultrasonidos, y se muestran en un display OLED con una resolución de 1 litro. Las medidas del depósito se deben configurar en el firmware, antes de programar el ATMega328P. Todos los ajustes y medidas pueden comprobarse a distancia en un teléfono móvil, mediante una conexión Bluetooth.
Montar un módulo Bluetooth para ver en el teléfono todos los datos de cada medida, además de los litros, que es lo único que muestra el display.
Bajar la resolución de la medida a milímetros, para coseguir que los litros que muestra el display cambien de uno en uno, y no cada 7,4 litros.
Precisión de la medida
Los litros que muestra este medidor sólo sirven como referencia orientativa. Aunque la precisión de la medida de distancia por ultrasonidos sea bastante buena, hay que tener en cuenta otros factores:
Lo normal es que un depósito no sea totalmente simétrico, debido a los flejes de refuerzo y sus ondaluciones. Si además es un depósito de plástico, su capacidad varía en función del volumen de líquido que contiene y su temperatura.
Teniendo en cuenta que en el depósito que lo instalé, cada milímetro de combustible se corresponden a 0,74 litros, en el mejor de los casos la precisión de la medida sería de +/-1 litro.
Esquema
A continuación se muestra el nuevo esquema del medidor de litros por ultrasonidos. Lo único que cambia con respecto al esquema anterior, es el pulsador del Reset y el módulo Bluetooth HC-05.
Bluetooth HC-05
Es necesario configurar el módulo Bluetooth HC-05 antes de montarlo en el circuito. Aparte de su nombre y password, se debe configurar en modo esclavo a 38.400bps. Luego sólo habría que hacer 3 conexiones con este medidor: los dos hilos de alimentación (5VCC), y la conexión entre el terminal RXD del módulo HC-05 y el terminal TX del microcontrolador ATmega328P.
La conexión TX del módulo ARDUINO UNO está rotulada como D1, y se corresponde con el pin número 3 del microcontrolador ATmega328P.
El pulsador Reset lo monté para poder reiniciar el microcontrolador en cualquier momento, y permitir que el módulo Bluetooth envíe los datos de configuración del depósito al teléfono móvil.
Configurar el tamaño del depósito
Las medidas y capacidad del depósito forman parte de los parámetros de ajuste del código del programa, pudiendo así adaptar con facilidad el firmware a las dimensiones y volumen de cualquier depósito.
En esta versión hay que poner todas las medidas en milímetros. Las valores de las tres últimas variables se dejan sin valor, el programa se encargará de calcular estos valores en función de las medidas del depósito.
Al aumentar la resolución de la medida de distancia hasta un milímetro, es muy fácil que cualquier movimiento del líquido en la superficie del depósito haga fluctuar la medida. Para minimizar este efecto, el programa realizará una serie de medidas consecutivas y mostrará el promedio de todas ellas. Cada vez que toma una muestra, introducirá un pequeño retardo antes de realizar la medida siguiente. Este retardo lo calcula el programa, y varía en función de la altura del depósito. Con este retardo se minimiza el efecto eco de una medida anterior en la siguiente, lo cuál introduciría un error al calcular el promedio.
APP para el móvil
Para mostrar los datos que envía el medidor en un teléfono móvil, se puede instalar cualquier aplicación de tipo ‘Terminal‘, yo utilizo una APP gratuita:
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.
Construcción de un medidor de nivel de líquidos para un depósito con ultrasonidos. En un depósito simétrico, dividiendo su capacidad máxima en litros entre la altura en centímetros, obtendremos el número de litros que contiene cada centímetro del líquido dentro del depósito. Conociendo la capacidad máxima del depósito, es posible medir la distancia libre de la parte superior del depósito por reflexión de los ultrasonidos en la superficie del líquido. Luego restamos esa distancia con la altura total del depósito, y así podremos calcular los litros que almacena en su interior.
Aprovechando el medidor de distancias ultrasónico que hice el año 2018, sólo he tenido que adaptar su código para convertir el medidor de distancia en un medidor de litros, y mostrarlos en el display.
Para calcular el número de litros que hay dentro de un depósito simétrico, podemos medir la distancia libre de líquido, desde su nivel máximo de llenado hasta la superficie del líquido. Luego restamos esa distancia de la altura total del depósito, y la multiplicamos por el número de litros por centímetro que previamente hemos calculado en función de la altura del depósito y su capacidad máxima.
De esta forma podemos realizar la medida desde arriba, colocando un medidor de distancia ultrasónico en alguna de las bocas de respiración del depósito. Apuntando el haz ultrasónico del medidor hacia el fondo, el sensor recibirá el eco que se refleje en la superficie del líquido. A partir de esa medida ya podemos calcular el número de litros que contiene el depósito, evitamos que el sensor entre en contacto con el líquido, y podríamos medir cualquier producto químico o corrosivo.
Funcionamiento del sensor HC-SR04
El sensor de ultrasonidos HC-SR04 tiene dos cápsulas piezoeléctrias, por una de ellas transmite un tren de impulsos inaudible (40 KHz), y por la otra recibe el eco de la señal reflejada. Dependiendo de la distancia del punto de reflexión, el eco recibido llegará con mayor o menor retardo. Tomando como referencia la velocidad de propagación del sonido en el espacio libre, con tan sólo medir el tiempo de retardo del eco recibido con respecto al origen, podremos calcular con precisión a qué distancia del sensor se encuentra el obstáculo.
El sensor HC-SR04 dispone de 4 pines de conexión, 2 de ellos son para alimentar su circuito con 5VDC (Vcc/GND), y los otros dos son para realizar las medidas:
Trig: Un microprocesador externo envía un impulso de corta duración cada vez que necesita obtener una medida.
Echo: El sensor entrega un impulso de ancho variable, y midiendo su duración obtenemos la distancia a la que se encuentra el obstáculo.
Esquema
Este circuito incluye un zumbador piezoeléctrico, el cual he aprovechado en este montaje para utilizarlo como alarma acústica, y avisar cuando el nivel del líquido está por debajo del nivel mínimo que hayamos prefijado (reserva).
Características del depósito
Las medidas y capacidad del depósito forman parte de los parámetros de ajuste del código del programa, pudiendo así adaptar con facilidad el firmware a las dimensiones y volumen de cualquier depósito.
El nivel de la reserva también se configura en el código del programa, y son los centímetros desde el fondo del depósito hasta el nivel mínimo prefijado. En función del número de litros por centímetro del depósito, podemos calcular el número de litros de la reserva. En este caso, el nivel de reserva sería: 7,41 L/cm. X 40 cms. = 296,4 litros.
Montaje en el depósito
Como este medidor es muy pequeño, lo monté en una de las bocas de respiración para el llenado del depósito, sustituyendo su tapón por un soporte que hice a medida con la impresora 3D.
Para conectar el medidor ultrasónico sólo cuando lo necesite, cambié su interruptor de encendido por un conector de alimentación. Desde el conector hice una prolongación con cable paralelo, hasta llegar al interruptor de encendido/apagado. El interruptor lo puse en la puerta de acceso al hueco donde tengo el depósito, con el fin de no tener que acercarme hasta el depósito para ver su contenido.
Test de funcionamiento
Antes de montar el sensor en el depósito, es conveniente comprobar que no hemos cometido algún error al introducir los parámetros de ajuste en el código del programa, y de paso comprobar que funciona correctamente en todo el rango de medidas.
En la imagen anterior, comprobé que el display mostraba 1000 litros a una distancia de 5 cms. La capacidad máxima de mi depósito es de 1000 litros, y la distancia entre el sensor y el nivel máximo del depósito (offset) es de 5 cms.
Firmware
El código que necesitas para programar el ATMEGA-328P de Arduino, lo puedes descargar del repositorio GitHub:
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.
Hace unos días monté un Capacímetro con Arduino. Modificando ligeramente el código es posible añadir una función extra, y utilizarlo también como medidor de nivel de un depósito de agua o combustible.
Para medir el nivel de líquidos en un depósito, lo mejor sería montar un sensor resistivo con una boya magnética. Estos sensores son bastante precisos y fiables, pero no son nada baratos cuando los depósitos son grandes. Los sensores resistivos de varilla están construídos con un tubo de acero inoxidale hermético, y una boya imantada en forma de toride por el exterior.
La varilla del sensor mide lo mismo que la altura del depósito, en mi caso 130 cms. para un depósito de 1000 litros. En el interior de la varilla hay muchas resistencias en serie, su número varía en función de la altura del depósito y la resolución del sensor. Cada resistencia incluye un microcontacto magnético, el cuál se cierra cuando la boya exterior alcanza su altura, modificando así el valor de la resistencia entre sus dos terminales de salida. Algunos sensores pueden tener tres cables, el cable extra va conectado a un microinterruptor que se posiciona casi al final de la varilla, al fondo del depósito, y se puede utilizar como alarma para avisar cuando se ha llegado a la reserva.
Sensor de nivel Capacitivo
El inconveniente principal de un medidor de nivel de líquidos capacitivo, es que su precisión disminuye a medida que aumenta la longitud del cableado de conexión entre el sensor y el equipo de medida, y su resolución varía en función de las propiedades del líquido. A cambio es una alternativa barata, y es muy sencillo fabricar un sensor capacitivo de forma casera.
El extremo del cable-sensor hay que sellarlo, porque el líquido no puede entrar en contacto con el cobre. Para dar rigidez al cable, utilicé un trozo de canaleta de plástico del tamaño del depósito (130 cms).
Para sellar el extremo final del sensor utilicé adhesivo termofundible (error), pero después hice pruebas con gasoil, con el fin de comprobar el posibe deterioro del aislante, la canaleta y el sellado del extremo.
Al cable no le pasa nada, pero la canaleta pierde algo de rigidez, y el adhesivo termofundible pierde adherencia con el cable. Con el tiempo se podría desprender el sellado del cable y falsear la medida. La solución que tomé, fué quitar el adhesivo termofundible y la canaleta.
Sellado del cable: presionando y moviendo la funda del cable hacia fuera hasta ocultar el cobre. Luego con aire caliente puse el plástico del extremo muy viscoso, y lo sellé presionando con un alicante de punta estriada.
Mantener el cable rígido dentro del depósito: puse un trozo de acero inoxidable en el extremo inferior del cable-sonda, y luego tensando el cable hacia fuera del depósito y bloqueando con una brida en el extremo superior, el cable-sensor queda totalmente recto.
Esquema del capacímetro
Este capacímetro está construido con un ATMEGA328P y sus componentes mínimos: el circuito oscilador y el del Reset.
Código de programación
Para que este capacímetro pueda mostrar el nivel del depósito, he creado una tabla referenciando a cero el valor de capacidad que mide el sensor sin entrar en contacto con el gasoil, y la máxima la he calculado a partir de la medida que muestra el capacímetro con el sensor sumergido, actualmente el gasoil está a 93 cms. de altura desde el fondo del depósito.
Con el capacímetro colocado a dos metros del depósito, la capaciadad que medí con el sensor fuera del depósito era de 252pF, y con el sensor sumergido a 93 cms medí 267,26pF. Así el incremento de capacidad por centímetro de gasoil en el depósito es: (267,26pF – 252pF) / 93 cms = 0,164pF. Y con el depósito lleno, la capacidad sería: 252 + (0,164pF x 130 cms) = 273,33pF.
Como podemos comprobar, existe una diferencia de capacidad entre el depósito lleno y vacío de tan apenas 21,33pF. para una distancia de 130 cms. En las pruebas que hice con la jarra de agua, el incremento de capacidad por centímetro era de 2pF… una resolución 12 veces mejor que en el depósito de gasoil. Aparte de la diferencia que exista entre el agua y el gasoil, poner el capacímetro tan lejos del sensor no ha sido buena idea. Para conseguir una mayor precisión y estabilidad en la medida, tendría que haber colocado el capacímetro más cerca del depósito.
Para minimizar la fluctuación de las medidas, se toman 150 muestras y se calcula el valor promedio, antes de mostrar los datos en la pantalla. El nivel del depósito se muestra de forma gráfica en la línea superior del display. La barra de nivel se forma a partir de 6 caracteres gráficos que se almacenan en la RAM, indexados del 0 al 5. El gráfico con index 0 es un caracter en blanco, el uno rellena la primera línea vertical de la matriz de 7×5 que conforma cada letra, y así sucesivamente hasta el index 5 que rellena las 5 líneas verticales. Así la barra gráfica completa se compone de 5 niveles por 16 caracteres = 80 niveles.
Al inicio del void loop() se toma una medida de capacidad, y si el valor leído es inferior a 355pF se accede a la rutina de medida de pF con dos decimales, pero se muestra el valor directamente en pFx100. en la línea inferior del display, y la gráfica de nivel del depósito se muestra en la línea superior. Si la capacidad medida es superior a 355pF, funciona como un capacímetro y no se muestra la gráfica del nivel,
Firmware
El código que necesitas para programar el ATMEGA-328P de Arduino, lo puedes descargar del repositorio GitHub:
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.