Energía SOLAR, aprovechando los excedentes

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.

Toma de red inteligente

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.

Climatización GRATIS… automatizando los excedentes de energía Solar

Toma de enchufe inteligente

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.

PRESET de encendido y apagado

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.

Configuración inicial del interruptor de red inteligente

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.

Relé mecá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.

Esquema del relé SSR

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.

Esquema del interruptor de red inteligente

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.

Interface WEB del interruptor inteligente

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:

https://github.com/J-RPM/Consumption-control-of-surplus-solar-energy

Caja 3D

Piezas 3D, para la toma de red automática

Los ficheros .stl que necesitas para fabricar estas piezas, lo puedes descargar desde el siguiente enlace: https://www.thingiverse.com/thing:6135400

¿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.

Logo: PCBWay

https://pcbway.com/g/r7N1ct

 

Climatización GRATIS… automatizando los excedentes de energía Solar

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.

Control AC, conectado en el evaporador SAMSUNG

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.

Gráfica del consumo y potencia solar

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.

Supervisor solar Fronius

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.

Interface WEB del ESP32

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.

Conexiones entre el compresor y los 2 evaporadores SAMSUNG

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.

Esquema de conexiones del controlador en el evaporador SAMSUNG

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.

Vista interior del evaporador SAMSUNG

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).

Vista interior del control automático

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:

https://github.com/J-RPM/Solar-controller-with-ESP32

Caja 3D

Caja 3D, para el controlador del aire acondicionado

El fichero .stl que necesitas para fabricar esta caja, lo puedes descargar desde el siguiente enlace: https://www.thingiverse.com/thing:6118679

¿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.

Logo: PCBWay

https://pcbway.com/g/r7N1ct

Nivel de un depósito con ultrasonidos

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.

Medidor de nivel por ultrasonidos, instalado en el depósito

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.

OLED: SSD1306 ‘Fake in China’ & Sensor de proximidad para invidentes

Litros de un depósito

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.

Litros en el depósito

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.

Sensor HC-SR04

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.


    Sensor HC-SR04

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).

Esquema: Detector de proximidad

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.

Ajustes del tamaño del 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.

Soportes 3D, para el interruptor y el sensor de medida por ultrasonidos

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.

Test del calibrado

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:

https://github.com/J-RPM/Level-of-a-tank-with-ultrasound

Soportes 3D

El soporte del medidor y su interruptor remoto los hice on PLA de color negro. Los ficheros los puedes descargar desde el siguiente link:

https://www.thingiverse.com/thing:5633438

¿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.

Logo: PCBWay

https://www.pcbway.es/

Transmisor DCF77 con ESP32 (v2)

Hace casi dos años hice un transmisor de DCF77 con un módulo ESP32, y lo acoplé dentro de otro transmisor que había hecho con anterioridad con Arduino. Ahora voy a montar otra versión del mismo transmisor DCF77, reduciendo al mínimo su tamaño y sin eliminar sus prestaciones.

Amplificador DCF77

Transmisor DCF77 con ESP32

Esquema

En la versión 2 del transmisor DCF77 con ESP32, he quitado el segundo controlador de Arduino, ya que sólo servía para complementar la información que muestra el display OLED. Pero he utilizado un trozo del PCB de ese transmisor, el que contiene los componentes del amplificador, y mediante 3 hilos lo he conectado con el módulo ESP32: los 2 hilos de alimentación y el hilo de salida DCF77 ya modulado. La salida de los impulsos DCF77 no se utiliza, pero se puede utilizar para hacer medidas.

Esquema: Transmisor DCF77 con ESP32 (v2)

Para comprobar que se está transmitiendo la señal por el amplificador, he montado un LED SMD en serie con una resistencia limitadora,  en paralelo con el condensador de 1nF del circuito resonante de salida, la antena transmisora. La resistencia limitadora del LED la he puesto bastante alta, de 3k9,  con el fin de que no se reduzca el nivel de RF radiado.

Nivel de salida DCF77

Con el fin de comprobar el correcto funcionamiento del amplificador de salida, y medir el nivel de tensión pico a pico de la portadora DCF77 (77,5 kHz), he conectado las puntas del osciloscopio en paralelo con la bobina del amplificador (antena). La punta de referencia del osciloscopio (GND) la he conectado a la toma de la bobina que va conectada a la alimentación de +5V, ya que para la señal de RF el +5 es lo mismo que el GND. Así en las medidas del osciloscopio, la referencia GND que muestre se corresponderá con la tensión +5 del amplificador.

