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天就没电了。

为什么?因为电池容量不是恒定的。它受三个因素影响:

  1. 放电倍率:放电电流越大,实际容量越小。CR2032在0.2mA放电时可能有220mAh,但到了10mA放电,可能只剩150mAh。
  2. 温度:低温下电池容量会大幅缩水。0°C时可能只剩70%,-20°C时可能只剩40%。
  3. 截止电压:很多设备在电池电压降到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模块本身的功耗优化——怎么调参数才能又省电又传得远。到时候见。