物联网AI MicroPython传感器学习 之 噪音测量传感器

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

麦克风噪音测量传感器,通过单片机对信号的简单处理,可实环境音检测、声控开关这样的有趣实验。传感器模块仅占用一个IO口,通过电压强度(mV)来判断音量大小。
注:该模块仅能测量到音量变化,无法判断音色、音频。
在这里插入图片描述
引脚定义:

  • V:接 3.3V/5V
  • G:接 GND
  • S:接 ADC

二、技术参数

  • 工作电压:5V DC
  • 操作电压:5V DC
  • 规格尺寸:33.0mm _ 14.0mm _ 1.6mm
  • 小工作电压:4.5V DC
  • 大工作电压:5.5V DC
  • 工作电流:260 uA
  • 频率范围:100 - 10000Hz
  • 灵敏度:-50dB
  • 兼容接口:2.54 间距的三针接口和 Grove 的四针接口

三、软件接口

Noise(adcObj) - 创建 Noise 驱动对象

  • 函数原型:

drv = Noise(adcObj)

  • 参数说明:
参数类型必选参数?说明
adcObjADC传入ADC对象
  • 返回值:
    Noise 对象成功,返回 Noise 对象;Noise 对象创建失败,抛出 Exception
  • 示例代码:
from machine import ADC, Pin
import noise# 初始化 ADC 类型的设备
adcObj = ADC(Pin(32))
noiseObj = noise.Noise(adcObj)
print("noise inited!")
  • 输出:
noise inited!

getVoltage - 获取当前噪音对应的电压值

  • 函数功能:
    通过 ADC 控制器获取传感器电压值 mV 并返回
  • 函数原型:

noiseObj.getVoltage()

  • 参数说明:
  • 返回值
    voltage(数据类型:整型;单位:mv)
  • 示例:
from machine import ADC, Pin
import noise# 初始化 ADC 类型的设备
adcObj = ADC(Pin(32))
noiseObj = noise.Noise(adcObj)
print("noise inited!")
voltage = noiseObj.getVoltage()
print("voltage is", voltage, "mV")
  • 输出:
noise inited!
voltage is 1014 mV

checkNoise(voltage, threshold) - 检查噪音值是否超过阈值

  • 函数功能:
    通过 ADC 控制器获取传感器电压值 mV,通过与一段时间的平滑均值作比较,判断当前值是否超过阈值(默认400),并返回 changed, voltage
  • 函数原型:

noiseObj.checkNoise(voltage, 400)

  • 参数说明:
  • 返回值:
    changed(数据类型:布尔值)
  • 示例:
from machine import ADC, Pin
import noise# 初始化 ADC 类型的设备
adcObj = ADC(Pin(32))
noiseObj = noise.Noise(adcObj)
print("noise inited!")
voltage = noiseObj.getVoltage()
changed = noiseObj.checkNoise(voltage, 400)
if changed:print("volume changed, voltage is", voltage, "mV")
else:print('volume not changed, voltage is', voltage, 'mV')
  • 输出:
noise inited!
volume not changed, voltage is 1014 mV

四、接口案例

  • 代码:
# Python代码
import utime   # 延时函数在utime库中
from machine import ADC, Pin
import noiseif __name__ == '__main__':# 初始化 ADC 类型的设备adcObj = ADC(Pin(32))noiseObj = noise.Noise(adcObj)print("noise inited!")while True:      # 无限循环voltage = noiseObj.getVoltage()  # 获取当前噪音值 mVchanged = noiseObj.checkNoise(voltage, 400)  # 检查噪音值是否有变化,阈值为400mV(默认)if changed:print('got change %s' % voltage)utime.sleep_ms(30)
  • 输出:
...
noise inited!
got change 1963
got change 1010
got change 1675
got change 2138
...

五、通信协议

主控芯片和噪音测量传感器之间通信为 ADC 通讯,获取电压值 mV

六、工作原理

从如下实物图可以看到传感器内部集成了 MIC 输入,信号通过 S 口输出,主控端通过 ADC 控制器采样读取电压值。
在这里插入图片描述

MIC工作原理
话筒使用较多的为动圈式话筒和驻极体话筒,我们使用的这款硬件是驻极体话筒,属于电容式话筒的一种,其内部包含有一个场效应管作放大用,因此拾音灵敏度较高,输出音频信号较大。由于内部是场效应管,因此驻极体话筒可以用于直流电压工作。驻极体话筒分为三端式(源极输出)和二端式(漏极输出)两种:
在这里插入图片描述
接线方式:

  • 三端式驻极话筒的应用电路如左图所示,漏极 D 接电源正极,输出信号自源极 S 取出并经电容 C 耦合至放大电路,R 是源极 S 的负载电阻。
  • 二端式驻极话筒的应用电路如右图所示,漏极 D 经负载电阻 R 接电源正极,输出信号自漏极 D 取出并经电容 C 耦合至放大电路。
    在这里插入图片描述

参考文献及购买链接

  • [1] 噪音测量传感器购买链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/96647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IIS部署Flask

启用 CGI 安装wfastcgi pip install wfastcgi 启用 wfastcgi 首先以管理员身份运行wfastcgi-enable来在IIS上启用wfastcgi,这个命令位于c:\python_dir\scripts,也就是你需要确保此目录在系统的PATH里,或者你需要cd到这个目录后再执行。 #…

Node-RED系列教程-25node-red获取天气

