开源声音分贝检测仪/zh
[WIP,waiting for assembling instructions] 概述
本次教程我们将使用Microduino产品模块快速搭建一个噪声监测仪。它能够检测出持续的噪音并使用蜂鸣器和LED彩灯报警,并将噪声的分贝值显示在OLED屏幕上。 材料清单
实验原理通过声音传感器采集环境中声音的大小,当声音持续高于分贝阈值时则LED彩灯点亮同时Buzzer发出报警音。需要关闭报警时则按下滑轮开关。OLED屏幕实时显示当前环境中声音的分贝值
文档百度盘地址:http://pan.baidu.com/s/1jHlCkdS 提取码:hxa5 调试将Microduino-Core与Microduino-USBTTL叠加(无上下顺序),通过USB数据与电脑连接起来。 注意:最好不要将所有模块堆叠在一起之后再上传程序 打开Arduino IDE编程软件,点击 【文件】->【打开】,打开文件夹后选择DBDetector\ DBDetector.ino 点击"√",编译程序。 点击【工具】,在板选项里面选择板卡(Microduino-Core),在处理器选项里面选择处理器(Atmega328p@16M,5V),再在端口选项里面选择正确的端口号,然后直接烧录程序。 点击"→",进行上传。 拼装
首先拆下侧板,看清侧面上的标示,BUZZER,MIC,以及另外两块镂空不同的侧板。我们按照如图所示顺序将其标号,左至右为1,2,3,4
首先将OLED使用螺丝和螺母固定在2号木板上,使屏幕从中间镂空出露出。 将滑轮开关按照如图方向固定在1号木板上,注意一定要与图上方向一致,这关系到开关滑轮的整体摆放位置 将Microduino-Buzzer蜂鸣器固定在写着Buzzer的一面上。 将Microduino-Sound固定在写着Mic的一面上,将MIC方向露出朝外。 将Microduino-ColorLED与顶面板固定在一起。 顶面与底面版:
将四块侧板插在底板上,1号板要与2号板相邻,使1号板的滑轮开关上面的开关部分从2号板一边的镂空出露出来,如图标示。
将Sound连接到Microduino-Sensorhub的A0/A1引脚,Buzzer连接到D10/D11引脚,滑轮开关连接到D8/D9引脚,ColorLED连接到D6/D7引脚,将OLED连接到右下角SDA/SCL的IIC引脚(任选其一) 之后将Sensorhub与其他部分拼插好,如图所示
之后将顶盖盖好用插销固定,至此噪声监测器拼装完成 组装注意事项操作说明程序说明蜂鸣器报警部分 void buzzer() {
if (millis() - timer > 10) {
if (!add) {
i++;
if (i >= 800)
add = true;
} else {
i--;
if (i <= 200) {
add = false;
}
}
tone(buzzer_pin, i);
timer = millis();
}
}
OLED显示部分 void OLEDShow()
{
u8g.firstPage();
do
{
u8g.drawXBMP( 64, 1, 64, 64, DB);
setFont_M;
u8g.setPrintPos(5, 50);
u8g.print(db);
//u8g.print(recodeDB);
}
while( u8g.nextPage() );
}
声音采集部分 void getDB()
{
voice_data = analogRead(mic_pin);
voice_data = map(voice_data, 0, 1023, 0, 5);
db = (20. * log(10)) * (voice_data / 1.0);
if(db > recodeDB)
{
recodeDB = db;
}
Serial.println(db);
}
视频 |