Cálculo resistencia de carga para sensores no invasivos de tensión


A la hora de medir con un controlador la intensidad de un circuito de ca, existen shunts , modernamente sensores hall, pero ambos adolecen de ser intrusivos porque requieren interrumpir el circuito para conectar estos. Modernamente han aparecido sensores no intrusivos basados en un núcleo partido que se puede abrir para intercalar el fase del circuito a medir. En este ámbito destacan los sensores de corriente alterna SCT-013 , los cuales podríamos clasificarlos en dos grupos: los que proporcionan una corriente o los que proporcionan un voltaje siendo la gran diferencia entre ellos que en los primeros no viene incluida una resistencia de carga y en los segundos sí (el nombre resistencia de carga o resistencia «burden» se refiere a la función que hace, no a como están fabricadas siendo su función convertir la corriente en un voltaje limitado que podamos medir, por ejemplo, con un microcontrolador).

El sensor SCT-013-000 es el único que nos proporciona una corriente y por tanto no tiene resistencia de carga. Puede medir una corriente de entre 50 mA y 100 A. El resto de la familia de sensores SCT-013 sí que tienen incluida la resistencia de carga. Podemos encontrar varios modelos pero todos tienen un voltaje de salida entre 0V y 1V.

Esta tabla nos describe las principales características de la familia de sensores SCT disponible :

Elegir uno u otro sensor SCT-013 dependerá de las necesidades reales. Como vemos en la tabla anterior, deberá elegir la intensidad de corriente que mejor se acople a sus necesidades o bien seleccionar el modelo «personalizado» SCT-013-000.

En post por tanto vamos a trabajar con el SCT-013-000 debido a que no tiene resistencia de carga lo cual nos va a permitir seleccionar la resistencia de carga más adecuada para medir con masa precisión el consumo eléctrico de un electrodoméstico en concreto como por ejemplo podria ser un frigorífico.

Para conectar un sensor CT a un Arduino, la señal de salida del sensor CT debe acondicionarse para que cumpla con los requisitos de entrada de las entradas analógicas Arduino, es decir, un  voltaje positivo entre 0 V y el voltaje de referencia ADC.

Este ejemplo vemos una placa Arduino que funciona a 5 V y el EmonTx que funciona a 3,3 V. Asegúrese de utilizar el voltaje de suministro y el voltaje de polarización correctos en sus cálculos que correspondan a su configuración.

Esto se puede lograr con el siguiente circuito que consta de dos partes principales: 

  1. El sensor CT y la resistencia de carga
  2. El divisor de voltaje de polarización ( R1 y R2 )

Basta con sumar 2,5V y estaría resuelto. Esto lo haremos a través de un circuito conocido como circuito offset en DC,lo cual básicamente consiste en poner un divisor de tensión y un condensador (el condensador tiene que ser de 10μF y unos pocos cientos de voltios lo cual hace que la reactancia sea baja y la corriente alterna evite la resistencia).

El valor de las resistencias del divisor de tensión puede ser 10kΩ siempre y cuando lo alimentemos a través de la red eléctrica, pero si su dispositivo va a funcionar con baterías utilice unas resistencias de 470kΩ para que el consumo sea mínimo.

Cálculo de un tamaño de resistencia de carga adecuado

Si el sensor CT es del tipo de «salida de corriente» como el YHDC SCT-013-000 , la señal de corriente debe convertirse en una señal de voltaje con una resistencia de carga. Si se trata de un CT de salida de voltaje, puede omitir este paso y omitir la resistencia de carga, ya que la resistencia de carga está integrada en el CT.

Este es el cálculo de la citada resistencia:

1) Elija el rango actual que desea medir

El YHDC SCT-013-000 CT tiene un rango de corriente de 0 a 100 A. Para este ejemplo, elijamos 100 A como nuestra corriente máxima.

2) Convierta la corriente RMS máxima en corriente pico multiplicando por √2.

Corriente máxima primaria = corriente RMS × √2 = 100 A × 1,414 = 141,4 A

Resultado =141,4 Amp

3) Divida el pico de corriente por el número de vueltas en el TC para obtener el pico de corriente en la bobina secundaria.

El TC YHDC SCT-013-000 tiene 2000 vueltas, por lo que la corriente pico del secundario será:

Pico de corriente secundario = Pico de corriente primario / no. de vueltas = 141.4 A / 2000 = 0.0707A

Resultado 2= 0.07Amp

4) Para maximizar la resolución de la medición, el voltaje a través de la resistencia de carga en el pico de corriente debe ser igual a la mitad del voltaje de referencia analógico de Arduino. (AREF / 2)

Si está utilizando un Arduino que funciona a 5V: AREF / 2 será de 2,5 voltios. 

Entonces la resistencia de carga ideal será:

Resistencia de carga ideal = (AREF/2) / Pico de corriente secundario = 2,5 V / 0,0707 A = 35,4 Ω

Resultado 3= 35,4 ohmios

Es fácil adivinar que 35 Ω no es un valor de resistencia común. Los valores más cercanos a ambos lados de 35 Ω son 39 y 33 Ω. Elija siempre el valor más pequeño, o la corriente de carga máxima creará un voltaje más alto que AREF. Recomendamos una carga de 33 Ω ±1%. En algunos casos, el uso de 2 resistencias en serie estará más cerca del valor de carga ideal. Cuanto más lejos del ideal esté el valor, menor será la precisión.

Aquí están los mismos cálculos que arriba en una forma más compacta:

Resistencia de carga (ohmios) = (AREF * CT TURNS) / (2√2 * corriente primaria máx.)

emonTx V2

Si está utilizando un emonTx V2 alimentado por batería, AREF comenzará a 3,3 V y disminuirá lentamente a medida que el voltaje de la batería caiga a 2,7 V. Por lo tanto, la resistencia de carga ideal para el voltaje mínimo sería:

Resistencia de carga ideal = (AREF/2) / Pico de corriente secundario = 1,35 V / 0,0707 A = 19,1 Ω

19 Ω no es un valor común. Tenemos una opción de 18 o 22 Ω. Recomendamos utilizar una carga de 18 Ω ±1%.

emonTx V3

El emonTx V3 usa un regulador de 3.3V, por lo que es V CC y por lo tanto AREF, siempre será de 3.3V independientemente del voltaje de la batería. El emonTx V3 estándar usa resistencias de carga de 22 Ω para CT 1, 2 y 3, y una resistencia de 120 Ω para CT4, el canal de alta sensibilidad. 

2) Agregar un sesgo de CC

Si tuviera que conectar uno de los cables del TC a tierra y medir el voltaje del segundo cable, con respecto a tierra, el voltaje variaría de positivo a negativo con respecto a tierra. Sin embargo, las entradas analógicas de Arduino requieren un voltaje positivo. Al conectar el cable de CT que conectamos a tierra, a una fuente a la mitad del voltaje de suministro, el voltaje de salida de CT ahora oscilará por encima y por debajo de 2,5 V, por lo que permanecerá positivo.

Las resistencias R1 y R2 en el diagrama de circuito anterior son un divisor de voltaje que proporciona la fuente de 2,5 V (1,65 V para el emonTx). El condensador electrolítico C1 tiene una reactancia baja de unos pocos cientos de ohmios, y proporciona un camino para que la corriente alterna evite la resistencia. Un valor de 10 μF es adecuado por ejemplo de 100v.

Elegir un valor adecuado para las resistencias R1 y R2:

Una mayor resistencia reduce el consumo de energía en reposo por lo que podemos usar resistencias de 10 kΩ para monitores alimentados por la red. El emonTx utiliza resistencias de 470 kΩ para mantener el consumo de energía al mínimo, ya que está diseñado para funcionar con baterías durante varios meses.

Boceto de Arduino

Para usar el circuito descrito para medir la corriente RMS, con un voltaje RMS fijo asumido (por ejemplo, 240 V) para indicar la potencia aparente aproximada, podemos usar el siguiente código en Arduino:

// Include Emon Library
#include "EmonLib.h"
 
// Crear una instancia EnergyMonitor
EnergyMonitor energyMonitor;
 
// Voltaje de nuestra red eléctrica
float voltajeRed = 220.0;
 
void setup()
{
  Serial.begin(9600);
 
  // Iniciamos la clase indicando
  // Número de pin: donde tenemos conectado el SCT-013
  // Valor de calibración: valor obtenido de la calibración teórica
  energyMonitor.current(0, 2.6);
}
 
void loop()
{
  // Obtenemos el valor de la corriente eficaz
  // Pasamos el número de muestras que queremos tomar
  double Irms = energyMonitor.calcIrms(1484);
 
  // Calculamos la potencia aparente
  double potencia =  Irms * voltajeRed;
 
  // Mostramos la información por el monitor serie
  Serial.print("Potencia = ");
  Serial.print(potencia);
  Serial.print("    Irms = ");
  Serial.println(Irms);
}


Mas info en https://openenergymonitor.github.io/forum-archive/node/156.html

Fácil monitorización energética


IotaWatt es un proyecto que surgió de un esfuerzo informal para producir un medidor de energía eléctrica versátil que fuera más fácil de configurar y usar. Al emplear el popular y potente chip nodeMCU ESP8266, tiene un entorno operativo con un enfoque modular para la recopilación, almacenamiento y la generación de informes de datos junto con un servidor web WiFi integrado. El firmware resultante, después de más de un año de desarrollo, es por tanto muy robusto. Los primeros esfuerzos se concentraron en el uso de placas y escudos en forma de kit con un mínimo de hardware personalizado. Eventualmente, se hizo evidente que se necesitaba una sola placa personalizada para proporcionar la plataforma necesaria para que el software fuera útil ( de hecho el diseño actual de hardware abierto se produce comercialmente).

Aunque los esquemas y el diseño de PCB están abiertos y disponibles en el proyecto Git, hay mucho más para hacer un producto comercial viable. IoTaWatt, Inc. es una entidad legal que se estableció en respuesta a la demanda de hardware de producción. El dispositivo básico, así como el equipo relacionado, se pueden comprar utilizando en su sitio web https://stuff.iotawatt.com/ ( ellos afirman que los costos para desarrollar y certificar el hardware fueron sustanciales y, con suerte, se compensarán con las ventas). Para ellos, los objetivos a corto plazo del proyecto son desarrollar más aplicaciones analíticas locales y desarrollar la infraestructura de soporte de la comunidad.

Veamos un poco más en detalle esta interesante solución abierta para monitorización del consumo energético.

Photo by Constantine Kim on Pexels.com

Sistema abierto IotaWatt

No es que otros monitores de energía sean malos, pero sí son diferentes en que en su mayoría son sistemas cerrados que brindan datos limitados y requieren que use sus plataformas de aplicaciones de teléfono y nube. IoTaWatt recopila muchas más métricas y almacena ese historial de uso localmente. Con su servidor web integrado, puede administrar la configuración, ver el estado en tiempo real o crear gráficos detallados usando el navegador en su computadora, tableta o teléfono. Son sus datos, en su propio hogar, y sujetos únicamente a su propia política de privacidad y retención.  Sin embargo, IoTaWatt puede cargar fácilmente datos de uso en cualquiera de varias bases de datos de terceros con aplicaciones asociadas y herramientas analíticas. Por ejemplo, PVoutput es un servicio gratuito que se conecta fácilmente con IoTaWatt y proporciona análisis de energía solar de clase mundial. Hay soporte completo para cargar a influxDB. También hay una interfaz API para aquellos que desean consultar datos para sus propias aplicaciones o para usar en hojas de cálculo, y hay integraciones disponibles para software de automatización del hogar como Home Assistant.

IotaWatt tm es por tanto un monitor de energía eléctrica conectado WiFi de 14 canales de hardware abierto. Se basa en la plataforma IoT ESP8266 que utiliza ADC de 12 bits MCP3208 para muestrear el voltaje y la corriente de CA. Ademas puede registrar datos localmente en la tarjeta SD integrada y publicarlos directamente en Emoncms.org a través de WiFi.

No hay planes para descontinuar el emonTx. Tanto IoTaWatt como emonTx tienen ventajas en áreas clave que se complementan entre sí.

IoTaWatt es completamente de código abierto y ha sido desarrollado por Bob Lemaire @overeasy en asociación con OpenEnergy

IoTaWatt se puede usar para monitorear cualquier sistema de energía estando en uso en más de 60 países en todo el mundo. La fase dividida de EE. UU. 120V/240V es fácil, pero también la monofásica de 230V como en Europa, la trifásica de 230V como en los hogares de Australia, Alemania y Noruega, por nombrar algunos. A la mayoría de las personas solo les importa si funcionará en su situación. La respuesta es un sí rotundo.

