Supervisor solar Fronius

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.

Instalación del inversor y cuadros eléctricos

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.

Distribución de los paneles solares

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.

Antena Biquad 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.

Medidores DC

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.

Relé de protección trifásico

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.

Configuración GPIO Fronius

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.

Smart Meter de Fronius

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.

Esquema: Reloj-Inverter

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.

Reloj de precisión, 8 x 7 segmentos LED

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:

  1. Con un display de 7 segmentos y el módulo de voz.
  2. 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.
  3. 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):

http://192.168.1.112/solar_api/v1/GetPowerFlowRealtimeData.fcgi

Potencias Fronius

Alarmas del Inversor

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

http://192.168.1.112/solar_api/v1/GetInverterInfo.cgi

Alarmas Fronius

A través de esta consulta se obtiene el estado de alarma del inversor. Durante la noche, podrían a parecer los códigos de error 306 o 307

  • 307: El valor de tensión DC que generan los paneles es demasiado bajo para arrancar el inversor.
  • 306: La tensión DC de los paneles solares es suficiente, pero falta potencia para poder arrancar el inversor.
  • Status:2 Error:0  >>> Cuando la consulta coincide en el momento que el inversor está chequeando los valores de tensión/potencia de los paneles solares.

Descargas del firmware

ESP32_Clock-Fronius

Reloj LED de pared

Reloj LED de pared, compatible con ESP32 (Reloj & Inverter):

Reloj_V6.1_(22MHz_15x15).HEX

¿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 de precisión, 8 x 7 segmentos LED

Construcción de un reloj de precisión, con 8 dígitos LED de 7 segmentos. 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 8 dígitos LED de 7 segmentos, pudiendo conectar también un segundo display OLED de 64×48 pixel (0,66 pulgadas).

 

8 dígitos de 7 segmentos con MAX7219

Hace unos meses monté un reloj de precisión, sincronizado desde un servidor NTP. Hice dos versiones distintas, y en ambas utilicé 4 matrices LED de 8×8 pixel.

Reloj de precisión, configurado por WiFi

El primer reloj tenía un display adicional de tipo OLED, y en el segundo sólo instalé las 4 matrices LED con el fin de reducir el tamaño de la caja.

Reloj y Texto en display LED, con ESP32

Ahora voy a montar otro reloj todavía más pequeño y barato, utilizando 8 dígitos LED de 7 segmentos.

8 dígitos LED de 7 segmentos

Este reloj tendrá la misma precisión y funcionalidades que los anteriores, sincronizando la fecha y hora a través de un servidor NTP, y controlando sus funciones mediante un interface Web, a través de una conexión WiFi.

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 PCB de 8 dígitos y el módulo ESP32.

Esquema de montaje del reloj de 7 segmentos

Configuración con interface WEB

Este reloj LED se configura a través de su propio interface Web, tecleando la dirección IP que le asigna el Router WiFi, en la ventana de cualquier navegador de Internet que esté conectado a la misma red. Todos los cambios se guardan en la memoria EEPROM del módulo ESP32.

Configuración del reloj por WiFi

De esta forma el reloj siempre arrancará con los parámetros que tenía programados la última vez que se desconectó su alimentación.

Firmware

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

Precision_Clock_ESP32_7Segment

Y también desde Dropbox:

ESP32_Time_8BCD_JR.rar

Caja 3D (Reloj de 7 segmentos)

 

Caja 3D, para el PCB de 8 dígitos LED de 7 segmentos

El fichero .stl que necesitas para fabricar la caja de este reloj LED de 7 segmentos, lo puedes descargar desde el siguiente enlace: Precision clock on 7 segment 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

 

 

Caja a medida con CNC

Diseño y fabricación de una caja a medida, cortando las piezas con la ayuda de una fresadora digital (CNC). El diseño de las piezas lo hice con el software SketchUp. Tuve que corregir el archivo que genera SketchUp para poder utilizarlo en la CNC. Para comprobar el código ‘G’ y corregir el archivo, utilicé el simulador por software CAMotics

