前言
在工业 4.0 时代,设备预测性维护已经成为工厂降本增效的核心手段。而设备异响监测作为预测性维护的重要组成部分,能够提前发现电机、泵体、齿轮箱等设备的早期故障,避免非计划停机造成的巨大损失。
但长期以来,工业级声源定位系统动辄数万元甚至数十万元的高昂价格,让绝大多数中小企业望而却步。传统的人工巡检方式不仅效率低下,而且依赖工人的经验,很难发现早期的微弱异响。
最近我们团队为一家汽车零部件工厂开发了一套分布式设备异响监测系统,核心就是采用了德宇科创的 AR1105 3 麦六向定位模组。最终实现了单节点成本不到 300 元,仅为传统工业方案的 1%,同时满足了工业现场的可靠性和精度要求。本文将分享完整的技术实现过程,给工业物联网从业者提供一个全新的思路。
一、传统工业异响监测方案的三大痛点
在采用 AR1105 之前,我们调研了市面上主流的工业声源定位方案,发现它们普遍存在以下三个致命问题:
1. 成本高到离谱
工业级多麦阵列声源定位系统,通常采用 8-16 麦阵列 + 工业级处理器 + 专业算法的架构,单套设备价格在 2-10 万元不等。如果要对整个车间进行全覆盖监测,仅硬件成本就高达数百万元,这对于中小企业来说是无法承受的。
2. 部署和维护复杂
传统方案需要专业的声学工程师进行现场安装和校准,每安装一个节点都需要花费数小时时间。而且设备体积大、重量重,需要专门的安装支架,很难部署在空间狭小的设备内部。
3. 功耗高,无法电池供电
传统工业设备的工作电流通常在 500mA 以上,必须外接 220V 交流电源供电。这极大地限制了部署的灵活性,对于没有预留电源接口的老旧设备来说,几乎无法安装。
二、为什么选择 AR1105?四大优势完美匹配工业需求
在尝试了多款消费级声源定位模组都失败后,我们最终选择了 AR1105。它的四个核心优势,完美解决了工业场景的痛点:
1. 极致低成本
单颗 AR1105 模组仅需几十元,加上 3 颗数字麦克风和外围电路,单节点硬件成本不到 300 元。即使部署 100 个节点,总成本也不到 3 万元,仅为传统工业方案的 1%。
2. 工业级可靠性
AR1105 采用工业级元器件设计,工作温度范围覆盖 - 20℃~+85℃,工作相对湿度 < 90%,能够适应工厂车间的恶劣环境。同时支持 4V~6.5V 宽电压输入,能够容忍工业现场的电源波动。
3. 超低功耗,支持电池供电
整套方案(含 3 颗麦克风)的工作电流仅为 29mA,使用一节 3000mAh 的锂电池就能连续工作超过 30 天。这意味着我们可以将监测节点做成完全无线的形式,无需布线,即贴即用。
4. 零算法开发,快速落地
AR1105 内置固化的声源定位算法,IO 直出方向信号。我们的嵌入式工程师只用了 3 天就完成了原型开发,2 周就完成了整个系统的调试和部署,比传统方案快了 10 倍以上。
三、分布式异响监测节点硬件设计
我们设计的监测节点采用模块化架构,由AR1105 声源定位模组、STM32L0 低功耗单片机、LoRa 无线通信模块和锂电池电源模块四部分组成。
1. 整体硬件框图
plaintext
锂电池 → 电源管理模块 → AR1105模组 → STM32L0单片机 → LoRa模块 AR1105方向IO → STM32L0 IO口 AR1105模拟音频输出 → STM32L0 ADC STM32L0 → LoRa模块 → 网关 → 云平台2. AR1105 核心电路设计
AR1105 的外围电路极其简单,只需要电源滤波电容即可:
- 第 1 脚 (+5V):连接电源管理模块的 5V 输出,并联 100μF 电解电容和 0.1μF 陶瓷电容滤波
- 第 2 脚 (GND):连接系统地
- 第 3-8 脚 (方向 IO):连接 STM32L0 的普通 IO 口(上拉输入)
- 第 12 脚 (MIC_OUT):连接 STM32L0 的 ADC 引脚,用于采集音频信号强度
- 第 19 脚 (+3V3):为 3 颗数字麦克风供电
3. 麦克风布局优化(工业场景专属)
针对工业现场的复杂声学环境,我们对麦克风布局进行了专门优化:
- 三颗麦克风按等边三角形排列,拾音孔中心间距严格 10mm
- 采用进声孔在顶部的数字麦克风,便于安装在设备外壳表面
- 麦克风周围用硅胶密封,防止粉尘和油污进入
- 整个模组用金属屏蔽罩包裹,抵抗工业现场的电磁干扰
四、软件实现:异常声音检测 + 方向定位
整个软件系统分为两个部分:节点端的异常声音检测和云平台的故障分析与报警。
1. 节点端核心代码
节点端的工作流程非常简单:
- 定时唤醒 STM32 和 AR1105 模组
- 读取 AR1105 的方向 IO 和音频信号强度
- 如果音频强度超过预设阈值,说明有异常声音,记录方向和强度
- 通过 LoRa 模块将数据发送到网关
- 进入低功耗休眠模式
以下是核心代码片段:
c
运行
#include "stm32l0xx.h" #include "lora.h" #define DIR_PORT GPIOA #define DIR_0 GPIO_Pin_0 #define DIR_60 GPIO_Pin_1 #define DIR_120 GPIO_Pin_2 #define DIR_180 GPIO_Pin_3 #define DIR_240 GPIO_Pin_4 #define DIR_300 GPIO_Pin_5 #define AUDIO_PIN GPIO_Pin_6 // 初始化AR1105 void AR1105_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); // 方向IO初始化 GPIO_InitStruct.GPIO_Pin = DIR_0|DIR_60|DIR_120|DIR_180|DIR_240|DIR_300; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(DIR_PORT, &GPIO_InitStruct); // 音频ADC初始化 GPIO_InitStruct.GPIO_Pin = AUDIO_PIN; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AN; GPIO_Init(DIR_PORT, &GPIO_InitStruct); ADC_Init(); } // 获取异常声音信息 void Get_Abnormal_Sound(uint8_t *dir, uint16_t *level) { *level = ADC_GetConversionValue(ADC1); if(*level > 1000) // 异常声音阈值 { if(GPIO_ReadInputDataBit(DIR_PORT, DIR_0)) *dir = 0; else if(GPIO_ReadInputDataBit(DIR_PORT, DIR_60)) *dir = 60; else if(GPIO_ReadInputDataBit(DIR_PORT, DIR_120)) *dir = 120; else if(GPIO_ReadInputDataBit(DIR_PORT, DIR_180)) *dir = 180; else if(GPIO_ReadInputDataBit(DIR_PORT, DIR_240)) *dir = 240; else if(GPIO_ReadInputDataBit(DIR_PORT, DIR_300)) *dir = 300; else *dir = 0xFF; } else { *dir = 0xFF; } } int main(void) { uint8_t dir; uint16_t level; AR1105_Init(); LoRa_Init(); while(1) { Get_Abnormal_Sound(&dir, &level); if(dir != 0xFF) { // 发送异常数据到网关 LoRa_Send_Data(dir, level); } // 休眠1秒 System_Sleep(1000); } }2. 云平台功能
云平台接收所有节点上传的数据,实现以下功能:
- 实时显示每个节点的状态和异常声音信息
- 结合设备的位置信息,在地图上标注异常声音的来源方向
- 对异常声音进行分级报警,通过短信、邮件通知管理人员
- 存储历史数据,用于故障分析和趋势预测
五、工厂实测效果:成功提前发现电机故障
我们在该工厂的电机车间部署了 10 个监测节点,对 20 台三相异步电机进行了为期 3 个月的监测。实测效果超出了我们的预期:
- 准确率高:在正常生产环境下(背景噪声约 65dB),对于电机轴承磨损产生的异响,检测准确率达到 95% 以上,定位误差小于 60°,完全满足工业现场的需求。
- 可靠性强:在 3 个月的测试期间,10 个节点没有出现任何硬件故障,即使在车间温度达到 45℃的夏季,也能稳定工作。
- 成功预警故障:测试期间,系统成功检测到一台电机的轴承早期故障,提前通知维修人员进行了更换,避免了约 20 万元的停机损失。
六、工业场景应用避坑指南
在项目开发过程中,我们也踩了不少坑,总结出以下几点经验:
1. 做好电磁屏蔽
工业现场存在大量的变频器、电机等电磁干扰源,会严重影响 AR1105 的工作。一定要用金属屏蔽罩将整个模组包裹起来,并且做好接地。
2. 合理设置异常阈值
不同设备的正常工作噪声不同,需要根据实际情况设置不同的异常阈值。建议先采集设备正常工作时的音频数据,然后将阈值设置为正常噪声的 1.5 倍。
3. 注意防尘防水
工厂车间的粉尘和油污比较大,麦克风进声孔容易被堵塞。建议在麦克风表面贴一层防水透气膜,既能防尘防水,又不影响声音的传播。
4. 不要追求过高的定位精度
对于大多数工业异响监测场景来说,六向粗定位已经完全够用。能够知道异常声音来自设备的哪个方向,就足以帮助维修人员快速找到故障点。
七、总结与展望
AR1105 作为一款低成本的量产级声源定位模组,不仅在消费电子领域表现出色,在工业物联网领域也有着巨大的应用潜力。它让原本昂贵的声源定位技术,变得能够被广大中小企业所接受。
除了设备异响监测,AR1105 还可以应用于以下工业场景:
- 工厂车间人员定位和安全预警
- 仓库异常声音检测(如玻璃破碎、盗窃)
- 电力设备局部放电监测
- 管道泄漏检测
未来,我们计划在 AR1105 的基础上,集成简单的 AI 声音识别算法,让监测节点不仅能够检测异常声音,还能识别出异常声音的类型,进一步提高预测性维护的准确性。
如果你也在做工业物联网相关的项目,不妨试试 AR1105,它可能会给你带来意想不到的惊喜。大家有什么好的应用想法,欢迎在评论区交流~