El osciloscopio debería funcionar con batería, o estar aislado de la tensión de la red eléctricaMedida DCF77 a la salida del amplificador

Analizando la gráfica que muestra el osciloscopio, la amplitud de la señal DCF77 ocupa 3 cuadros X 5V = 15Vpp. Se puede observar que desde el punto de referencia del osciloscopio (1→ de la izquierda) hacia abajo hay un cuadro = 5V, justo la tensión a la que está alimentado el amplificador. Al estar funcionando el amplificador en Clase C (se polariza con la señal de RF) el transistor deja de conducir cada segundo durante 100 o 200ms, dependiendo si se transmite un CERO o UNO lógico. En la imagen se muestran dos segundos consecutivos (10 divisiones de 200ms), con dos intervalos sin portadora de 100ms = dos ceros lógicos. La medida que muestra a la derecha la pantalla del osciloscopio de 10V, es la tensión ‘extra’ que produce la bobina de 4mH junto con el condensador de 1nF al estar en resonancia a la frecuencia de 77,5 kHz.

Firmware

Repositorio GitHub:
https://github.com/J-RPM/DCF77-Transmitter

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el siguiente enlace: DFC77_ESP32_JR.rar

Caja 3D (ESP32+Display)

Caja 3D: Transmisor DCF77 con ESP32 (v2)

El fichero .stl que necesitas para fabricar esta caja, lo puedes descargar desde el siguiente enlace: DCF77 transmitter with ESP32 (v2)

¿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.

Logo: PCBWay

https://www.pcbway.es/

Reloj y Texto en display LED, con ESP32

Construcción de un display LED de reloj y texto con matrices LED. Este display se configura desde un teléfono móvil vía WiFi. La información de la fecha y hora se sincroniza a través de un servidor NTP, convirtiéndolo así en un reloj muy preciso. Este display está construido con el módulo ESP32 y 4 matrices LED de 8×8 pixel. De forma opcional, también se puede montar un segundo display OLED de 64×48 pixel (0,66 pulgadas).

Este display lo he montado con un módulo LED que ya contiene las 4 matrices, en lugar de los 4 módulos independientes que utilicé en el montaje anterior:

Reloj de precisión, configurado por WiFi

Matrices LED de 8×8 pixel

En la construcción del último reloj LED que monté, lo hice conectando 4 matrices LED de 8×8 pixel. Estas matrices llevan las conexiones de entrada y salida por la cara inferior y superior, y esto obliga a que el tamaño del reloj sea más grande de lo necesario.

Matriz LED 8x8 pixel

En este caso voy a montar otro reloj con un display LED del mismo tamaño, pero será más pequeño que el anterior. Aunque el nuevo firmware también permite utilizar un segundo display OLED, en este caso no lo voy a montar, y además utilizaré 4 matrices LED interconectadas en un sólo PCB.

PCB con 4 matrices LED de 8x8

Esquema de montaje

El montaje de este reloj es muy rápido y sencillo,  sólo hay que conectar 5 hilos entre un lateral del display LED y el módulo ESP32.

Montaje del display: Reloj-Texto

Configuración con doble interface WEB

Ahora el display LED permite mostrar la hora, o textos rotantes de hasta 255 caracteres. Tanto el modo de funcionamiento como su configuración, se programa a través de una conexión WiFi, y se guarda en la memoria EEPROM del módulo ESP32. De esta forma el reloj arranca siempre en el modo en el que se dejó la última vez: modo texto, o modo reloj.

Doble interface WEB

Esta nueva versión de firmware incluye un menú WEB con nuevas opciones,  y también animaciones cada vez que se reciben datos desde el reloj.

Firmware

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el repositorio GitHub: Clock-Text_ESP32

Y también desde Dropbox: ESP32_Time_Text_Matrix_JR.rar

Caja 3D (Reloj-Texto)

Caja 3D, para el PCB de 4 matrices LED de 8x8

El fichero .stl que necesitas para fabricar la caja de este display LED, lo puedes descargar desde el siguiente enlace: Clock and Text on LED display, configured by WiFi

¿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.

PCB de prototipo gratis y con plazo de entrega rápido: https://www.pcbway.es/

Logo: PCBWay

 

Reloj de precisión, configurado por WiFi