Con el fin de controlar los display’s de 7 segmentos SMD que tengo, he mandado fabricar otro circuito impreso para montar la CPU.

PCB de la CPU

Esta CPU está basada en el micro-controlador AT89S52 de ATMEL. Como este micro-controlador se puede programar sin desmontarlo del circuito impreso, a través de su interface ICSP, he elegido el encapsulado de tipo SMD. El circuito impreso tiene una altura muy parecida a la del  display de 7 segmentos, y la idea es la de fabricar una caja de madera a medida, para construir un display con 4 dígitos.

SketchUP

Para cortar las piezas de madera con precisión, he utilizado una fresadora digital (CNC). Para dibujar las piezas a medida y poder exportar los datos a la CNC, he utilizado el software SketchUp.

Software SketchUp

A pesar de que este software funciona muy bien, he encontrado un problema a la hora de generar los archivos de código ‘G’. Los archivos contienen una serie de instrucciones adicionales que dañan las piezas a fabricar. Para localizar el lugar exacto donde se encuentran estas instrucciones para eliminarlos, he utilizado otro software que emula el funcionamiento de la CNC.

CAMotics 

El software CAMotics permite la ejecución del código ‘G’ de forma visual, y esto facilita la localización de las instrucciones que se deben eliminar.

Software CAMotics

El software permite la edición de los archivos y su posterior visualización, para comprobar que los cortes que hará la CNC sean los correctos.

Construcción de la caja

Después de la fase de diseño de la caja y conversión de sus datos en código ‘G’, el trabajo de corte y fresado de todas las piezas lo realiza la CNC. Si queremos obtener un buen acabado y precisión, es importante que los cortes se realicen en capas, no en una sola pasada.

Fresado de la caja

También es importante incluir unas pequeñas zonas en cada cara de las piezas, en las que la fresadora no realice el corte por completo. Estos pequeños puntos de sujeción evitarán que se muevan las piezas de su estructura durante el corte, evitando su desplazamiento y marcado por la fresa.

Montaje de la caja

Una vez cortadas todas las piezas que componen le caja, incluido su frontal de metacrilato, la pegamos con cola blanca (dejando la tapa lateral derecha sin pegar). La tapa lateral derecha irá sujeta con 2 tornillos, y es la que nos dará el  acceso al montaje y desmontaje de todos sus componentes en el interior. Para obtener un buen acabado, se sellan las juntas de todas las uniones que van pegadas, con cola blanca y serrín de la misma caja, suavizando todas las aristas con una lija especial para madera.

Ajuste de los PCB's en la caja

Para terminar se pinta la caja en color negro mate, con pintura en spray, y se comprueban los soportes colocando los circuitos impresos en su lugar y cerrando la caja.

 

BINGO de pared #2

Construcción de un Bingo electrónico de grandes dimensiones, para colgarlo en la pared de un salón social. El panel tiene unas dimensiones de 1 metro de ancho por 80 centímetros de alto, y está construido con la tapa de madera de un cajón de embalaje. En esta segunda parte, se finaliza el montaje del Bingo y se realizan pruebas de funcionamiento.

Rotulación

Para rotular los 90 números en el panel he construido una plantilla para centrar los números en cada cuadro, y otra para los números. El primer paso es rotular todos los números en la madera.

Rotular números

Una vez rotulados todos los números, con la ayuda de un pincel de punta fina, especial para la rotulación, se pinta el interior de los números. Yo utilicé esmalte metálico de color verde.

Pintar números

Mecanizado

A continuación se taladran los 90 agujeros para montar los diodos LED. Aunque el diodo es de 10 mm, es conveniente hacer el agujero a 9 mm y ajustar el hueco con la ayuda de una lima, o utilizando una pequeña fresa y un taladro de mano.

Mecanizado LED

Los diodos LED se colocan por la parte trasera del mural,  y se fijan con adhesivo termo fundible.

