Analizador de espectro con ESP32


El analizador de espectro basado en IoT / web de Mark utiliza un único microcontrolador ESP32 para crear hasta 64 canales para visualizar diferentes bandas de audio. Sólo utiliza 6 componentes externos para funcionar, y no tiene Leds o pantallas LCD o TFT. En su lugar, utiliza una página web HTML para mostrar todas las barras de frecuencia. Otros aspecto interesante es dado que el ESP32 cuenta con dos cores, en esta implementación funcionan ambos núcleos del procesador; el núcleo 1 se utiliza para ejecutar el bucle principal del programa, mientras que el núcleo 0 se utiliza para actualizar constantemente los datos de la web. Aunque el programa en sí mismo hace posible que se ejecute en un solo núcleo, el uso de ambos núcleos dará lugar a un mejor rendimiento.

¡Esto es tan fácil de construir y programar, que tienes que probarlo! Ni siquiera necesitará instalar el software de Arduino; sólo tiene que usar el programador web para cargar el archivo binario precompilado.

En efecto Mark nos presenta este gran proyecto que quiere compartir: un analizador de espectro de audio que no es complejo con un Hardware complicado, porque en la implementación solo vamos a usar un controlador esp32 con un puñado de componentes !y el resultado será absolutamente increíble!
Así que si tiene curiosidad por saber cómo puede construir su propio analizador de espectro sin gastar más de unos pocos dólares, entonces este proyecto merece la pena sobre todo cuando comprueba en el esquema de más abajo como no ha usado más sólo 10 componentes o menos.


Sobre el esquema veremos cómo programarlo y en cuanto a la programación veremos un truco especial bajo la manga, porque ni siquiera tendremos que instalar el entorno Arduino (a menos que quiera hacerlo
primero).

Antes de continuar veamos un poco sobre el audio y la transformación rápida de Fourier

EXPLICACION DEL FUNCIONAMIENTO


Para entender la forma en que escuchamos el audio simplificaremos las cosas mirando a un solo
sonido, por ejemplo, una onda sinusoidal pura de 440Hz que la oiríamos como un tono simple aunque la mayoría de los sonidos se componen de una mezcla de frecuencias.
SI agreguemos otra de 523 Hz usted puede escuchar claramente dos diferentes. Sin embargo, lo que realmente no son dos sonidos individuales, sino con dos sonidos procedentes del altavoz oirá la suma de ambos sonidos . Esto significa que a veces ambos sonidos se suman dando como resultado una mayor amplitud, mientras que otras veces los sonidos tienden a que el resultado sea una señal de aspecto casi aleatorio, aleatoria que no tiene ningún sentido y que incluso empeora en cuanto añadimos más frecuencias.

Por ejemplo, agreguemos 587 Hertz, ahora puede escuchar tres sonidos individuales. Estos sonidos individuales de nuevo los está escuchando en una señal lejos de la onda sinusoidal pura. Si tomamos un vistazo recuerde que la música o la voz o la mayoría de los sonidos son en realidad una combinación de frecuencias que interactúan resultando el sonido que escucha.

Ahora probablemente se esté preguntando cómo va a ayudarnos eso a construir un analizador de espectro. Pues bien, a la señal de audio, estamos viendo una mezcla de varias frecuencias individuales, estas frecuencias precisamente nos van a servir para construir un analizador de espectro ,pues no estamos interesados en esta mezcla, sino que queremos conocer todas las frecuencias que componen la señal, es decir queremos hacer ingeniería inversa de la mezcla para encontrar nuestras señales originales.

Esto se puede hacer utilizando un complicado algoritmo llamado Transformación rápida de Fourier. La
explicación de este algoritmo es compleja , así que para simplificar las cosas, una vez más sólo recuerde
la transformación rápida de Fourier hace todos los cálculos.
Para averiguar exactamente qué frecuencias están ocultas en su señal, ahora digamos digamos que el ancho de banda de nuestra señal de audio es de 20 Hz a 20 khz. Vamos a dividir el ancho de banda total en varias bandas individuales digamos siete y las llamaremos contenedores. Cada contenedor tiene un ancho de banda limitado y una diferente frecuencia central. Recordemos que nuestra señal de audio se compone de varios frecuencias individuales por lo que ahora el mencionado algoritmo clasificará qué frecuencia va donde y la pone en el contenedor correcto. Todo lo que queda por hacer es ver cuán lleno está cada contenedor y traducirlo a una lectura, que en nuestro caso es un gráfico de barras.

