3、低功耗核心概念:物联网设备的功耗模型、电池容量与寿命估算公式
做LoRa产品,最头疼的是什么?
不是信号传不远,也不是数据传不快。而是——电池能撑多久。
我见过太多项目,硬件调通了,代码写好了,一测功耗,傻眼了。三个月就没电了。客户骂娘,老板拍桌子。嗯,这期我们就来聊聊功耗这件事的核心。
3.1 物联网设备的功耗模型:不是一直耗电的
很多人刚接触物联网时,会犯一个错误:以为设备一直在工作,一直在耗电。
其实不是。LoRa设备大部分时间都在睡觉。
你想想看,一个温湿度传感器,可能每10分钟才上报一次数据。剩下的9分59秒在干嘛?在休眠。这就是物联网设备最典型的功耗模型——间歇性工作模型。
我个人习惯把功耗模型拆成三个状态:
- 活跃态(Active):MCU在工作,LoRa在发射或接收。电流通常在10mA~120mA之间。
- 休眠态(Sleep):MCU进入低功耗模式,LoRa模块断电或进入休眠。电流可以低到1μA~5μA。
- 中间态(Idle/Standby):比如MCU还在跑,但LoRa已经关了。电流在几百μA到几mA之间。
关键点:平均功耗不是看峰值电流,而是看各状态的时间占比。
举个例子。假设一个设备:
- 活跃态:120mA,持续2秒
- 休眠态:5μA,持续598秒(10分钟周期)
平均电流是多少?不是120mA,也不是5μA。算一下:
(120mA × 2s + 0.005mA × 598s) / 600s ≈ 0.405mA
看到了吗?平均只有0.4mA。这就是间歇性工作的威力。
我的经验:我在项目中遇到过,有人把休眠电流做到0.1μA,但活跃态时间没控制好,结果平均功耗反而更高。别一味追求极致的休眠电流,先看看活跃态能不能再压缩。
3.2 电池容量:别被标称值骗了
电池容量,单位是mAh(毫安时)。
比如一节18650锂电池,标称容量是3000mAh。意思是以300mA放电,能撑10小时。但这是理想情况。
实际上呢?
我踩过这个坑。有一次项目用CR2032纽扣电池,标称220mAh。我算了一下,平均电流0.4mA,理论上能撑550小时,也就是23天。结果呢?第15天就没电了。
为什么?因为电池容量不是恒定的。它受三个因素影响:
- 放电倍率:放电电流越大,实际容量越小。CR2032在0.2mA放电时可能有220mAh,但到了10mA放电,可能只剩150mAh。
- 温度:低温下电池容量会大幅缩水。0°C时可能只剩70%,-20°C时可能只剩40%。
- 截止电压:很多设备在电池电压降到2.5V时就关机了,但电池其实还有10%~20%的容量没放完。
| 电池类型 | 标称容量 | 实际可用(0.5C放电) | 实际可用(2C放电) |
|---|---|---|---|
| CR2032 | 220mAh | 200mAh | 140mAh |
| 18650 | 3000mAh | 2900mAh | 2600mAh |
| AA碱性 | 2000mAh | 1800mAh | 1200mAh |
注意:我曾经用CR2032驱动LoRa模块,发射时瞬间电流高达120mA,电池电压直接被拉低到2.0V以下,导致MCU复位。后来加了100μF的钽电容才解决。电池的瞬时带载能力也要考虑。
3.3 寿命估算公式:算清楚再投板
好了,有了功耗模型和电池容量,怎么估算寿命?
公式其实很简单:
电池寿命(小时) = 电池可用容量(mAh) / 平均工作电流(mA)
但这里有个坑——电池自放电。锂电池每年自放电约2%~5%,碱性电池可能高达10%~20%。
所以更准确的公式是:
实际寿命 = 电池容量 × (1 - 自放电率 × 年数) / 平均电流
举个例子:
- 电池:3000mAh 18650,自放电率3%/年
- 平均电流:0.4mA
- 理论寿命:3000 / 0.4 = 7500小时 ≈ 312天
- 考虑自放电(按2年算):3000 × (1 - 0.03×2) / 0.4 = 7050小时 ≈ 293天
差了将近20天。如果你做的是5年寿命的产品,这个差距会更大。
我建议:估算时留出20%~30%的余量。因为还有电池老化、温度变化、实际使用中偶尔的异常功耗。别算得太满,否则出货后等着挨骂。
3.4 一个完整的估算案例
假设我们要设计一个LoRa温湿度传感器:
- 上报周期:15分钟一次
- 活跃态:MCU唤醒+传感器采集+LoRa发射,共3秒,平均电流80mA
- 休眠态:MCU休眠+LoRa断电,电流3μA
- 电池:2节AA碱性电池串联,标称3000mAh(实际可用按80%算,即2400mAh)
计算平均电流:
平均电流 = (80mA × 3s + 0.003mA × 897s) / 900s
= (240 + 2.691) / 900
≈ 0.27mA
理论寿命:
2400mAh / 0.27mA ≈ 8889小时 ≈ 370天
留30%余量:
370 × 0.7 ≈ 259天
嗯,差不多8个半月。如果客户要求一年,那就要优化了——要么加大电池,要么拉长上报周期。
避坑指南:我曾经算出来寿命2年,结果8个月就挂了。查了半天,发现是休眠时一个GPIO没配置好,漏了50μA。50μA看着不大,但乘以24小时再乘以365天,一年就是438mAh。所以,一定要实测休眠电流,别光靠算。
3.5 小结
功耗模型、电池容量、寿命估算,这三件事是LoRa低功耗设计的基石。
说白了,就是搞清楚设备怎么耗电、电池到底有多少电、能用多久。别光看数据手册,实际测一测,留点余量,才能做出靠谱的产品。
下一章,我们会深入LoRa模块本身的功耗优化——怎么调参数才能又省电又传得远。到时候见。