开源声音分贝检测仪/zh

来自Microduino Wikipedia
502748957@qq.com讨论 | 贡献2016年1月11日 (一) 10:25的版本 调试过程
跳转至: 导航搜索

[WIP,waiting for assembling instructions]

概述

  • 项目名称:Microduino开源声音分贝检测仪
  • 目的:监测噪声,超过阈值可报警
  • 难度:中
  • 耗时:1小时
  • 制作者:
  • 简介:

本次教程我们将使用Microduino产品模块快速搭建一个噪声监测仪。它能够检测出持续的噪音并使用蜂鸣器和LED彩灯报警,并将噪声的分贝值显示在OLED屏幕上。

噪theo.jpg

材料清单

  • Microduino设备
模块 数量 功能
Microduino-Core/zh 1 核心板
Microduino-USBTTL/zh 1 下载程序
Microduino-Buzzer/zh(with shield) 1 蜂鸣器,报警
Microduino-OLED/zh 1 显示当前分贝值
Microduino-Duo-v/zh 1 降低整体高度
Microduino-Sound/zh 1 采集声音
Microduino-Color led/zh 1 报警闪烁
  • 其他设备
模块 数量 功能
Micro-USB线 1 下载程序、供电
木质外壳套件 1 外观,固定

实验原理

通过声音传感器采集环境中声音的大小,当声音持续高于分贝阈值时则LED彩灯点亮同时Buzzer发出报警音。需要关闭报警时则按下滑轮开关。OLED屏幕实时显示当前环境中声音的分贝值

  • 主要传感器

Microduino-Sound/zh

文档

百度盘地址:http://pan.baidu.com/s/1jHlCkdS 提取码:hxa5

调试过程

Microduino-CoreMicroduino-USBTTL叠加(无上下顺序),通过USB数据与电脑连接起来。 注意:最好不要将所有模块堆叠在一起之后再上传程序

Download1.jpg

打开Arduino IDE编程软件,点击 【文件】->【打开】,打开插卡音箱文件夹后选择DBDetector\ DBDetector.ino 点击"√",编译程序。 点击【工具】,选择正确的板+处理器+端口。 点击"→",进行上传。

组装

注意事项

操作说明

程序说明

蜂鸣器报警部分

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); 
} 

视频