一起玩转树莓派(20)——噪声监测

简介: 噪声污染是非常令人讨厌的一件事,长时间暴露在噪声中,不仅会使人心烦意乱,甚至还会影响我们的身心健康。本节,借助声音传感器,我们可以开发一个小型的噪声监测工具,当环境噪音过大时,发出提醒。

一起玩转树莓派(20)——噪声监测

噪声污染是非常令人讨厌的一件事,长时间暴露在噪声中,不仅会使人心烦意乱,甚至还会影响我们的身心健康。本节,借助声音传感器,我们可以开发一个小型的噪声监测工具,当环境噪音过大时,发出提醒。

一.声音传感器

声音传感器模块是一种将声波转换成电信号的元件。使用它可以方便的获取环境中的声音强度。本次实验,我们使用的声音传感器模块如下图所示:

如图所示,此传感器模块有4个对外引脚,其中AO引脚是模拟引号输出引脚,DO引脚是数字引号输出引脚。G引脚用来接地,+引脚接5V电源。

此传感器模块上还有两个LED指示灯,LED1是电源指示灯,只要传感器的正负极正常连通,此指示灯就会亮。LED2是声音检测指示灯,环境声音强度没有超过一定值时,此指示灯会熄灭,环境声音强度超过了一定数值后,此指示灯会亮。具体的阈值可以通过调节图中蓝色部分的可变电阻来进行调整。

本次实验我们使用的声音传感器模块既可以输出数字信号也可以输出模拟信号,对于数字信号,我们可以直接将其接树莓派的GPIO来进行接收,由于树莓派没有内置数模转换模块,因此对于模拟信号,我们需要使用PCF8591数模转换模块来读取模拟信号。

二. 实验

首先先确认下我们要使用的引脚,声音传感器的数字信号引脚可以直接连接树莓派的GPIO17(BCM编码),模拟引号引脚连接PCF8591的AINO。如下表:

PCF8591与树莓派:

PCF8591 树莓派
SCL SCL
SDA SDA
GND GND
VCC +5V

声音传感器模块与树莓派:

声音传感器 树莓派
G GND
+ +5V
DO GPIO17(BCM编码,对应物理编码11)

声音传感器与PCF8591:

声音传感器 PCF8591
AO AIN0

编写示例代码如下:

#SMBus (System Management Bus,系统管理总线) 
import smbus   #在程序中导入“smbus”模块
import RPi.GPIO as GPIO 
import time

bus = smbus.SMBus(1)         #创建一个smbus实例

# 通过PCF8591读取模拟信号

# 声音强度的模拟数据
def readData():
    #发送一个控制字节到设备 表示要读取AIN0通道的数据
    bus.write_byte(0x48,0x40)   
    bus.read_byte(0x48)         # 空读一次,消费掉无效数据
    return bus.read_byte(0x48)  # 返回某通道输入的模拟值A/D转换后的数字值

# 通过GPIO读取数字信号

# 设置使用的引脚编码模式
GPIO.setmode(GPIO.BOARD)
# 数字输出引脚 BCM 17
P = 11

# 引脚初始化
GPIO.setup(P, GPIO.IN)

while True:
    print('--------分割线----------')
    print('环境声音强度数字信号:', GPIO.input(P))
    data = readData()
    print('环境声音强度模拟信号:', readData())
    if data < 130:
        print("噪声过大,请注意!!!!!!!!!")
    time.sleep(2)

上面代码中设置模拟信号小于130则表示环境声音过强,需要注意,如果你运行上面的程序发现数值一直很小,可能是灵敏度设置过高所致,可以调节可变电阻来得到合适的灵敏度。

代码运行效果如下图所示:

本次实验并没有特别新颖的地方,所使用到的技术本系列之前博客中都有详细的介绍。

专注技术,懂的热爱,愿意分享,做个朋友
目录
相关文章
|
3月前
振弦采集仪在土木工程振动监测中的实验研究
振弦采集仪在土木工程振动监测中的实验研究
 振弦采集仪在土木工程振动监测中的实验研究
|
3月前
|
安全
振弦采集仪在土木工程振动监测中的实验研究
振弦采集仪在土木工程振动监测中的实验研究 振弦采集仪(String Vibrational Transducer)是一种常用于振动监测的仪器,广泛应用于土木工程领域。
振弦采集仪在土木工程振动监测中的实验研究
|
8月前
|
传感器 安全 前端开发
井下空气质量检测预警系统学习
随着现代化煤矿深入开采,井下空气质量监测已成为重要的安全问题。煤矿通常有大量地瓦斯、煤尘等气体,如果空气质量不良,无疑会给矿工的健康和安全带来极大的威胁。因此,煤矿必须配备有效的井下空气质量检测预警系统,用来监测空气质量,预警可能的问题,为矿工提供更安全的工作环境。
井下空气质量检测预警系统学习
|
9月前
|
编解码 运维
【轴承故障诊断】用于轴承故障诊断的集中时频分析研究(Matlab代码实现)
【轴承故障诊断】用于轴承故障诊断的集中时频分析研究(Matlab代码实现)
123 0
|
9月前
|
机器学习/深度学习 传感器 运维
【轴承故障检测】滚动轴承中进行基于振动的故障诊断研究(Matlab代码实现)
【轴承故障检测】滚动轴承中进行基于振动的故障诊断研究(Matlab代码实现)
103 0
|
5月前
|
传感器 监控 安全
光学雨量计:更灵敏可靠、更智能的降雨监测工具
光学雨量计:更灵敏可靠、更智能的降雨监测工具 降雨量信息是评估大气环境和降水研究的关键指标,也是环境监测和农业安全监测的重要参数。目前,我们通常使用翻斗式或光学雨量计来监测降雨量,这些工具能够感知自然界的降雨量,并将其转换为相应的开关信号输出,以满足信息传输、处理、记录和显示的需求。
光学雨量计:更灵敏可靠、更智能的降雨监测工具
|
7月前
|
机器学习/深度学习 传感器 算法
【地震】基于有限差分 (FDTD) 模拟地震超材料(晶体)时域分析附matlab代码
【地震】基于有限差分 (FDTD) 模拟地震超材料(晶体)时域分析附matlab代码
|
8月前
|
安全 自动驾驶
自适应巡航控制系统研究(Matlab代码实现)
自适应巡航控制系统研究(Matlab代码实现)
|
9月前
|
传感器 算法
改进花朵授粉算法的无线传感器网络部署优化(Matlab代码实现)
改进花朵授粉算法的无线传感器网络部署优化(Matlab代码实现)
|
传感器 语音技术
受蜘蛛感知系统启发的超灵敏机械裂缝传感器-阅读笔记
文章仿生蜘蛛的缝感受器,设计制造了高灵敏度的应变传感器(GF>2000,0.2%)。