El Hardware

Para el hardware vamos a utilizar una placa de desarrollo esp32, cuatro resistencias un condensador y un interruptor y tal vez un conector de audio y eso es todo, así que con tan pocos componentes es muy fácil construir este proyecto usando una protoboard o un PCB estándar.

El esquema es sencillo, , en el centro vemos la placa de placa de desarrollo ESP32 versión 1.0 .En el lado izquierdo tenemos nuestra entrada de audio el canal izquierdo y derecho y por supuesto la tierra. Ambos canales están unidos usando resistencias La señal de audio conjunta está conectada a un lado de un condensador mientras que el otro lado del condensador está conectado a nuestra entrada ADC y también a resistencias R3 y R4.

Si echa un vistazo a la hoja de datos del esp32 verá que que la entrada del ADC sólo puede manejar un
positivo mientras que nuestra señal de audio puede ser negativa y positiva: por eso estamos creando un offset de aproximadamente 1.6 voltios usando R3 y R4.

Finalmente tenemos un botón S1 que podemos pulsar para cambiar el número de bandas o contenedores durante el tiempo de ejecución. Se puede cambiar a 8 16 24 32 o incluso 64 canales

Para facilitar las cosas, vemos dos ejemplos de cómo podemos reconstruir este dispositivo. En el lado izquierdo puede ver una placa de pruebas con todos los componentes , simplemente siga el ejemplo y debería funcionar.
También vemos el prototipo de placa de circuito impreso superior (el ejemplo está en el lado derecho)
Mire bien el ejemplo y tome nota de los lugares donde se interrumpen los carriles de cobre o donde estan unidos
Ahora que el hardware está hecho ¿está de acuerdo con lo que he dicho antes?..es realmente fácil de construir, ¿no?


El software

Ahora que el hardware está hecho vamos a pasar a la programación, para lo cual es necesario descargar el boceto de la comunidad de element 14. Puede descargar todos los archivos en la Comunidad element14! https://bit.ly/3fv0oqy

Antes de que pueda usar un esp32 con el entorno Arduino, necesita instalar las bibliotecas adecuadas
y para ello vamos al archivo hacemos clic en preferencias y luego buscamos la línea que dice
administradores adicionales de la placa . Haga clic en el icono y asegúrese de añadir esta línea . Pulse OK y de nuevo pulse OK (esto significa que la librería el enlace a la librería está instalada)

Ahora vamos a instalar la biblioteca, para ello vamos a herramientas, y hacemos clic en el gestor de placas y el gestor de placas manager. Primero tenemos que esperar hasta que se cargue y una vez cargado, (esto puede tomar algún tiempo dependiendo de la cantidad de biblioteca que tenga instalada), en la barra de búsqueda hacemos clic en esp32 y esp32 by expressive systems aparecerá). Asegúrese de instalarlo correctamente.

Bien si ya lo he hecho, el botón se pondrá en gris. Una vez que se instala asegúrese de seleccionar la placa apropiada, (una conocida es la esp32 dev kit que se encuentra en esp32 Arduino boards, pero encontrará más abajo do it esp32 def kit version , que es una de las más usadas por su bajo precio,y es la que se usa en este analizador)

El sketch se compone de dos archivos : uno de dos archivos es nuestro elemento de especificación web
que es el archivo principal y nuestra configuración , y el otro es la gestión de la entrada de audio y su correspondiente gestión con la transformada rapida de Fourier