Construcción de un reloj con matrices LED, configurado desde un teléfono móvil vía WiFi. Este reloj toma la información de la fecha y hora a través de un servidor NTP, convirtiéndolo así en un reloj muy preciso. El reloj está construido a partir del módulo ESP32, acoplando un pequeño display OLED de 64×48 pixel (0,66 pulgadas) y 4 matrices LED de 8×8 pixel.

Como este reloj está creado a partir del Transmisor DCF77 que mostré anteriormente, hay mucha información de interés relacionada con el módulo ESP32  y el display OLED en el siguiente documento:

Transmisor DCF77 con ESP32

Matriz LED de 8×8 pixel

El display LED del reloj está construido con 4 matrices LED de 8×8 pixel. Estas matrices LED se pueden comprar junto a su controlador en módulos independientes, y encadenar en serie todas las que se necesiten. El circuito integrado controlador de la matriz LED, es el MAX7219.

Matriz LED 8x8 pixel

MAX7219

El CI MAX7219 permite controlar matrices de 8×8 LED de cátodo común. También puede controlar un grupo de 8 displays  de 7 segmentos, pudiendo habilitar o no su decodificador interno BCD. Este CI incluye un registro de desplazamiento, y se pueden encadenar para controlar una serie de matrices LED de 8×8, o una serie de grupos de 8 displays de 7 segmentos.

Circuito integrado MAX7219

El MAX7219 dispone una memoria SRAM para almacenar el estado de los 64 LED que puede controlar, y se encarga de realizar la multiplexación para su encendido individual, con una frecuencia de refresco típica de 800 veces por segundo a todo el conjunto. La memoria SRAM mantiene la información siempre que la alimentación no baje de 2V. La carga de datos se realiza en serie mediante el control de 3 hilos más 2 de alimentación (Data, Clock, CS, GND, Vcc)

El MAX7219 incluye un control de apagado de los LED reduciendo el consumo hasta 150µA. Tiene un control de brillo analógico y digital, un registro de límite de escaneo que permite al usuario mostrar de 1 a 8 dígitos, y un modo de prueba que fuerza el encendido de todos los LED.

La información se recibe en 2 Bytes, bits D0 – D15. El primer bit que se envía es el D15, el más significativo (MSB).

  • D0 – D7 contienen los datos
  • D8 – D11 contienen la dirección de registro
  • D12-D15 son bits sin contenido.

Esquema de montaje

El montaje de este reloj es muy sencillo, no hace falta montar ni un sólo componente electrónico, sólo los cables de conexión entre matrices y los 5 hilos entre el módulo ESP32 y la primera matriz LED.

Esquema de montaje del reloj

Configuración inicial del reloj

Este reloj necesita una conexión a Internet por WiFi para funcionar. Al arrancar se conecta a un servidor NTP para sincronizar el reloj (RTC) del módulo ESP32. A continuación ya puede funcionar de forma autónoma, y se puede configurar y controlar desde un dispositivo móvil (WiFi) y también desde un PC que tenga conexión a la misma red local a la que se haya conectado el reloj por WiFi.

La primera vez que se pone en marcha el reloj, es necesario acceder por WiFi al punto de acceso que crea el propio reloj cuando no dispone de acceso a Internet, y configurar su conexión WiFi.

  • SSID: ESP_32
  • IP: 192.168.4.1

Punto de acceso WiFiEn la imagen siguiente se muestra el diagrama de funcionamiento cada vez que se reinicia el reloj.

Diagrama de funcionamiento del reloj en el arranque

Modos de funcionamiento y ajustes del reloj

El reloj puede mostrar la fecha y hora siguiendo el estándar europeo o americano (24H/12H). También se puede personalizar el formato de la hora en dos tamaños, las animaciones de los números cuando cambian y el ajuste de brillo del display LED. Todos estos ajustes se realizan a través de una conexión a la red local que se haya conectado el reloj, ya sea por WiFi o cable. No es necesario instalar ningún software, porque el reloj incluye su propio navegador web (web browser). Conectando cualquier dispositivo a la dirección IP que muestra el reloj cuando se conecta a la red Wifi, se puede acceder al menú de control de este reloj.

Configuración del reloj por WiFi

Firmware:

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el repositorio GitHub:
https://github.com/J-RPM/Precision-clock_ESP32

Y también desde Dropbox: ESP32_NTP_Time_Matrix_JR.rar

Caja 3D (Reloj de precisión)

Caja 3D

El fichero .stl que necesitas para fabricar la caja de este reloj, lo puedes descargar desde el siguiente enlace: Precision clock, configured by WiFi

¿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.

Logo: PCBWay

https://www.pcbway.es/

 

 

