ESP8266 - Sensor de sonido

El sensor de sonido tiene la capacidad de detectar la presencia de sonido en su entorno. Puede emplearse para crear proyectos que respondan al sonido, como luces que se activan con un aplauso o un dispensador de comida para mascotas que responde a señales sonoras.

Este tutorial te enseña cómo usar el ESP8266 y un sensor de sonido para detectar sonido. Vamos a explorar:

Sensor de sonido ESP8266 NodeMCU NodeMCU

Posteriormente, tienes la opción de modificar el código para activar un LED o una luz (utilizando un relé) al detectar sonido, o incluso hacer que un servomotor gire.

Hardware Requerido

1×ESP8266 NodeMCU
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Sensor de Sonido Digital
1×Sensor de Sonido Analógico
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del sensor de sonido

El sensor de sonido puede usarse para detectar el sonido en el entorno que lo rodea. Hay dos tipos de módulos de sensor de sonido:

  • Módulo de sensor de sonido digital: proporciona el valor de la señal digital (ON/OFF)
  • Módulo de sensor de sonido analógico: proporciona tanto el valor de la señal analógica como el valor de la señal digital

La sensibilidad de la salida digital puede ajustarse mediante un potenciómetro integrado.

El pinout del sensor de sonido digital

El sensor de sonido incluye tres pines:

  • Pin VCC: debe conectarse a VCC (3.3V a 5V)
  • Pin GND: debe conectarse a GND (0V)
  • Pin OUT: es un pin de salida: ALTO si hay silencio y BAJO si se detecta sonido. Este pin debe conectarse al pin de entrada del ESP8266.
Disposición de pines del sensor de sonido
image source: diyables.io

El sensor de sonido viene con un potenciómetro práctico que te permite ajustar fácilmente su sensibilidad. Además, cuenta con dos indicadores LED:

  • Un LED indica el estado de la alimentación
  • Otro LED indica el estado del sonido: se enciende cuando se detecta sonido y se apaga cuando está en silencio.

Pinout del sensor de sonido analógico

El sensor de sonido analógico incluye cuatro pines:

  • Pin +: debe conectarse a 5V
  • Pin G: debe conectarse a GND (0V)
  • Pin DO: es un pin de salida digital: ALTO si está en silencio y BAJO si se detecta sonido. Este pin debe conectarse al pin de entrada digital del ESP8266.
  • Pin AO: es un pin de salida analógica: genera el valor analógico que indica el nivel de sonido. Este pin debe conectarse al pin de entrada analógica del ESP8266.
Pinout del sensor de sonido analógico
image source: diyables.io

Cómo funciona

El módulo incluye un potenciómetro integrado y práctico que te permite ajustar la sensibilidad del sonido. Así es como se comporta el sensor:

  • Cuando se detecta un sonido, el pin de salida del sensor se establece en LOW.
  • Cuando no se detecta un sonido, el pin de salida del sensor se establece en HIGH.

Diagrama de Cableado

  • El diagrama de cableado entre ESP8266 y el sensor de sonido cuando se alimenta a través del puerto USB
Diagrama de cableado del sensor de sonido ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

  • El diagrama de cableado entre el ESP8266 y el sensor de sonido al alimentarlo vía Vin
Diagrama de cableado del sensor de sonido ESP8266 NodeMCU Vin

This image is created using Fritzing. Click to enlarge image

Cómo programar para sensor de sonido

  • Inicializa el pin ESP8266 en modo de entrada digital utilizando la función pinMode(). Por ejemplo, el pin D7
pinMode(D7, INPUT);
  • Lee el estado del pin del ESP8266 utilizando la función digitalRead().
int soundState = digitalRead(D7);

Código ESP8266 - Detección del sonido

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-sound-sensor */ #define SENSOR_PIN D7 // The ESP8266 pin D7 connected to the OUT pin of the sound sensor int prev_state = HIGH; // The previous state from the input pin int sound_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the ESP8266's input pin sound_state = digitalRead(SENSOR_PIN); if (prev_state == HIGH && sound_state == LOW) Serial.println("The sound has been detected"); else if (prev_state == LOW && sound_state == HIGH) Serial.println("The sound has disappeared"); // save the the last state prev_state = sound_state; }

Pasos R\u00e1pidos

Para empezar con ESP8266 en Arduino IDE, siga estos pasos:

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta los componentes como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora usando un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Selecciona la placa ESP8266 correcta, como (por ejemplo NodeMCU 1.0 (ESP-12E Module)), y su puerto COM correspondiente.
  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic Upload botón en Arduino IDE para subir el código al ESP8266
  • Aplaude frente al sensor de sonido
  • Revisa el resultado en el Monitor Serial.
COM6
Send
The sound has been detected The sound has disappeared The sound has been detected The sound has disappeared
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Por favor, tenga en cuenta que si nota que el LED está constantemente encendido o apagado, independientemente de la presencia de sonido, puede ajustar la sensibilidad del sensor de sonido moviendo el potenciómetro.

Ahora, con el código personalizado, podemos hacer que se active un LED o una luz cuando se detecta sonido. Incluso podemos hacer que un servomotor gire. Para instrucciones detalladas e información adicional, por favor consulte los tutoriales proporcionados al final de esta guía.

Solución de problemas

Si tiene problemas con el sensor de sonido que no funciona correctamente, pruebe los siguientes pasos de solución de problemas:

  • Reduce las vibraciones: Las vibraciones mecánicas y el ruido del viento pueden afectar el rendimiento del sensor de sonido. Montarlo sobre una superficie estable puede ayudar a minimizar estas perturbaciones.
  • Considere el rango de detección: Tenga en cuenta que este sensor de sonido en particular tiene un alcance de detección limitado de aproximadamente 10 pulgadas. Para obtener lecturas precisas, intente generar sonido más cerca del sensor.
  • Verifique la fuente de alimentación: Asegúrese de que la fuente de alimentación esté limpia y libre de ruido, ya que el sensor de sonido es sensible a perturbaciones en la fuente de alimentación debido a su naturaleza analógica.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Referencias de funciones

Tutoriales Relacionados

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!