arduino - 使用 "big sound"模块和 arduino 创建分贝计

标签 arduino iot microphone esp8266 nodemcu

我正在尝试创建一个声音计来测量房间中的分贝,我目前正在使用nodemcu 12e,因为我想将这些测量值插入到mySQL服务器和“大声音模块”中的一行(https://tkkrlab.nl/wiki/Arduino_KY-038_Microphone_sound_sensor_module) 。

Sound detection schematics

到目前为止,我唯一取得的成就是获取传感器的原始值,因为它们似乎没有改变,尽管我尝试旋转麦克风中的螺丝来调整增益,但没有结果,因为即使在大声播放音乐时,它似乎也保持相同的值。

它似乎对大声的噪音使用react,拍手会使输出尖峰 - 让我可以控制点亮连接的 LED:

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

const char* ssid = "yourssid";
const char* password = "yourpass";

ESP8266WebServer server(80);

const int led = 13;

int sensorPin = A0; // select the input pin for the potentiometer
int ledPin = D7; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor

void setup(void){
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp8266")) {
    Serial.println("MDNS responder started");
  }

  });

  //SETUP SOUND SENSOR 
  pinMode (ledPin, OUTPUT);
}

void loop(void){
  sensorValue = analogRead (sensorPin);
  Serial.println (sensorValue);//, DEC);
  if (sensorValue > 100){
    digitalWrite (ledPin, HIGH);
    delay (1000);
    digitalWrite (ledPin, LOW);
  }
}

我正在读取传感器的模拟值,并且尝试获得尽可能低的值,就像我试图校准麦克风一样。我不断获得的值在 19 到 20 之间:

Obtained values

正如你所看到的,在鼓掌时我得到了一个峰值。

问题是,当播放大声的音乐时,这些值根本不会改变,只有在检测到大声的噪音(如鼓掌)时才会获得不同的值。如何更改代码或系统以获得以分贝为单位的值?

最佳答案

您可能无法使用此麦克风模块运行它。

模块充当开关。切换阈值由麦克风模块板上的电位器设置。

您需要的是一个低电平放大麦克风。然后您将获得从 0(无噪音)到 1023(大声噪音)的输入范围。然后可以将该值映射为分贝。但同样 - 不是这个模块。

问候 哈利

关于arduino - 使用 "big sound"模块和 arduino 创建分贝计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543395/

相关文章:

python - 在 Python 中访问计算机麦克风的最简单方法是什么?

javascript - WebRTC Chrome 麦克风不工作

c - Arduino 作为 I2C 从设备与 RPi 通信

c - Arduino 上的 FT801 芯片 ID 错误

python - Arduino-pyFirmata-Python windows error(5,access denied)

amazon-web-services - 请求/响应的 MQTT 主题名称

Azure IOT ExportDevicesAsync 内部服务器错误

raspberry-pi - 如何使用 Windows 通用应用程序设置设备的 IP 地址?

c# - ASP.NET/C# 中的服务器端麦克风捕获

c++ - 如何在Arduino上使用char数组实现函数