尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

基于LIS3DH的管道泄漏检测:MEMS加速度计振动监测实战

基于LIS3DH的管道泄漏检测:MEMS加速度计振动监测实战 1. 从nano到管道巡检LIS3DH恰好覆盖了哪些检测需求第一次接到用加速度计去听水管漏水的需求时我第一反应是怀疑的。水声是流体中的声波传感器是测运动姿态的这两者怎么搭到一起直到我把 LIS3DH 贴到一段塑料水管上用 5kHz 采样率抓了一晚上数据才彻底明白泄漏产生的本质是压力波动和管壁振动MEMS 数字输出加速度计在这里扮演的不是测姿态角色而是一个微型振动传感器。这条思路对供水管网检测、工业管道健康监测、以及智能家居漏水报警都适用。LIS3DH 这颗器件在 ST 的加速度计家族里被叫作nano不是它功能砍半而是它把尺寸和功耗做到了极致3mm×3mm×1mm 的 LGA 封装一颗小到几乎不占面积的芯片休眠时电流低于 1µA低功耗模式下整机可以靠纽扣电池跑很久。对需要埋到管井、藏在墙内、或者绑在入户水管上的无线传感器节点来说小和省就是实打实的部署优势。但它绝不是只靠小出位的。LIS3DH 是一颗完整的三轴数字加速度计支持 ±2g/±4g/±8g/±16g 四档量程输出数据速率从 1Hz 一路到 5.376kHz内部自带了高速滤波器、FIFO 和中断控制器。这个配置恰好卡在了一个非常有用的位置普通低频振动监测用不到那么高的性能真正做声学级振动检测比如听泄漏、听轴承异响又不需要开到大g值。于是这颗低功耗、小封装、带数字接口和 FIFO 的元器件成了我手头做水管泄漏检测项目时最先考虑的选择。如果用过去的老方案检测管道泄漏要上压电式加速度计加电荷放大器体积大、成本高、还得单独做模拟信号调理电路。LIS3DH 这类 MEMS 数字输出加速度计直接省掉了模拟链路I2C 或 SPI 接出来就是干净的 16 位数字量。对长期部署在野外的监测节点来说这减少的不仅是一个模数转换芯片更是整个调试成本。后面我会从参数选型、寄存器配置、水管安装、算法判定到硬件调试验证把整套思路拆开讲。2. 低功耗与高分辨率的平衡点解析LIS3DH关键参数如何选很多第一次用 LIS3DH 的工程师会被数据手册上一大堆模式选择弄晕低功耗模式、正常模式、高分辨率模式还有 10 位和 12 位分辨率ODR 又分了一堆档位。这里其实没有一个最佳配置而是要看应用场景里功耗、分辨率、采样带宽三者的取舍关系。2.1 功耗模型休眠、低功耗和正常模式的差距LIS3DH 的待机电流典型值可以做到 1µA 以下这是设备挂机时的基本盘。在低功耗模式下官方标称的典型电流大约只有几微安工作电压 1.8V 也照样能跑。正常模式下电流会上升到几十微安级别ODR 开得越高电流随之增加如果切到高分辨率模式内部 ADC 的转换时间变长功耗还会再涨一截。我做管道泄漏节点时对功耗账是这样算的设备平时处于 LIS3DH 和 MCU 都休眠的状态只有传感器通过中断引脚监测外部振动。一旦采样到超过阈值的冲击或持续振动LIS3DH 拉高 INT1 引脚把 MCU 唤醒MCU 再把 ODR 从低功耗档切换到 5kHz 高采样档连续记录几秒钟数据做特征判断。这个休眠-唤醒-记录-再休眠的流程平均功耗可以压到几十微安以下一节 18650 电池撑几个月完全没问题。2.2 分辨率与噪声为什么要选±2g而不是±8gMEMS 加速度计有个共性规律量程越大满量程下同一份 ADC 位数能表现的分辨率越粗。LIS3DH 在 ±2g 和 12 位分辨率模式下每个 LSB 对应的加速度大约是 0.98mg切到 ±8g 量程同样 12 位下每个 LSB 就变成了约 3.9mg。对于水管泄漏这种微振动信号大部分有效振动幅度只在几毫克到几十毫克之间如果一开始就把量程开到 ±8g相当于用一把大尺子去量一根头发很多细节都会被量程噪声吃掉了。所以我最终确定用 ±2g 量程配合 12 位高分辨率模式。这套配置下1mg 左右的分辨率已经能分辨出粘在塑料管壁上、距离泄漏点一两米范围内的微弱振动。2.3 采样率选择泄漏频带到底需要多宽的带宽塑料水管泄漏的声学振动主要能量集中在低频段。根据我做过的 PVC 管和 PE 管实测泄漏信号在 100Hz 到 1kHz 这个区间最明显部分高频成分能到 2kHz 以上。按照奈奎斯特采样定理要想保留 1kHz 以上的信息采样率至少要 2kHz。LIS3DH 的 ODR 档位里有 1.6kHz 和 5.376kHz 可选。我在实际项目里用了两种策略并存持续监测模式用 1.6kHz已经能覆盖大部分泄漏特征当 LIS3DH 中断触发后把 ODR 切到 5.376kHz 做短时高频采集用于分析高频能量比、排除水泵噪声干扰。2.4 内置滤波器重力不等于振动信号姿态传感器最怕的是把重力当成信号。LIS3DH 里有一个可以配置的高通滤波器能够把低频的重力分量滤掉只留下高频的振动波动。这个功能在管道监测里太关键了因为在 ±2g 量程下Z 轴静态输出可能高达 1g而泄漏信号只有几毫克两者混在一起没法直接用。我推荐的做法是启用 LIS3DH 内置高速滤波器或者在 MCU 侧对原始数据做滑动平均去直流。前者省算力后者更灵活适合需要同时分析低频和高频成分的场景。下面这段寄存器配置就是在实际调试中跑通的。3. 寄存器级实战用I2C驱动LIS3DH并把数据读准LIS3DH 的寄存器控制不算复杂但有几个位一旦配错读出来的数据会非常奇怪。我先把最核心的初始化和数据读取流程写清楚。3.1 初始化流程WHO_AM_I、CTRL_REG1、CTRL_REG4LIS3DH 的 I2C 七位地址是 0x18 或 0x19由 SA0 引脚决定。上电后第一步一定要读 WHO_AM_I 寄存器地址 0x0F正常值应该是 0x33。这个值对不上后续所有寄存器配置都是白搭。下面是一段基于标准 I2C 驱动的初始化代码#define LIS3DH_I2C_ADDR 0x18 // SA00 #define LIS3DH_WHO_AM_I 0x0F #define LIS3DH_CTRL_REG1 0x20 #define LIS3DH_CTRL_REG4 0x23 #define LIS3DH_OUT_X_L 0x28 uint8_t lis3dh_read_reg(uint8_t reg) { uint8_t val 0; // 发送寄存器地址 i2c_write_byte(LIS3DH_I2C_ADDR, reg); // 读取一个字节 val i2c_read_byte(LIS3DH_I2C_ADDR); return val; } void lis3dh_init(void) { uint8_t id lis3dh_read_reg(LIS3DH_WHO_AM_I); if (id ! 0x33) { // 传感器未响应需要检查接线或地址 return; } // CTRL_REG1: ODR5.376kHz(0b1001) 低功耗关闭使能X/Y/Z lis3dh_write_reg(LIS3DH_CTRL_REG1, 0x97); // CTRL_REG4: BDU1FS±2g普通分辨率模式 lis3dh_write_reg(LIS3DH_CTRL_REG4, 0x80); }CTRL_REG1 里的高四位是 ODR 选择低位是 XYZ 轴使能。0x97 的二进制是 1001 0111其中 ODR1001 对应 5.376kHz低三位全置一表示三个轴全部使能。如果只做低频活动监测可以把 ODR 调到 010050Hz电流立刻降一个数量级。CTRL_REG4 中最高位是 BDUBlock Data Update这个位非常关键。它保证在读取输出寄存器高低字节期间寄存器内容不会被新采样数据刷新。不开启 BDU 的话可能读到上一个采样的高字节和下一个采样的低字节拼在一起数据会发生偶发的跳变调试时很难排查。3.2 读取三轴数据的正确姿势LIS3DH 的输出寄存器从 0x28 开始按 X 低字节、X 高字节、Y 低字节、Y 高字节、Z 低字节、Z 高字节排列。推荐用寄存器地址自增方式一次读完 6 个字节void lis3dh_read_accel(int16_t *x, int16_t *y, int16_t *z) { uint8_t buf[6]; uint8_t reg LIS3DH_OUT_X_L | 0x80; // bit7置1开启自动地址递增 i2c_write_byte(LIS3DH_I2C_ADDR, reg); i2c_read_bytes(LIS3DH_I2C_ADDR, buf, 6); *x (int16_t)((buf[1] 8) | buf[0]); *y (int16_t)((buf[3] 8) | buf[2]); *z (int16_t)((buf[5] 8) | buf[4]); }这里有个容易踩的坑LIS3DH 的输出是左对齐的 16 位数据。在 12 位分辨率模式下实际有效数据在高 12 位需要把读到的原始值右移 4 位再换算成物理加速度在 10 位模式下右移 6 位。换算公式如下float lis3dh_raw_to_g(int16_t raw, uint8_t bits) { int16_t val raw (16 - bits); // 取有效高位 float fs 2.0f; // 当前±2g量程 return val * fs / (float)((1 (bits - 1)) - 1); }用这个函数就能把 X/Y/Z 轴原始值统一换算成以g为单位的加速度方便后面算 RMS 和做阈值判断。3.3 FIFO和中断降低功耗的硬核手段LIS3DH 内部有个 48 字节的 FIFO每轴数据占 6 字节所以一次最多缓存 8 组完整三轴样本。这个 FIFO 对低功耗系统非常有用MCU 不需要每采一次数据就唤醒一次可以等 FIFO 装满了再一次性突发读取减少唤醒次数。中断配置是另一个省电利器。我通常把 INT1 配置成振动唤醒用 INT1_CFG地址 0x30设定触发方向和阈值INT1_THS0x32设定阈值大小INT1_DURATION0x33设定持续时间。只有采样到的振动幅度超过阈值并且持续满足设定时间INT1 引脚才会拉高。这样 MCU 在绝大部分时间可以睡死只有真正有振动事件时才会被唤醒。配置示例// INT1_CFG: 使能X/Y/Z轴的超过阈值事件 lis3dh_write_reg(0x30, 0x2A); // AOI0, 6D0, ZHIEYHIEXHIE1 lis3dh_write_reg(0x32, 0x20); // INT1_THS32约250mg阈值 lis3dh_write_reg(0x33, 0x05); // 连续5个采样点超过阈值才触发 // CTRL_REG3: 使能INT1引脚输出 lis3dh_write_reg(0x22, 0x40);阈值和持续时间的取值需要根据现场背景噪声实测调整后面我会详细说调试过程。4. 塑料水管泄漏的振动特征与MEMS传感器布点方案把 LIS3DH 接到管道上并不难难的是让采集到的数据真实反映泄漏状态。这里牵扯到泄漏振动本身的物理特征以及传感器怎么布置才能不吃亏。4.1 塑料管的泄漏信号到底长什么样金属管道传声效果好所以在金属供水管网上几米甚至十几米外都能用听音杆找到泄漏点。塑料管PVC、PE、PPR正好相反管道内壁对声波的阻尼很大高频成分传不了多远能传到传感器位置的信号主要集中在低频段。在我做的模拟泄漏平台上用电磁阀控制一个 2mm 小孔放水压力维持在 0.3MPa 左右距离泄漏点约 0.5 米处采集到的振动信号频谱峰值大概集中在 300Hz 到 800Hz。这个频段不属于超高音但也不是那种均匀的白噪声它带有明显的压力脉动特征。如果把采样率降到 100Hz这些信息基本就丢失了。因此布置方案的第一个决定是传感器必须尽量靠近疑似泄漏点。塑料管的信号衰减太快隔两三根管段再测信噪比就会差到没法用。4.2 三轴数据比单轴数据更稳管道壁上的振动方向并不是单一的。泄漏射流冲击管壁时会产生径向振动同时带动管壁沿轴向、切向传播。再加上阀门、三通、弯头处会产生耦合振动传感器安装姿态不可能保证某个轴恰好对准泄漏最强方向。这就是为什么要用三轴加速度计而不是单轴。我的习惯是把三个轴的原始采样先做去重力处理然后合成一个标量振动强度rms_total sqrt( (rms_x^2 rms_y^2 rms_z^2) / 3 )这个合成 RMS 值不会因为你把传感器转了 90 度就发生剧烈变化。实测下来用单轴判断时某次泄漏可能只在 Y 轴上有反应但用合成 RMS 后泄漏和非泄漏状态之间的差值非常稳定阈值也更容易选定。4.3 安装方式决定高频响应传感器和管道之间是刚性接触还是柔性接触对测量结果影响极大。我试过几种方式结果差异非常明显用双面胶直接贴低频信号能通过但高频部分被双面胶吸收信号幅度会打折。用环氧树脂或热熔胶固定耦合效果好但拆卸麻烦适合长期部署。用金属抱箍加螺丝固定最可靠的方案传感器 PCB 通过尼龙柱或金属柱固定在抱箍上高频响应损失最小。直接放在管壁旁边不接触基本测不到有效信号只有环境噪声。在实验室阶段建议用环氧树脂或 AB 胶把一块小铝片粘到管壁上再把 PCB 传感器固定到铝片上。这样既保证耦合又方便反复拆装。现场长期部署时我偏好用不锈钢抱箍因为塑料管表面经常有凝露或污垢胶粘耐久性很难保证。4.4 方向如何摆LIS3DH 是一片 LGA 封装的芯片它的 X/Y/Z 轴方向是固定的。安装时不用刻意把某个轴对准管道的径向只要让 PCB 平面大致平行或垂直于管壁即可。真正起作用的不是某一个轴的读数而是三轴合成后的结果。不过有一点要注意传感器在静止状态下总有一个轴承受 1g 的重力分量。数据采集时如果不对原始值做去重力操作后面算 RMS 会被一个巨大的直流偏置淹没。去重力有两种方式硬件上开 LIS3DH 内置的高通滤波器软件上对一段窗口内的数据做均值相减。我一般用软件方式因为这样保留低频成分方便同时观察管道的低频脉动。5. 泄漏信号处理与判定算法从原始波形到报不报警传感器数据到手真正的难点才刚开始怎么从一段充满背景噪声的振动波形里判断有没有泄漏或者哪一根管道正在漏。这个问题的核心是把信号特征和报警策略设计成一套可量产、可调试、可解释的流程。5.1 第一步去重力与零漂校正LIS3DH 每次开机后Z 轴会有一个接近 1g 的直流分量同时温度变化还会引起零点漂移。如果直接把原始值拿去做 FFT频谱里会有一条巨大的 0Hz 分量低频段完全被压住。处理方法是做一个滑动平均滤波器把一段时间内的均值当作当前零点然后从每个采样里减掉// 每采集512个点计算一次均值并减去 int32_t sum_x 0; for (int i 0; i N; i) { sum_x sample_x[i]; } int16_t offset_x sum_x / N; for (int i 0; i N; i) { sample_x[i] - offset_x; }这里的窗口长度要选好。窗口太短会把真实信号也一起减掉窗口太长又跟不上零点漂移。我习惯用 512 点到 2048 点对应在 5kHz 采样率下大约 0.1 到 0.4 秒的时间窗。这个长度对泄漏振动几十毫秒级别来说刚好不会把有效信号吞掉。5.2 第二步时域 RMS 特征去重力后可以算每段窗口的三轴合成 RMSRMS sqrt( sum( (x^2 y^2 z^2) ) / (3 * N) )这个 RMS 值就是当前一段时间内的整体振动强度。在无泄漏状态下PVC 管道的背景 RMS 通常在 2mg 到 10mg 这个量级视环境里的泵站、马达、地面震动而定而一个 2mm 泄漏孔在 0.3MPa 压力下距离半米处能产生 30mg 到 200mg 的 RMS 增量。只要背景相对稳定阈值设在背景的 2 到 3 倍就可以获得不错的初判效果。但这只是初判。因为管路里正常用水时水流冲击弯头、阀门开关瞬间产生的振动幅度也可能达到甚至超过泄漏信号的 RMS。所以单纯靠 RMS 阈值误报率会偏高必须往下再看频域。5.3 第三步频域能量分布是识别泄漏的硬指标泄漏产生的振动是宽频噪声尤其在 300Hz 到 1kHz 这个区间能量比较集中而正常用水时的冲击、泵站运行振动往往带有明显的窄带谐波特征。利用这个差异把 FF t 之后的频谱分成几个频段计算能量占比可以更好区分泄漏和其它干扰。一个简化做法# 假设 fs5000Hz, N1024 import numpy as np def leak_score(windowed_data, fs5000.0): n len(windowed_data) win np.hanning(n) spec np.fft.rfft(windowed_data * win) power np.abs(spec) ** 2 freq np.fft.rfftfreq(n, d1.0/fs) low_band np.sum(power[(freq 100) (freq 1000)]) total_band np.sum(power[(freq 10) (freq 2000)]) if total_band 0: return 0.0 return low_band / total_band当leak_score超过某个经验阈值比如 0.6并且此时 RMS 也超过背景阈值才真正触发泄漏报警。两重条件同时满足误报率会显著下降。我在现场调试时还遇到过一种情况泄漏点距离传感器较远高频部分被塑料管衰减得非常厉害功率主要落在 100Hz 到 300Hz这时可以把特征频段下调但要注意这也会把泵站振动误判进来需要根据现场管道走向单独校准。5.4 第四步动态阈值与事件确认背景噪声不是恒定不变的。白天管网压力波动、邻居用水、路面车辆经过都会让背景 RMS 起伏。如果用一个固定阈值要么白天频繁误报要么晚上漏报。我采用的动态阈值策略是长时间滑动统计背景 RMS 的中位数和方差每 10 分钟更新一次阈值。阈值的表达式类似threshold median_background_rms * 3 5mg这样即使背景从 5mg 慢慢涨到 15mg阈值也会跟着移动不会因为环境变化导致大量误报。同时报警后不是立即上报而是要求连续 30 秒内至少有 20 秒满足报警条件排除偶发的开关水锤干扰。5.5 需要注意的报警盲区没有任何一种单一特征能覆盖所有泄漏场景。微小的渗漏比如裂缝缓慢渗水产生的振动可能极弱低于传感器分辨力和背景噪声叠加的总和。这种情况很难用加速度计直接检测只能靠泄漏点周围的水浸传感器或者压力梯度来辅助判断。所以在做产品设计时我一直建议把 LIS3DH 振动检测作为实时预警手段而把水浸传感器作为最终确认手段两条腿走路才能真正减少漏报。6. 硬件电路与PCB布置3.3V系统、去耦和焊接经验LIS3DH 的外围电路非常简单但它毕竟是一个能测到毫克级微弱振动的 MEMS 器件电源干净与否、PCB 布局是否合理直接影响数据质量。6.1 电源与去耦LIS3DH 的工作电压范围是 1.71V 到 3.6V可以直接用 3.3V 供电。Vdd 和 Vdd_IO 建议都接同一个 3.3V引脚之间不要留太长的走线。靠近 Vdd 引脚放置两个去耦电容一个 0.1µF 用于滤除高频干扰一个 1µF 或 2.2µF 用于稳定电压波动。我见过一个案例传感器数据总有规律的周期跳动波形看起来像是某种低频干扰。排查到最后发现是给设备供电的 DC-DC 开关频率纹波没有滤干净LIS3DH 内部的 ADC 把这个纹波当成了加速度信号。后来在电源输入端加了一级 LC 滤波数据立刻平稳了许多。所以如果测出来的信号在无振动状态下仍然出现周期性波动先不要怀疑传感器去查电源纹波。6.2 I2C接口和地址选择LIS3DH 的 I2C 地址由 SA0 引脚决定。SA0 接地时地址是 0x18接 Vdd_IO 时地址是 0x19。如果一根 I2C 总线上挂了多颗 LIS3DH可以用不同的 SA0 来区分。I2C 上拉电阻一般取 4.7kΩ如果总线走线较长或有多个设备可以降到 2.2kΩ。SDA 和 SCL 的上拉电阻必须接到 Vdd_IO不能悬空。在低功耗设计中I2C 的上拉电阻会持续消耗电流值取得越大漏电越小但总线速率会被拉低。实际权衡下来 4.7kΩ 在 400kHz 模式下表现不错。6.3 PCB布局注意事项LIS3DH 是 LGA-16 封装底部有个较大的散热/接地焊盘。设计 PCB 时一定要在底层对应位置铺地并打过孔保证这个焊盘良好接地。芯片周围的机械应力会影响加速度计输出所以在布线时不要只靠一角走线尽量对称布线减少 PCB 受热形变带来的应力。还有一个很容易被忽略的细节不要把这颗传感器放在 PCB 的边缘或者靠近蜂鸣器、马达、继电器这类会自振的器件。否则还没测管道板子自己的振动就够触发报警了。6.4 手工焊接经验LGA-16 封装的引脚在底部用普通烙铁很难直接焊。我的经验是用热风枪加低温锡膏先在 PCB 焊盘上均匀涂一层薄锡膏放上芯片用热风枪 280℃ 左右吹焊看到焊膏熔化并轻微回缩就证明焊接完成。焊完后用万用表量相邻引脚确认没有连锡。如果没有热风枪可以用拖焊法先在焊盘上放足量焊锡芯片对准放好后用烙铁从侧面加热让焊锡渗入芯片底部。这个方法有风险不建议新手直接上手。另一种更稳妥的办法是让 PCB 厂做好钢网使用贴片机焊接。7. 现场调试与数据验证把LIS3DH粘到水管上之后的那些坑硬件和算法都搭好了最后一步也是最容易翻车的一步在现场把 LIS3DH 粘到水管上看它到底能不能识别出泄漏。7.1 先过三关再谈算法每套设备拿到手我习惯按下面三个步骤做基础验证第一关读 WHO_AM_I。I2C 扫描地址能收到 0x33说明芯片电源、I2C 接线没问题。第二关平放传感器看三轴静态输出。Z 轴应该接近 1gX/Y 轴接近 0。如果 Z 轴明显不是这个值先查安装是不是歪了再查寄存器配置。第三关用手轻轻敲击水管表面同时观察三轴原始数据。敲击瞬间应该出现几十到几百毫 g 的同步脉冲。如果敲击后数据毫无反应大概率是传感器和管壁之间耦合不良或者采样率太低、输出被滤波器滤掉了。这三关过了再开始采集背景数据设置阈值。7.2 现场校准流程我把现场阈值校准总结成一套标准步骤写成小卡片贴在设备外壳上现场工人照着做就能完成调试记录无泄漏状态 30 分钟统计背景 RMS 的中位数和标准差。人为制造一个微小泄漏比如打开水龙头开小流量记录泄漏状态下的 RMS 和频谱特征。把阈值设置在背景中位数加 3 倍标准差同时也是泄漏信号幅度的 1/3 到 1/2 之间。连续运行 24 小时查一次误报率根据结果微调 DURATION 和频域比例阈值。有一次现场调试我设置了阈值和持续事件之后设备在夜里 2 点到 5 点频繁报警。把历史数据导出来一看背景 RMS 在深夜明显升高因为那条管道白天水压较低夜里管网压力上升泄漏点喷射速度和冲击振动都变大。这就是固定阈值失效的典型场景。后来我把动态阈值算法加进去把背景统计窗口设为 1 小时问题才解决。7.3 常见故障排查手册现象可能原因处理方式读不到 WHO_AM_ISDA 和 SCL 接反I2C 地址不对焊盘连锡检查引脚连接重新扫描地址数据全为 0三相轴使能位没置位检查 CTRL_REG1 的 ZEN/YEN/XEN数据偶发跳变BDU 没开启读高低字节间数据被刷新设置 CTRL_REG4 的 BDU1静止时数据漂移明显电源纹波大器件焊接应力大检查去耦电容重新焊接敲击管壁无反应耦合不良高通滤波截止频率太高加固安装重新配置滤波器报警频繁但现场无泄漏正常用水、泵站运行、背景阈值过低重新采集背景调整阈值和持续时间7.4 一次值得记录的实测结果我最后分享一个自己的实测数据。在某次 PVC 管道实验台上我同时布置了三个测点一个紧贴泄漏点一个距离 1 米一个距离 3 米。LIS3DH 全部设成 ±2g、12 位模式、ODR 1.6kHz。泄漏孔直径 2mm水压 0.3MPa。紧贴泄漏点的位置三轴合成 RMS 约 120mg距离 1 米处降到 45mg距离 3 米处只有 12mg。而背景 RMS 在 5mg 左右。这个衰减速度比金属管道快得多也验证了塑料管泄漏检测必须传感器跟着泄漏点走。后来在现场我们也是依靠沿线布置多个低成本节点用 RSSI 式的信号强度衰减估算泄漏位置效果比单点判断靠谱很多。这套从器件选型、寄存器配置、安装方法到算法判定的完整链路就是我在实际项目中反复验证出来的。每一个环节单独拿出来都不复杂但串在一起之后就能把一个 3mm×3mm 的小加速度计变成一套可用的管道泄漏预警系统。如果你的应用场景和这个类似可以照着上面这套流程动手试试如果遇到其它怪现象也欢迎按我给的排查顺序一步步定位多数问题都出在供电、耦合和阈值这三个地方。
返回列表