Echemos un vistazo al elemento web primero básicamente porque no hay nada en este archivo que necesite ser cambiado a menos que quiera añadir funcionalidad o quiera hacer algunos cambios que tengan bastante impacto, pero básicamente no necesita cambiarlo. Por supuesto puede si quiere en la configuración, hay algunos parámetros que puede cambiar, puede cambiar el número de bandas, que ahora está fijado en 64 y básicamente este es el número de bandas en el arranque se puede cambiar a 8 16 24 32 o 64. Podemos definir el modo si tiene un hardware diferente o si usa un pin diferente puede cambiarlo. Asimismo hay amortiguación de ganancia y umbral de ruido, y esos dos parámetros que puede tener en cuenta, si usted ve una gran cantidad de estática, lo que significa que los gráficos de barras ya te están dando una lectura tremendamente cuando no hay señal que puede cambiar aquí, entonces tenemos la velocidad del filtro mientras que básicamente es un retraso tiempo para que las barras caigan y lo hace más suave si el número es demasiado alto entonces se convertirá en bastante
nervioso, tenemos la frecuencia de muestreo y un bloque de muestreo que ( se recomienda que se deje igual, no los cambie). Asimismo tenemos por supuesto nuestras tablas de corte de banda para cada número de canales de modo que para cada grupo hay un parámetro diferente. Tomemos el de
para ocho canales, primero se ve el en el color de la tabla y ahora es 100 Hertz, 250, 500, Etc .Usted
puede cambiarlo, pero asegúrese de que el secuencial debe ser siempre más alto que el anterior y
esta regal se mantiene sucesivamente. Asimismo tenemos las etiquetas, que por supuesto básicamente eso es lo que se mostrará en la pantalla, y lo mismo ocurre con la banda de 16, la de 24, la de 32 y 64.

Básicamente eso es todo lo que hay, si quiere profundizar en el código, Mark ha puesto
comentarios allí que nos pueden ayudar a entender un poco más los entresijos y puede leerlo.



Bueno, puede ser un poco de molestia compilar : tenemos que instalar el Arduino IIDE, las librerías, tenemos que instalar el gestor de placas adecuado, abrir el boceto compilarlo y subirlo, así que muchas cosas pueden salir mal, ¿y si hubiese otra manera más fácil? Pues la hay, con una versión de Mark que ya lo he compilado para nosotros de modo que podemos usar nuestro navegador de internet para simplemente subirlo directamente a la esp32 ( sin embargo esto solo funciona si va usando el sketch sin modificar de modo que si piensa hacer modificaciones esto no funcionara) .

En efecto para hacer modificaciones en el sketch tal vez quiera añadir una funcionalidad extra o
cambiar el ruido o los parámetros de retardo… entonces, por supuesto, usted tendra que
recompilarlo y subirlo usando el Arduino IDE pero para todos los demás, veamos la programación en el navegador web

La forma más manera más fácil de programar esp32 que jamás hayas visto, es sencilla : sólo tiene que ir a la siguiente sitio web , pulse instalar, seleccione el puerto com apropiado y asegúrese de que su
esp32 está conectado con el conector USB y presiona connect para que comience a programar.
Programar es tan fácil como eso.. !sólo esperar hasta que llegue a 100% y ya está!, eso es todo lo que hay que hacer si utilizas el navegador web para programar su esp32 es seguro decir que la
la programación fue incluso más fácil que el hardware y el hardware en sí no era difícil fue así es el momento para una demostración


¿No crees que vamos a ver lo que hemos construido ? tomemos nuestro esp32 que hemos programado y pongámoslo en la placa que acabamos de crear. Ahora todo lo que necesita hacer es encenderlo de modo que cuando lo arranque por primera vez el dispositivo, como no tiene memoria de sus redes, lo que se iniciará como un punto de acceso y tiene que conectarse al punto de acceso utilizando su teléfono móvil o cualquier otro dispositivo.En el momento en que se conecte se iniciará el gestor de Wi-Fi. Es justo ahi donde puede introducir sus credenciales como su red o contraseña y pulsar guardar. Después de un reinicio, ahora será parte de su red y podrá acceder a ella yendo a la dirección IP correspondiente

Para terminar veamos el video que ha hecho Mark donde explica en ingles todo lo que hemos visto anteriormente:

Sin duda es un proyecto muy interesante que además nos puede ayudar a comprender mucho mejor la programación con el ESP32 y por supuesto entender un poco mejor la ciencia que hay detrás del mundo del sonido.

Fuente aqui

Medidas eléctricas de +6canales ( software)


Ya se trató en este blog el hardware de EmonESP/EmonCMS ,una placa medidora de energía que usa tambien un ESP32 proporcionado 6 canales expandibles pudiendo leer 6 canales de corriente y 2 canales de voltaje a la vez. Para ello utiliza transformadores de corriente y un transformador de CA para medir el voltaje y alimentar la(s) placa(s)/ESP32. 

Estas son algunas de sus carastericticas

  • Muestras de 6 canales de corriente y 1 canal de voltaje (ampliable a 2 voltajes)
  • Las placas complementarias (hasta 6) pueden expandir el medidor hasta 42 canales de corriente y 8 canales de voltaje
  • Utiliza 2  Microchip ATM90E32AS – 3 canales de corriente y 1 voltaje por IC
  • Para cada canal, el medidor también puede calcular lo siguiente:
    • Poder activo
    • Poder reactivo
    • Poder aparente
    • Factor de potencia
    • Frecuencia
    • La temperatura
  • Utiliza abrazaderas de transformador de corriente estándar para probar la corriente
  • Resistencias de carga de 22 ohmios por canal de corriente
  • Incluye convertidor reductor incorporado para alimentar ESP32 y electrónica
  • 2 interrupciones IRQ y 1 salida de advertencia conectada a ESP32
  • Salidas de cruce por cero
  • Salidas de pulso de energía por IC (4 por IC x2)
  • Interfaz SPI
  • Error de medición IC: 0,1%
  • Rango dinámico IC: 6000:1
  • Selección de ganancia actual: hasta 4x
  • Deriva de referencia de voltaje típica (ppm/°C): 6
  • Resolución ADC (bits): 16

La placa principal cuyas medidas pueden ser bien MonofásicaTrifásicas incluye un convertidor reductor para alimentar la electrónica y la placa de desarrollo ESP32, que se conecta directamente a la placa. Se pueden apilar hasta 6 placas adicionales encima de la placa principal para permitirle monitorear hasta 42 canales actuales en resolución de 16 bits, en tiempo real, ¡todo a la vez!

La potencia se puede calcular en el software, pero el factor de potencia deberá estimarse ((voltaje*corriente)*power_factor)).

A continuación destacamos los elementos hardware necesarios para completar la instalación:

  • Transformadores de corriente (cualquier combinación de los siguientes, o cualquier transformador de corriente que no supere los 720 mV RMS o la salida de 33 mA)
    • SCT-006 20A/25mA Micro (apertura de 6 mm – conectores de 3,5 mm)
    • SCT-010 80A/26.6mA Mini (apertura 10mm – conectores 3.5mm)
    • SCT-013-000 100A/50mA (apertura 13mm – conectores 3.5mm)
    • SCT-016 120A/40mA (apertura 16mm – conectores 3.5mm)
    • Magnelab SCT-0750-100 (conectores de tornillo: debe cortar la conexión de la resistencia de carga en la parte posterior de la placa, ya que tienen una resistencia de carga incorporada).
    • SCT-024 200A/100mA (apertura 24mm – salida terminal)
    • También se pueden usar otros, siempre que estén clasificados para la cantidad de energía que desea medir y tengan una salida de corriente de no más de 720 mV RMS, o 33 mA en la salida máxima.
  • Transformador de CA (NO CC):
    • América del Norte: Jameco Reliapro 120V a 9V AC-AC o 12v. El pin positivo debe ser de 2,5 mm (algunos son de 2,1)
    • Europa: 240 V a 9 V o 12 V CA-CA al menos 500 mA
  • ESP32 (elija uno):
    • NodoMCU 32s
    • Espressif DevKitC
    • DevKitC-32U si necesita una mejor recepción wifi (no olvide la antena )
    • Cualquier otra cosa con los mismos pines que el anterior, que generalmente son 19 pines por lado con 3v3 en la parte superior izquierda y CLK en la parte inferior derecha
  • Software (elija uno):
    • La versión personalizada de EmonESP y la biblioteca Arduino ATM90E32
    • La versión actual de ESPHome. Los detalles sobre la integración con Home Assistant se encuentran aquí. 
    • Bibliotecas para CircuitPython y MicroPython
Diagrama posterior del medidor de energía ESP32 de 6 canales expandible

Conectando el ESP32

El medidor de energía ESP32 de 6 canales expandible está hecho para que una placa de desarrollo ESP32 se pueda conectar directamente al medidor. Consulte la lista anterior para conocer las placas de desarrollo ESP32 compatibles. Siempre inserte el ESP32 con el pin 3V3 en la parte superior izquierda del medidor . Los pines inferiores se utilizan para conectar la señal de voltaje (del enchufe de alimentación) a las placas adicionales. Si el ESP32 se inserta en los pines inferiores, lo más probable es que haga un cortocircuito en el ESP32.

El medidor de energía ESP32 de 6 canales expandible utiliza SPI para comunicarse con el ESP32. Cada placa utiliza 2 pines CS.

La placa principal utiliza los siguientes pines SPI:

  • CLK – 18
  • miso – 19
  • MOSI – 23
  • CS1 – 5 (CT1-CT3 y voltaje 1)
  • CS2 – 4 (CT4-CT6 y voltaje 2)

El software EmonESP/EmonCMS

EmonESP se usa para enviar datos de medidores de energía a una instalación local de EmonCMS o emoncms.org . Los datos también se pueden enviar a un corredor MQTT a través de esto. EmonCMS tiene aplicaciones para Android e IOS. El software ESP32 para EmonESP se encuentra aquí , y se puede flashear a un ESP32 usando Arduino IDE o PlatformIO 

ESPHome/Asistente de hogar

ESPHome se puede cargar en un ESP32 para integrar sin problemas los datos de energía en Home Assistant . Los datos de energía se pueden guardar en InfluxDB y mostrar con Grafana. Al mismo tiempo, los datos de energía también se pueden usar para automatizaciones en Home Assistant.

Una nueva característica en Home Assistant le permite monitorear el uso de electricidad directamente en Home Assistant . ¡También puede rastrear el uso de dispositivos individuales y/o energía solar usando el medidor de 6 canales!

Intermitente ESPHome
  • Si tiene Home Assistant instalado, vaya a Supervisor en el menú de la izquierda, haga clic en Tienda de complementos en la parte superior, busque ESPHome – Haga clic en Instalar
  • Haga clic en Abrir interfaz de usuario web
Complemento ESPHome
  • Haga clic en el círculo verde + en la parte inferior derecha para agregar un nuevo nodo
  • Complete el nombre (por ejemplo, ‘energy_meter’ y el tipo de dispositivo como NodeMCU-32S o Generic ESP32
  • Agregue los detalles de su wifi y haga clic en Enviar para crear el nodo
  • ESPHome se compilará; cuando esté completo, haga clic en Descargar binario
ESPHome Descargar Binario
  • Descargue la herramienta intermitente ESPHome para su sistema operativo aquí
  • Conecte el ESP32 que pretende usar con su medidor a su computadora a través de USB (no es necesario que esté conectado al medidor en este punto, pero si lo está, no conecte el transformador de CA todavía para el medidor al mismo tiempo). vez que el ESP32 está conectado al USB)
  • En la luz intermitente de ESPHome, seleccione el puerto COM al que está conectado el ESP32
  • Seleccione el archivo .bin que acaba de descargar y haga clic en Flash ESP (si no se conecta, haga clic en ver registros para ver qué está pasando; probablemente tendrá que mantener presionado el botón de arranque derecho en el ESP32 después de hacer clic en Flash ESP)
  • ESPHome se cargará en el ESP32 con una configuración básica
ESPInicio Flasher
  • Suponiendo que el ESP32 esté lo suficientemente cerca del AP al que desea conectarse para WiFi, ahora debería estar disponible en ESPHome dentro de Home Assistant
  • En Home Assistant, vaya a Configuración > Integraciones y Configure para ESPHome. Debe estar resaltado como Descubierto
