小企业智能化
小微企业设备预测性维护实战:ESP32 + 振动传感器做异常监测、FFT 频谱与企微告警
2026年10月24日
用 ESP32 与 ADXL345 振动传感器构建低成本设备预测性维护,靠 FFT 频谱识别轴承磨损等早期故障。
小微企业设备预测性维护实战:ESP32 + 振动传感器做异常监测、FFT 频谱与企微告警
摘要:设备坏了再修,往往伴随停产损失。本文用一块十几元的 ESP32 加 ADXL345 振动传感器,搭一套小微企业用得起的"预测性维护"方案:实时采集振动、计算 RMS 超限告警,并在服务端做 FFT 频谱分析,提前识别轴承磨损、不对中和松动,把故障消灭在停机之前。
一、什么是预测性维护
传统有两种:事后维修(坏了再修,损失大)和定期保养(到点就换,浪费且可能刚换就坏)。预测性维护靠设备状态的实时特征判断——其中振动是最灵敏、最便宜的窗口。旋转机械(电机、风机、泵、轴承)的早期故障,几乎都会先在振动频谱上露出马脚:轴承内圈/外圈剥落有特征频率,不对中产生 2 倍转频,松动出现边带和谐波。
二、硬件选型与成本
- 主控:ESP32(带 Wi-Fi,约 15–25 元),负责采样与上报。
- 传感器:ADXL345(I2C/SPI,三轴,±16g,最高 3.2kHz 采样),或 MPU6050。三轴能区分径向与轴向振动。
- 固定件:磁吸底座或环氧胶,传感器必须刚性固定在设备外壳近轴承处,否则会引入假信号。
- 供电:就近取 5V/3.3V 或 PoE 转接。
成本单点通常 < 50 元,比一台振动分析仪便宜两个数量级,适合在多条产线批量布点。
三、采集端固件(ESPHome 思路)
用 ESPHome 可免写固件,定时采样并计算 RMS(均方根,反映振动总能量):
sensor:
- platform: adxl345
i2c_id: bus_a
update_interval: 1s
accel_x:
name: vib_x
- platform: template
name: vib_rms
lambda: return sqrt(id(vib_x)*id(vib_x)+id(vib_y)*id(vib_y)+id(vib_z)*id(vib_z));
当 RMS 连续超基线阈值,通过 mqtt.publish 或 webhook 推到服务端。注意 update_interval 决定的是上报频率,真正做频谱要在服务端拉原始采样流,或提高 ESP32 内部采样率后抽帧上传。
四、服务端 FFT 频谱分析
服务端(Node-RED / Python 脚本)收集一段原始加速度序列,用 NumPy 做快速傅里叶变换:
import numpy as np
x = np.array(samples, dtype=float) # 一段采样
fs = 3200.0 # 采样率 Hz
spec = np.abs(np.fft.rfft(x - x.mean())) # 去直流后取幅值
freqs = np.fft.rfftfreq(len(x), d=1/fs)
peak_idx = int(np.argmax(spec))
print("主频:", round(freqs[peak_idx], 1), "Hz")
把峰值频率与设备转速换算的轴承特征频率(BPFO/BPFI/BSF/FTF)比对:若主频稳定落在某特征频率附近且幅值随时间抬升,基本可判定对应轴承部件开始劣化。这一步是"预测"的核心,比单纯看 RMS 告警更准。
五、告警与可视化
- 企微机器人 Webhook:把"设备 X 振动超阈值 / 频谱异常"推到运维群,带设备名、RMS 值、主频和截图链接。
- Grafana 趋势看板:把 RMS 与峰值频率按时间存 InfluxDB,画趋势线;当曲线连续 N 天抬升即触发保养工单,而不是等坏。
- 分级:轻微超基线→记录观察;超 1.5 倍→派单巡检;超 2 倍或频谱出现明显特征峰→立即停机检修。
六、部署注意事项
- 采样率 > 2×最高故障频率:轴承特征频率通常几百 Hz 到几 kHz,建议 ≥ 3.2kHz 采样。
- 基线要"健康时"采集:新设备/刚保养后采一段作为基准,否则无从判断劣化。
- 环境振动隔离:传感器别装在会被动传递隔壁设备振动的位置,磁吸底座比胶粘更易复测。
- 温漂与校准:ADXL345 零点会随温度漂移,软件去均值即可,不必过度校准。
- 先试点一台设备验证链路,再批量复制,避免一次性铺开却无人会看频谱。
小结
预测性维护不是大企业的专利。一块 ESP32 加 ADXL345,配合 RMS 实时告警与 FFT 频谱特征识别,就能让小微企业用极低成本把"突发停机"变成"计划检修"。关键是先建基线、看趋势、分级响应,让数据真正指导保养而不是只做漂亮图表。