4、传感器选型与数据采集:加速度计、温度传感器、电流传感器选型、I2C/SPI接口基础、数据采样率设置

好,咱们进入第四章。这一章我打算聊聊传感器选型和数据采集。说实话,这是整个TinyML项目里最容易被忽视、但也是最容易翻车的一环。你模型写得再好,传感器数据是脏的、采样率是错的,那后面全是白搭。

我见过太多人,一上来就调模型,结果发现数据根本不对。嗯,咱们先把地基打牢。

4.1 加速度计选型:别只看参数,要看场景

加速度计在工业异常检测里,主要用来测振动。电机、泵、风机,这些旋转设备的故障,早期都会在振动信号里露出马脚。

选型时,我一般先看三个核心指标:

  • 量程(g值):普通工业设备,±2g到±16g够用。大型冲压机、破碎机,得上±200g的。我有个项目,一开始选了±16g的传感器,结果装在冲压机上,数据直接削顶了。后来换了ADXL1001,才搞定。
  • 带宽(Hz):电机振动,主要看几十Hz到几千Hz。普通轴承故障,几百Hz就能看出来。齿轮箱故障,得上到几kHz。选传感器时,带宽至少要覆盖你关心的频率范围的两倍。
  • 噪声密度:这个容易被忽略。低噪声的传感器,能捕捉到更微弱的早期故障信号。比如ADXL355,噪声密度低至25 μg/√Hz,适合做高精度预测性维护。

我个人习惯:工业场景,优先选ADXL345(便宜、成熟)或ADXL355(低噪声、高精度)。如果要求宽带宽,可以看看MEMS加速度计里的高频型号,比如ADXL1001/1002。

避坑指南:我曾经在一个项目里,用了某款便宜的加速度计,结果数据里全是50Hz工频干扰。后来发现是传感器内部没有做低通滤波。所以,选型时一定要确认传感器是否内置了抗混叠滤波器。

4.2 温度传感器选型:精度和响应速度的权衡

温度传感器,在工业里主要用来监测设备过热、环境温度变化。选型时,我关注三点:

  • 精度:±0.5°C是基本要求。做精密温控,得上±0.1°C的。
  • 接口:I2C接口的传感器,连线简单,适合近距离。比如LM75、TMP117。
  • 响应速度:热敏电阻响应快,但线性度差。数字传感器(如DS18B20)精度高,但响应慢。你想想看,如果监测的是快速变化的温度,比如焊接头,那得用热电偶。

我建议:大多数工业场景,用DS18B20就够了。便宜、稳定、单总线通信,一根线就能挂多个传感器。但注意,它的采样速度比较慢,一次转换要750ms。如果你需要快速采集,可以考虑TMP117,精度高,速度也快。

注意:温度传感器不要紧贴发热源安装,留点距离。否则测出来的温度会偏高,影响判断。我曾经吃过这个亏,传感器贴在电机外壳上,结果数据比实际高了5°C。

4.3 电流传感器选型:霍尔效应 vs 分流电阻

电流传感器,用来监测电机、泵的电流变化。电流异常,往往意味着负载变化、堵转、或者绕组故障。

选型时,主要看:

  • 测量范围:选额定电流的1.5倍到2倍。比如电机额定电流10A,选20A的传感器。
  • 隔离方式:霍尔效应传感器(如ACS712)自带隔离,安全。分流电阻方案便宜,但需要隔离电路。
  • 带宽:监测工频电流,几十Hz够用。监测变频器输出,得上kHz带宽。

我个人经验:ACS712系列,便宜好用,但噪声有点大。如果做高精度电流监测,可以考虑INA219,它用的是分流电阻加高精度ADC,精度高,但需要外部隔离。

4.4 I2C/SPI接口基础:选对总线,少走弯路

传感器选好了,怎么跟MCU通信?I2C和SPI是两种最常见的接口。我简单说说它们的区别和适用场景。

特性 I2C SPI
接线 2根线(SDA、SCL) 4根线(MOSI、MISO、SCK、CS)
速度 标准100kHz,快速400kHz 可达几十MHz
多设备 地址寻址,可挂多个 片选信号,每个设备一根CS线
适用场景 低速、近距离、多传感器 高速、大数据量、实时性要求高

说白了,I2C适合挂一堆温度传感器、加速度计,接线简单。SPI适合高速数据采集,比如高采样率的加速度计、ADC。

避坑指南:我曾经在一个项目里,用I2C挂了5个传感器,结果通信老是出错。后来发现是总线电容太大,信号变形了。解决办法:降低I2C时钟频率,或者加总线缓冲器。嗯,这个坑我踩过,你们别踩了。

4.5 数据采样率设置:别盲目追求高采样率

采样率,是数据采集里最关键的参数之一。设高了,数据量大,MCU处理不过来。设低了,信号特征丢失,模型白搭。

怎么设?记住奈奎斯特定理:采样率至少是信号最高频率的两倍。但实际工程中,我一般取5到10倍。

  • 电机振动:轴承故障频率一般在几百Hz到几kHz。采样率设到2kHz到10kHz,够用。
  • 温度:温度变化慢,1Hz采样率都嫌多。一般0.1Hz到1Hz。
  • 电流:工频50Hz,采样率设到1kHz,能捕捉到谐波和瞬态变化。

我建议:先根据设备手册估算故障频率,再选采样率。如果拿不准,可以先用高采样率采集一段数据,然后降采样分析。这样既能保证数据质量,又能节省存储和算力。

注意:采样率设高了,数据量会爆炸。比如10kHz采样,16位精度,每秒就是20KB数据。一天下来,1.7GB。MCU的Flash和RAM根本扛不住。所以,一定要在采集端做预处理,比如只保存特征值,或者用边缘计算做初步判断。

好了,这一章就到这里。传感器选型和数据采集,是TinyML项目的起点。选对了,后面顺风顺水。选错了,后面全是坑。下一章,咱们聊聊数据预处理和特征工程,把原始数据变成模型能吃的“好料”。