Cargando la configuración del medidor de energía
  • Elija una configuración de ejemplo que mejor se adapte a la configuración de su medidor de energía aquí en el sitio de ESPHome , y aquí para algunas configuraciones más avanzadas
  • En la interfaz de usuario web de Home Assistant/ESPHome, haga clic en Editar para el nodo Medidor de energía
  • Copie/pegue la configuración de ejemplo, cambie cualquier configuración aplicable, como las calibraciones actuales a los transformadores de corriente que utiliza, y haga clic en Guardar
edición de configuración de yaml
  • En este punto, es una buena idea cerrar el cuadro de diálogo de edición y hacer clic en Validar en la pantalla principal para asegurarse de que su archivo .yaml sea válido. Corrige los errores que puedan surgir.
  • Haga clic en Cargar para guardar su configuración en el ESP32. Tenga en cuenta que si tiene 4 o más placas adicionales, puede recibir un error y quedarse sin memoria en su ESP32 si tiene muchos sensores. 
nodo ESPHome
  • Para una mayor precisión, puede calibrar los sensores de corriente. 
  • Al actualizar los valores de los transformadores de corriente en la configuración de ESPHome, haga clic en Editar y luego en Cargar

Obtener datos en InfluxDB

  • Si aún no lo ha hecho, instale el complemento InfluxDB en Home Assistant a través de Supervisor > Tienda de complementos
  • Abra la interfaz de usuario web y haga clic en la pestaña Administrador de InfluxDB , agregue un asistente de base de datos
  • Haga clic en la pestaña Usuarios (en Bases de datos en la misma pantalla) y cree un nuevo usuario homeassistant con Todos los permisos
  • Edite su configuración .yaml y agregue los parámetros de InfluxDB enumerados en Supervisor > InfluxDB > Documentación (menú superior) > Integración en Home Assistant
  • Reiniciar Asistente de inicio
  • Los datos ahora deberían estar disponibles en Home Assistant y disponibles en http://homeassistant.local:8086 o la IP de Home Assistant

Obtener datos en el panel de energía de Home Assistant

Configuración de energía de Home Assistant

Para mostrar datos en el panel de energía de Home Assistant, debe usar ESPHome v1.20.4 o superior, y tener al menos una total_daily_energyplataforma configurada en su configuración de ESPHome. timetambién se necesita.

Para consumo total de energía
#Total kWh
  - platform: total_daily_energy
    name: ${disp_name} Total kWh
    power_id: totalWatts
    filters:
      - multiply: 0.001
    unit_of_measurement: kWh
time:
  - platform: sntp
    id: sntp_time 

¿Dónde totalWattsestá la suma de todos los cálculos de vatios en el medidor? Vea un ejemplo de esto aquí. En el ejemplo, esto se hizo con una plantilla lambda .

para paneles solares

Se puede hacer lo mismo que arriba para rastrear el uso y la exportación de paneles solares. Los canales actuales en el medidor que rastrean el uso solar deben tener su propio cálculo de plantilla lambda.

Vea este ejemplo para saber cómo puede configurar esto con el medidor de 6 canales.

Para dispositivo individual/seguimiento de circuito

Para hacer esto, debe tener la potencia calculada por el medidor, o una plantilla lambda que calcula los vatios por circuito. Luego puede usar una plataforma de kWh para cada uno de los canales actuales en el medidor de energía de 6 canales. Por ejemplo:

#CT1 kWh
  - platform: total_daily_energy
    name: ${disp_name} CT1 Watts Daily
    power_id: ct1Watts
    filters:
      - multiply: 0.001
    unit_of_measurement: kWh

ct1Wattshace referencia a la identificación del cálculo de vatios. En la configuración de ejemplo , esto es:

      power:
        name: ${disp_name} CT1 Watts
        id: ct1Watts
Configuración en Home Assistant
  • Vaya a Configuración > Energía
  • Para la energía total, haga clic en Agregar consumo en Red eléctrica
  • El nombre de la plataforma total_daily_energy, como 6C Total kWh, debería estar disponible para elegir
  • También puede establecer un costo estático por kWh o elegir una entidad que rastree el costo de su electricidad
  • Para Dispositivos individuales, elija el nombre de los circuitos individuales, como 6C CT1 Watts Daily
  • Si monitorea sus paneles solares con un medidor de 6 canales, también puede configurar esto aquí, pero no se registrará a menos que su casa consuma energía o fluya hacia la red.

