我想創建一個聲音計量器來測量房間中的分貝,我目前使用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之間:
問題是,當嘈雜的音樂播放時,數值根本不會改變,只有當它檢測到巨大的噪音(如鼓掌)時纔會得到不同的值。我如何更改代碼或系統以獲取分貝值?