También hay muchos usuarios comerciales/industriales que monitorean sistemas trifásicos de alto voltaje, incluidos los industriales de 277 V/480 V con un servicio de 600 amperios que usan varios megavatios-hora por día, más de lo que la mayoría de los hogares usan en un año. Luego hay un sitio en Uganda que mide el voltaje y la potencia que se usa para cargar motocicletas eléctricas de alquiler usando energía solar.

Todo esto es posible porque IoTaWatt utiliza sensores externos simples que están disponibles para cualquier combinación de voltaje/potencia. Simplemente instálelo, conéctelo a IoTaWatt y seleccione el tipo de sensor en un menú desplegable en la aplicación de configuración.

Cómo funciona

IoTaWatt mide cada circuito usando un sensor pasivo que se engancha alrededor de uno de los cables aislados. La salida de cada uno de estos transformadores de corriente es de muy bajo voltaje y se conecta a cualquiera de las 14 entradas de IoTaWatt. 

Un transformador de pared insertado en un receptáculo ordinario convierte el voltaje local en un voltaje de referencia estándar y permite que IoTaWatt determine el voltaje y la frecuencia de la línea.

Desde la aplicación de configuración basada en navegador, simplemente seleccione el modelo de sensor que está conectado. IoTaWatt sabe cómo interpretar las señales para producir una medida muy precisa de la energía que se utiliza en cualquier momento.

Los conectores estéreo estándar facilitan la conexión de los sensores de corriente. Cada una de las 14 entradas es típicamente un transformador de corriente que mide un circuito, pero se puede usar una sola entrada para monitorear varios circuitos y/o se pueden combinar varios CT en una sola entrada.

Todas las entradas se enumeran con nombre, tipo de sensor y varias opciones. Para editar, haga clic en el número de entrada.

Cambie el nombre o especifique un modelo de sensor diferente de la lista desplegable. Guarde e IoTaWatt comenzará a usar la nueva configuración de inmediato.

El IoTaWatt se configura a través de una interfaz web servida directamente desde el IoTaWatt ESP8266. Visite IoTaWatt.com para ver una demostración en vivo de la interfaz.

IoTaWatt admite actualizaciones de firmware automáticas por aire (OTA).

El estado de las entradas y salidas se actualiza continuamente. Las salidas se pueden definir para que los detalles adicionales estén disponibles. El estado de las cargas del servidor y el contexto de los registros de datos están disponibles en las pestañas desplegables.

Herramientas analíticas integradas

Las herramientas analíticas integradas permiten ver el uso gráficamente. Muestre el uso de energía total junto con los circuitos individuales seleccionando de un menú.


La aplicación Graph+ se ejecuta directamente desde el servidor web de IoTaWatt. Se puede usar desde una PC, teléfono o tableta.

Cargas a influxDB y Emoncms

Los usuarios más sofisticados pueden configurar la carga de datos en influxDB y usar Grafana o una de varias otras herramientas de visualización para crear impresionantes tableros.

También hay una opción para cargar al sistema Emoncms con sus propias herramientas gráficas integradas.

Panel de control de Emoncms

Tablero de grafana con fuente de datos influxDB

Ambas bases de datos externas son de software abierto y están disponibles como servicios comerciales o alojadas en varias plataformas personales, incluidas Windows y RaspberryPi.

Pantalla de estado en vivo de salida PV

Cargas a PVoutput

PVOutput es un servicio en línea gratuito para compartir y comparar datos de salida de paneles solares fotovoltaicos. 
Los datos de salida se pueden graficar, analizar y comparar con otros contribuyentes de pvoutput durante varios períodos de tiempo.

Si bien pvoutput se enfoca principalmente en monitorear la generación de energía, también proporciona instalaciones igualmente capaces para cargar y monitorear datos de consumo de energía. Tanto la generación solar como los datos de consumo de energía se pueden combinar para proporcionar una vista ‘Neta’ de la energía que se genera o se consume en vivo.


La «calculadora» es la interfaz simple de IoTaWatt para crear scripts para combinar y exportar datos. Especifique las unidades para calcular (amperios, vatios, voltios, etc.) y luego ingrese la función para calcular el valor. Es tan fácil como usar una calculadora básica de cuatro funciones.

