作为一名在嵌入式领域摸爬滚打多年的工程师,我最近完成了一个很有意思的项目——基于STM32的智能水表系统。这个项目的起因是本地水务公司找到我们团队,抱怨传统机械水表需要人工抄表,效率低下不说,还经常出现漏抄、错抄的情况。更麻烦的是,用户家里水管漏水好几天都发现不了,白白浪费水资源。
传统机械水表确实存在几个硬伤:
针对这些问题,我们选择了STM32L431RCT6这款低功耗单片机作为核心控制器。选择它主要考虑三个因素:
整套系统的设计目标很明确:
水流量检测是整个系统的基础,我们对比了几种常见方案:
| 检测方案 | 优点 | 缺点 | 适用性 |
|---|---|---|---|
| 霍尔传感器 | 非接触式、寿命长 | 需要磁铁配合 | 首选方案 |
| 光电传感器 | 精度高 | 易受污染、功耗大 | 不适用 |
| 涡轮流量计 | 专业级精度 | 成本高、体积大 | 工业场景 |
最终选用A3144霍尔传感器,主要看中它的几个特性:
具体安装时要注意:
重要提示:磁铁必须使用环氧树脂胶固定,普通胶水长期泡水会脱落。我们第一批样品就有3台因为磁铁脱落导致计量失灵。
无线通信方案我们对比了三种主流技术:
| 技术类型 | 传输距离 | 功耗 | 月租费 | 适用场景 |
|---|---|---|---|---|
| NB-IoT | 1-10km | 低 | 1-5元 | 城市区域 |
| LoRa | 3-5km | 极低 | 无 | 农村地区 |
| 4G Cat.1 | 全覆盖 | 中 | 10-20元 | 视频监控 |
考虑到成本和功耗,选择移远BC28 NB-IoT模块:
模块通过USART2与STM32通信,波特率设置为9600bps。实际测试发现,在信号较弱区域(如地下室),可以采取以下优化措施:
电源系统是整个设备稳定运行的关键,我们的设计指标是:
具体实现方案:
c复制// 电源路径示意图
[锂亚电池3.6V] -> [LDO稳压] -> [3.3V主电路]
-> [DC-DC升压] -> [5V电磁阀]
选用ER34615锂电池(19000mAh)的原因:
实测功耗数据:
按照每天通信1次计算,理论续航:
= 19000mAh / (45μA×23.9h + 85mA×0.1h) ≈ 7.2年
软件采用模块化设计,核心逻辑流程如下:
c复制void main() {
hardware_init(); // 硬件初始化
rtc_init(); // RTC配置
lpm_init(); // 低功耗管理
nbiot_connect(); // NB-IoT联网
while(1) {
if(flow_event) handle_flow(); // 水流事件处理
if(rtc_alarm) upload_data(); // 定时上传
if(alert_flag) send_alert(); // 异常上报
enter_stop_mode(); // 进入休眠
}
}
几个关键设计要点:
水流量计算不是简单的脉冲计数,需要考虑以下因素:
我们采用动态校准算法:
实测计量误差分布:
| 流量范围(L/h) | 平均误差(%) | 最大误差(%) |
|---|---|---|
| 0-1 | 0.12 | 0.35 |
| 1-10 | 0.08 | 0.25 |
| >10 | 0.05 | 0.15 |
异常用水检测是智能水表的核心价值,我们实现了三种检测模式:
微小流量检测(漏水)
超大流量检测(爆管)
持续用水检测(忘关水)
实际部署中发现,很多老房子存在水管微渗漏(约0.05L/h),这种不算异常用水。我们通过机器学习算法建立了用户用水画像,可以区分正常渗漏和真实漏水。
电磁阀是系统中故障率最高的部件,我们的选型标准:
常见问题及解决方案:
水表安装环境潮湿,防水等级要求IP68。我们的工艺方案:
实测效果:在1米水深浸泡72小时后:
通过2000台设备的安装经验,总结出以下要点:
安装前检查:
安装步骤:
调试流程:
首批500台设备部署后,发现以下问题:
优化措施:
通信策略调整:
硬件改进:
优化后指标对比:
| 指标项 | 优化前 | 优化后 |
|---|---|---|
| 上线率 | 85% | 99.2% |
| 平均功耗 | 1.2mWh/天 | 0.8mWh/天 |
| 通信时延 | 8-15s | 3-5s |
原设计理论续航7年,但实际运行中发现:
我们采取的改进措施:
硬件层面:
软件层面:
改进后的预期寿命:
在实际运营中,发现有人尝试:
我们实施的多重防护措施:
物理防护:
软件防护:
业务规则:
这套系统已经在3个城市部署超过1万台,最老的设备已经稳定运行28个月。期间发现了不少有趣的用户行为模式,比如凌晨4点用水高峰(原来是很多老人这个时间起床),这些数据对水务公司的管网调度很有参考价值。