安装节点:node-red-contrib-weather 节点图标如下: 使用说明:node-red-contrib-weather (node) - Node-RED 流程图中填写经度和纬度即可。 演示: json内容: {

Linux服务器报错“No space left on device”如何解决

一、错误的含义,说明在服务器设备上的存储空间已经满了,不能再上传或者新建文件夹或者文件等。 二、确认查看服务器系统的磁盘使用情况是否是真的已经没有剩余空间,复制下面命令在服务器上运行,然后发现如果如下图所示那么表明sda…

代码随想录算法训练营第23期day14|二叉树层序遍历、226.翻转二叉树、101. 对称二叉树

目录 一、二叉树层序遍历 非递归法 递归法 相关题目(10题) 二、(leetcode 226)翻转二叉树 递归法 层序遍历 深度优先遍历 1)非统一写法——前序遍历 2) 统一写法——前序遍历 三、(le…

软件测试/测试开发丨App自动化测试-弹窗异常处理

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27692 黑名单处理 运行过程中不定时弹框(广告弹窗,升级提示框,新消息提示框等等) 弹框不是 BUG&#xff0…

docker数据管理和网络通信

docker数据管理 管理 Docker 容器中数据主要有两种方式: 数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)。 1.数据卷 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机…

测试工程师思维学习

一、测试工程师应具备什么思维? 透过现象看本质,拒绝“一叶障目” 01、质疑和系统思维 02、创新思维 03、全局思维 04、风险驱动和组合思维 05、用户为中心和比较思维 06、BT思维和架构扩展性思维 二、测试工程师应避免的思维 01、同化现象 02、定位效…

数据结构-----二叉排序树

目录 前言 1.什么是二叉排序树 2.如何构建二叉排序树 3.二叉排序树的操作 3.1定义节点储存方式 3.2插入节点操作 3.2创建二叉排序树 3.4遍历输出(中序遍历) 3.5数据查找操作 3.6获取最大值和最小值 3.7删除节点操作 3.8销毁二叉排序树 4.完…

AdaBoost(上):数据分析 | 数据挖掘 | 十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

Zookeeper经典应用场景实战(二)

文章目录 1、 Zookeeper 分布式锁实战1.1、 什么是分布式锁1.2、 基于数据库设计思路1.3、 基于Zookeeper设计思路一1.4、 基于Zookeeper设计思路二 1、 Zookeeper 分布式锁实战 1.1、 什么是分布式锁 在单体的应用开发场景中涉及并发同步的时候,大家往往采用Sync…

DRM全解析 —— CRTC详解(1)

本文参考以下博文: Linux内核4.14版本——drm框架分析(4)——crtc分析 特此致谢! 1. 简介 CRTC实际上可以拆分为CRTC。CRT的中文意思是阴极摄像管,就是当初老电视上普遍使用的显像管(老电视之所以都很厚,就是因为它…

【状态估计】将变压器和LSTM与卡尔曼滤波器结合到EM算法中进行状态估计(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

人机言语交互模型的评估要素

智能客服中的言语交互模型评估要素,主要包括以下几个方面: 有效性:指模型能否准确识别和理解用户的言语意图,以及生成正确和合适的回答。可以通过比较模型生成的回答与人工回答的准确率来评估。流畅性:指模型在回答问…

【单调栈】下一个更大元素 II

文章目录 Tag题目来源题目解读解题思路方法一:单调栈循环数组 写在最后 Tag 【单调栈循环数组】【数组】 题目来源 503. 下一个更大元素 II 题目解读 在循环数组中找下一个更大的元素。循环数组指的是,数组的最后一个元素的下一个元素是数组首元素。 …

C语言之动态内存管理篇(1)

目录 为什么存在动态内存分配 动态内存函数的介绍 malloc free calloc realloc 常见的动态内存错误 今天收假了,抓紧时间写几篇博客。我又来赶进度了。今天我们来讲解动态内存管理。🆗🆗 为什么存在动态内存分配 假设我们去实现一个…

Excel插件:StatPlus Pro 7.7.0 Crack

Windows 版 StatPlus 借助 StatPlus,人们可以获得一套强大的统计工具和图形分析方法,可以通过简单直观的界面轻松访问。StatPlus 的可能应用范围几乎是无限的 - 社会学、金融分析、生物统计学、经济学、保险业、医疗保健和临床研究 - 仅举几个该程序已被…

SignalIR入门

SignalIR入门 简介教程1.创建项目2.添加 SignalR 客户端库3.创建 SignalR 中心4.配置 SignalR5.添加 SignalR 客户端代码 效果 简介 SignalR 是一个用于构建实时 Web 应用程序的开发工具和库,它可以让服务器端代码与客户端代码之间建立双向通信。SignalR 的中文解释…

什么测试自动化测试?

什么测试自动化测试? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念,广义上来讲&a…

如何搭建一个 websocket

环境: NodeJssocket.io 4.7.2 安装依赖 yarn add socket.io创建服务器 引入文件 特别注意: 涉及到 colors 的代码,请采取 console.log() 打印 // 基础老三样 import http from "http"; import fs from "fs"; import { Server } from &quo…

第九课 排序

文章目录 第九课 排序排序算法lc912.排序数组--中等题目描述代码展示 lc1122.数组的相对排序--简单题目描述代码展示 lc56.合并区间--中等题目描述代码展示 lc215.数组中的第k个最大元素--中等题目描述代码展示 acwing104.货仓选址--简单题目描述代码展示 lc493.翻转树--困难题…