Capacidad trifásica

IoTaWatt puede manejar energía trifásica de varias maneras. La forma fácil utiliza solo un transformador de referencia de tensión/fase enchufado en cualquiera de las tres fases. Las mediciones de potencia en las otras dos fases se realizan utilizando una señal de referencia trifásica «derivada».

Para obtener la máxima precisión, se pueden conectar dos transformadores adicionales a las entradas para el voltaje «directo» y la referencia de fase de todas las fases.

IoTaWatt ha sido probado para cumplir con los estándares regulatorios y de seguridad de América del Norte y Europa, que incluyen:

  • Cumplimiento con FCC parte B
  • Conformidad con CE, incluida la Directiva de emisiones de radio (RED) y la Directiva de bajo voltaje
  • Estándares de seguridad de bajo voltaje para EE. UU. (UL) y Canadá (CSA). Prueba y certificación por Intertek y lleva la marca de certificación ETL.
  • Los accesorios vendidos por IoTaWatt, Inc están listados por UL o reconocidos por UL y listados para su uso con IoTaWatt.

Seguridad

IoTaWatt admite la conexión cifrada de extremo a extremo a Emoncms mediante el nuevo cifrado de capa de transporte API de Emoncms . Debido a los recursos limitados del microcontrolador ESP8266, la conexión HTTPS no es posible. Sin embargo, Emoncms ofrece una solución de cifrado de capa de transporte integrada en la que la clave de acceso de emoncms se utiliza como clave precompartida para cifrar los datos con AES-128-CBC.

Las actualizaciones automáticas de firmware OTA garantizan que IoTaWatt siempre esté ejecutando la última versión más segura, por ejemplo, se lanzó una actualización de firmware y se implementó automáticamente para corregir la vulnerabilidad KRACK WPA . Las actualizaciones de firmware están firmadas digitalmente.

Comparación de emonTx vs. IoTaWattio

No hay planes para descontinuar emonTx. El IoTaWatt no está diseñado para reemplazar el emonTx, sino para complementarlo. Cada unidad tiene ventajas en áreas clave:

Ventajas de emonTx

  • Bajo consumo: energía de la batería/adaptador AC-AC único
  • No se requiere configuración
  • Admite múltiples sensores de temperatura DS18B20
  • Admite sensor de pulso óptico (entrada de interrupción) para interactuar directamente con medidores de servicios públicos
  • Trifásico aproximado con actualización de firmware
  • Múltiples emonTx pueden comunicarse con un solo emonPi / emonBase
  • No se requiere conexión WiFi

Ventajas de IoTaWatt

  • Gran número de entradas de sensores CT
  • Configuración flexible (se admiten muchos tipos diferentes de CT)
  • Registro de tarjeta SD integrado
  • Actualizaciones de firmware OTA
  • Publicación directa a través de WiFi en Emoncms.org

La ventaja obvia del IoTaWatt sobre el emonTx es la cantidad de entradas del sensor CT. Otra ventaja clave es la flexibilidad de IoTaWatt, cada canal de entrada (voltaje y corriente de CA) se puede configurar y calibrar individualmente. IoTaWatt es compatible con varios tamaños diferentes de sensores CT con preajustes de calibración para sensores CT, por ejemplo , 20A , 100A (estándar) y 200A .

Es posible usar un IoTaWatt junto con un emonPi / emonBase, el IoTaWAtt puede publicar en cualquier servidor de Emoncms, incluido emonPi, a través de una red local.

RESUMEN

Es de destacar que en esencia este sistema de iotaWatt usa amplificadores operaciones de instrumentación para la medida de la corriente por medio de sensores magnéticos enviando las medidas por medio de un convertidor analógico digital con salida SPI, lo cual es muy similar a la propuesta que nos da lechacal.com ( en UK) pero en vez de usar un NodeMCU usa una Raspberry Pi ( aunque tienen una versión para una Orange Pi).

Como detalle interesante sin duda es que tanto el hw como como el sw son abiertos lo cual lo hace muy atractivo para mejorar o incluso replicar esta solución, pero sin duda se echa de menos más rigor en la precisión de las medidas

Más información en https://iotawatt.com/index.html

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