Pegado LED

Conexiones

Para cablear la matriz, hay que conectar los ánodos de los diodos LED de las 9 líneas (sus resistencias limitadoras), y los cátodos de las 10 columnas. Al final se conecta un cable de cinta plana para los cátodos (10 hilos) y otro para los ánodos (9 hilos). Es importante identificar la primera línea y la primera columna, conectando el hilo que lleva la marca roja en esta posición.

Matriz LED

Por finalizar, se monta un anclaje para la CPU y se fija el display y el pulsador en el mural. El conexionado es muy rápido, porque todas las conexiones se hacen con terminales y no es necesario utilizar el soldador.

Montaje CPU

Funcionamiento

Al conectar el panel aparece un texto en el display, mostrando la versión del firmware, y se iluminan los 90 diodos LED del panel durante unos segundos.

Bingo de pared

En el siguiente video se muestran todos los detalles de montaje y funcionamiento de este Bingo electrónico.

BINGO de pared #1

Construcción de un Bingo electrónico de grandes dimensiones, para colgarlo en la pared de un salón social. El panel tiene unas dimensiones de 1 metro de ancho por 80 centímetros de alto, y está construido con la tapa de madera de un cajón de embalaje. Este panel tendrá el mismo diseño y electrónica que el Bingo portátil, pero utilizando la matriz doble de 7 segmentos que se montó anteriormente, y utilizando para los números del panel diodos LED de 10 mm.

Mural de madera

Al realizar este montaje sobre un panel de madera de embalaje, lo primero que hay que hacer es lijar, reparar los desperfectos y barnizar todo el panel. Antes de rotular y mecanizar el tablero, es muy importante replantear el diseño y tamaño de todos los componentes que se van a montar. Para mostrar los 90 números del Bingo en el panel, tenemos que rotular los 90 marcos. Si se hace con pintura, la mejor manera de hacerlo sería delimitando las zonas a pintar, tapando el resto con papel y cinta de enmascarar (cinta de carrocero /cinta adhesiva de papel).

Marco para los números

LED para el panel

En cada uno de los 90 marcos del mural tendremos que rotular un número y montar un diodo LED. Es importante que el diodo LED que se monte sea de alta luminosidad y de gran tamaño, pero también es importante que no deslumbre. Los diodos LED de 10 mm son una buena elección, pero lo difícil es conseguir un diodo LED de alto brillo y luz difusa. Para evitar el deslumbramiento frontal, podemos eliminar la lente de los diodos LED (frontal del encapsulado) con la ayuda de una piedra esmeril. La luminosidad la podemos comprobar visualmente, comprobando su brillo con otro diodo LED de referencia… pero lo mejor sería medir la luminosidad con un luxómetro.

Medida de luminosidad

CPU para el Bingo

Este Bingo de mural lleva los mismos componentes que el Bingo más pequeño que montamos anteriormente.

Esquema BINGO

En este caso, decidí montar su propio sistema de alimentación, integrando el módulo ‘Step-Up’ de la batería Li-ion en la placa del circuito impreso.

Fuente de alimentación

El módulo de carga de la batería lo monté en el soporte de la batería. La placa de control (CPU) dispone de 2 entradas de alimentación, una de 5V y la otra de 3,7V. Si conectamos la batería a la toma de 3,7V, la toma de 5V quedaría libre, y podríamos utilizarla como salida de 5V para alimentar algún adorno  auxiliar o indicador cuando el  panel está encendido.

Circuito impreso (PCB)

Para obtener el fotolito del circuito impreso a escala, sólo tienes que imprimir en una hoja de film transparente de tamaño A4, especial para impresoras láser, la imagen siguiente (descargar del tamaño real).

Bingo PCB

A continuación se muestra la disposición de todos los componentes montados en la placa del circuito impreso (PCB).

CPU del Bingo montada

Firmware: J_RPM_v3_BINGO.HEX

Puedes ver todos los detalles de este montaje en el siguiente video: