我想创建一个声音计量器来测量房间中的分贝,我目前使用nodemcu 12e,因为我想将这些措施插入一行在一个mySQL服务器和一个“大声音模块”(https://tkkrlab.nl/wiki/Arduino_KY-038_Microphone_sound_sensor_module)中。使用“大声音”模块与arduino创建一个分贝计
到目前为止,我已经实现的唯一的事情是让传感器的原始价值,因为他们似乎没有改变,虽然我试图调节增益的麦克风转动螺杆,没有结果,因为即使在播放嘈杂的音乐时,它仍然保持相同的值。
这似乎大声喧哗反应,拍手使输出秒杀了 - 让我来控制照明了连接的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之间:
问题是,当嘈杂的音乐播放时,数值根本不会改变,只有当它检测到巨大的噪音(如鼓掌)时才会得到不同的值。我如何更改代码或系统以获取分贝值?