Transmisor DCF77 con ESP32

Construcción de un pequeño transmisor de 77,5 KHz, para poder poner en hora los relojes DCF77 que no reciban correctamente la señal del transmisor de Alemania. Este transmisor es portátil, funciona con una batería de 3,7V y es muy preciso, ya que toma la información de la fecha y hora sincronizando previamente su reloj a través de un servidor NTP. Este transmisor está construído a partir del módulo ESP32, acoplando un pequeño display OLED de 64×48 pixel y 0,66 pulgadas.

ESP32 + OLED

Sistemas de sincronización horaria

Actualmente existen muchos métodos para mantener la hora exacta en cualquier dispositivo electrónico, ya sea través de un receptor GPS, o la recepción de la señales horarias en onda larga que se emiten desde diferentes países: 77,5 kHz desde Frankfurt en Alemania, 40 y 60 kHz desde Japón, 60 KHz desde Colorado en EE.UU, 66,66 kHz desde Taldom en Rusia, 68,5 kHz desde Lington en China, 60 kHz desde Anthorn en Reino Unido, o 162 kHz desde Allouis en Francia.

Cobertura DCF77

La mayoría de los relojes sincronizados por radio que se venden en Europa, utilizan la recepción de las señales horarias que envía el transmisor DCF77 desde Frankfurt, en Alemania.  Como sucede con cualquier transmisión por radio en Onda Larga, su cobertura varía en función de la distancia, climatología y el umbral de ruido electromagnético existente en el punto de recepción.

Con el fin de poder utilizar algunos relojes DCF77 que no disponen de ajuste de hora manual, hace algo más de un año publiqué una información para construir un pequeño transmisor que simulara la emisión DCF77. Este transmisor constaba de dos partes: una hardware construida con Arduino, junto con un software que funcionaba bajo Windows, encargado de suministrar los códigos de tiempo al transmisor.

Transmisor experimental DCF77

Tiempo UNIX

Tiempo Unix  se define como la cantidad de segundos transcurridos desde la medianoche UTC del 1 de enero de 1970, sin contar segundos intercalares. El tiempo que representa es UTC, pero no tiene forma de representar segundos bisiestos de UTC (por ejemplo, 1998-12-31 23:59:60).

Cualquier dispositivo que disponga de una conexión a Internet, podría sincronizar su fecha y hora con gran precisión en cuestión de segundos. Sólo es necesario  conectarse a un servidor NTP para recibir el código de tiempo, y luego introducir los comandos en una librería para que nos entregue la fecha y hora local en la zona que queramos .

D1 mini ESP32

Para hacer este nuevo transmisor DCF77, he utilizado una placa ESP32 y un pequeño display OLED de 64×48 pixel, 0,66 pulgadas. El módulo ESP32 dispone de todo lo se necesita para hacer un transmisor DCF77  completo.

Bloques ESP32
ESP32
  • Procesador de 32 bit, que permite generar la frecuencia de 77,5 kHz con mucha más precisión que Arduino.
  • Reloj en tiempo real (RTC) para gestionar el envío de los códigos de tiempo DCF77
  • Interface WiFi, para conectar a un servidor NTP y sincronizar la fecha y hora con gran precisión.

LIVE D1 mini ESP32

El módulo ESP32 es capaz de sincronizar cualquier reloj DCF77 por si solo, incluso se podría prescindir del display. Sólo sería necesario conectar un trozo de cable en el pin IO25 (antena) y acercarlo al reloj, aunque su alcance sería muy limitado.

MiniKit ES32

HW-699 0.66″ OLED display (64×48)

Con este display, además de mostrar la fecha y hora, es posible saber qué está haciendo el transmisor DCF77 en cada momento. El display  HW-699 se comunica con el módulo ESP32 mediante su interface I2C, y es posible configurarlo con dos direcciones diferentes (0x3C / 0x3D). Por defecto utiliza la dirección 0x3C, y así es como lo he utilizado para hacer este montaje.

Display OLED 0,66"

Módulo ESP32, dentro del transmisor DCF77

Aprovechando que ya tenía un transmisor DCF77 con Arduino, he montado dentro de su caja el módulo ESP32, junto con el display OLED. De esta manera aprovecho además de la caja su fuente de alimentación (batería 3,7V + StepUp 5V + módulo de carga), los indicaciones LED y el amplificador de potencia junto con su bobina de antena.

Esquema: Transmisor DCF77

Firmware:

Repositorio GitHub:
https://github.com/J-RPM/DCF77-Transmitter

El archivo que necesitas para programar el ATmega328P, lo puedes descargar de forma gratuita desde el siguiente enlace: TX_DCF77.rar

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el siguiente enlace: DFC77_ESP32_JR.rar

Soporte 3D (ESP32+Display)

Soporte OLED

El fichero .stl que necesitas para fabricar esta soporte, lo puedes descargar desde el siguiente enlace: DCF77 transmitter with ESP32

¿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.

Logo: PCBWay

https://www.pcbway.es/

OLED: SSD1306 ‘Fake in China’ & Sensor de proximidad para invidentes

Sensor de proximidad para invidentes

Construcción de un sensor de proximidad con Arduino, mostrando la información de la distancia en un display gráfico OLED de 0,96″. El display OLED que he utilizado es el SSD1306 y debería tener una resolución de 128×64 pixel, pero como en China ahorran por todas partes, el display muestra los gráficos con una resolución de 128×32… ¿50% de ahorro/estafa?.
Este sensor de proximidad incluye un avisador acústico, y podría ser muy útil como complemento del bastón guía para personas invidentes. En este caso no sería imprescindible instalar el display, y la autonomía de la batería sería mayor.

Medir la distancia por ultrasonidos

Utilizar un sensor por ultrasonidos para medir distancias con precisión no es lo más adecuado, pero puede ser de gran ayuda si se utiliza para detectar obstáculos cercanos. Este sensor podría utilizarse como ayuda al aparcamiento de un coche, aunque hay otros sensores más adecuados (capacitivos, ópticos), porque las cápsulas piezoeléctricas no están pensadas para trabajar en la intemperie. El uso más adecuado para este sensor sería montarlo en un equipo portátil, y utilizarlo como avisador de obstáculos cercanos para personas invidentes (podría utilizarse como complemento del bastón guía).

Sensor HC-SR04

El sensor de ultrasonidos HC-SR04 se puede comprar por menos de 1 dólar en Internet, y tiene un alcance aproximado de 4 metros y medio.

Sensor HC-SR04

Para ver la medida de la distancia he utilizado un diminuto display gráfico de 128×64 pixel, el modelo SSD1306, con  tecnología OLED.

Oled: SSD1306

Este circuito incluye un zumbador piezoeléctrico para realizar avisos acústicos de los objetos más próximos (imprescindible para invidentes).

Esquema: Detector de proximidad

El zumbador empezará a sonar de forma intermitente cuando haya objetos a partir de una distancia de 60 cms., y se irá acelerando la cadencia a medida que se acorta la distancia con el obstáculo. Este sonido intermitente se convertirá en continuo, cuando la distancia del obstáculo esté a 5 cms. o menos del sensor.

Resolución del display SSD1306

El display OLED SSD1306 que he utilizado en este montaje lo compré por Internet, y me ha llegado con ‘sorpresa’. El display incorpora un controlador gráfico de 128×64 pixel de resolución, el cuál controla el encendido de un display OLED de 128×32 pixel. Esto supone un 50% de pérdida de resolución, o visto de otra forma, es necesario enviar al display el doble de la información que va a presentar. Cuando el display muestra textos o números utilizando su font de caracteres, sólo se puede apreciar el problema cuando el tamaño de letra es 1. El problema es que si se carga un gráfico en memoria, se pierde un 50% de su resolución, y se pierde la fidelidad del gráfico por la pérdida de puntos. Observa en la imagen siguiente, que la altura en pixel de los caracteres es la mitad de la que debería ser, teniendo en cuenta que el direccionamiento del cursor si es el correcto.

Resolución SSD1306

 

El proceso que he seguido para cargar el gráfico, ha sido convertir la resolución del archivo original de 128×64 pixel a 128×32, luego corregir con un editor de dibujo los detalles más visibles (Paint o similar), y volver a redimensionar el gráfico a 128×64 pixel para poder utilizarlo en este display sin perder fidelidad.

Si utilizas un display con una resolución correcta (128×64), este último paso no lo tienes que hacer.

Programar gráficos en el display

Si quieres generar tu propio gráfico para que aparezca en el display, puedes sustituir el código del gráfico que yo he puesto por el tuyo. Para crear este código a partir de una imagen BMP,  la forma mas sencilla de hacerlo es mediante el software: LCD Assistant

Software: LCD Assistant

Firmware

El código de programación de este sensor de proximidad,  se puede descargar desde el siguiente enlace: Sensor de proximidad