Preguntas más frecuentes

 Obtengo una lectura baja o nada en absoluto para un CT. ¿Qué sucede? : A veces, el conector para el CT es un poco rígido y es posible que deba empujar el conector del CT en el conector de la placa hasta que haga clic. Si definitivamente está completamente adentro, es posible que el conector o algún otro lugar tenga una conexión suelta, y reemplazaremos el medidor de forma gratuita.

¿Funciona el medidor de energía de 6 canales en mi país?: ¡Sí! Hay una configuración para configurar el medidor a 50 Hz o 60 Hz de potencia. Deberá comprar un transformador de CA que reduzca el voltaje a entre 9 y 12 V CA. Los transformadores para EE. UU. están a la venta en la tienda circuitsetup.us.

 Obtengo un valor negativo en un canal actual. ¿Qué está pasando? Esto generalmente significa que el CT está en la parte posterior del cable, ¡simplemente gírelo!

 Obtengo un pequeño valor negativo cuando no hay ninguna carga, pero de lo contrario obtengo un valor positivo. ¿Qué está pasando?: Esto se debe a variaciones en las resistencias y los transformadores de corriente. Puede calibrar los transformadores de corriente al medidor o agregar esta sección lambda para permitir solo valores positivos para un canal de corriente:

  - platform: template
    name: ${disp_name} CT1 Watts Positive
    id: ct1WattsPositive
    lambda: |-
      if (id(ct1Watts).state < 0) {
        return 0;
      } else {
        return id(ct1Watts).state ;
      }
    accuracy_decimals: 2
    unit_of_measurement: W
    icon: "mdi:flash-circle"
    update_interval: ${update_time}

Luego, para su cálculo de vatios totales, use ct1WattsPositive

 Los cables del CT no son lo suficientemente largos. ¿Puedo extenderlos? ¡Sí, absolutamente puedes! Se puede usar algo como una extensión de auriculares o incluso un cable de ethernet (si no le importa hacer algo de cableado). Se recomienda calibrar los TC después de añadir cualquier extensión particularmente larga.

 ¿Puedo usar este CT con el medidor de 6 canales?: ¡Lo más probable es que sí! Siempre que la salida tenga una potencia nominal inferior a 720 mV RMS o 33 mA.

 ¿Puedo usar CT SCT-024 200A con el medidor de 6 canales?: Si necesita medir hasta 200 A, no se recomienda. A 200A, el SCT-024 emitirá 100mA. Eso significa que el máximo que debe medir con el SCT-024 conectado al medidor de 6 canales es 66A . En un entorno residencial con un servicio de 200 A, es muy poco probable que utilice más de 66 A por fase sostenida. De hecho, a menos que tenga su propio transformador dedicado y una casa muy grande, es imposible.

 ¿Cómo sé si mi CT tiene una resistencia de carga?: Hay una resistencia de carga incorporada si la salida está clasificada en voltios. En este caso, se debe cortar el puente correspondiente en la parte posterior del medidor.

Cuando se usan más de 3 tableros complementarios, ESPHome no funciona. ESPHome se quedará sin memoria de pila después de usar más de 15 sensores, más o menos. Deberá aumentar el tamaño de la memoria de pila antes de compilar. Ver detalles aquí.

ACTUALIZACIÓN: Puede reemplazar la definición esphome: en su configuración de ESPHome para resolver este problema con lo siguiente:

esphome:
  name: 6chan_energy_meter
  platformio_options:
    build_flags: 
      - -DCONFIG_ARDUINO_LOOP_STACK_SIZE=32768

esp32:
  board: nodemcu-32s
  variant: esp32
  framework:
    type: arduino
    version: 2.0.2
    source: https://github.com/espressif/arduino-esp32.git#2.0.2
    platform_version: https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream

Fuente: https://github.com/CircuitSetup/Expandable-6-Channel-ESP32-Energy-Meter