
为什么我把“自供电”从备选项改成了物联网节点方案的必选项前两年我帮一个桥梁监测项目做无线传感器节点当时方案里写得明明白白节点用两节AA锂电池标称续航两年。结果部署到第三个月业主就开始打电话问“怎么南岸的三个节点没数据了”。爬上去一看电池盒密封圈老化进水电压掉到保护阈值以下。算了一笔账整个大桥布了120个节点按两年一次换电池每换一次要出动两组人、封路半天、吊车配合——单次换电池的综合成本接近1000元一个节点。这个数字一出来甲方直接改变了产品定义不要把“电池寿命”当作卖点我们真正要的是“装上之后永远不用管”。也就是从那个项目之后我把“Compact Wireless IoT Nodes are Self-Powered”这句话当成了设计目标而不是宣传口号。所谓自供电无线物联网节点简单说就是节点自身不带可更换电源依靠环境中的光、振动、温差来维持长期运行。这篇文章不打算讲空泛的概念我想把从能量预算、采集方案怎么选、无线协议怎么搭配、硬件和固件怎么压功耗到实际部署踩过的坑全部分享一遍。1. 自供电节点的核心逻辑你卖的不是硬件是“免维护”先强调一个容易被忽略的事实物联网节点的数据上报频次普遍不高绝大多数时间设备都处于睡眠状态。一个典型的温湿度采集节点每10分钟读一次传感器、发一次数据实际工作电流可能只有几十毫安但持续时间只有几十毫秒剩下的598秒都在睡眠睡眠电流如果能做到几微安平均功耗完全可以压到几百微瓦甚至更低。1.1 能量预算是最先要做的计算题自供电不是“加一块太阳能板”就完事的。在动手画电路之前我建议你先做一道能量预算题这道题决定了后面所有选型。假设一个节点平均功耗是 P_avg环境采集装置平均可提供的功率是 P_harvest那么最基本的约束就是P_harvest P_avg这只是稳态条件。由于环境能量不是稳定的还需要考虑储能器件在“无能量输入”状态下的续航时间。以太阳能为例如果节点安装在室内400勒克斯桌面照明下一块小型非晶硅电池的输出功率密度大致在10到20微瓦每平方厘米而一块50mm×70mm的室外单晶硅板在晴天下能输出400毫瓦以上。两者差了三个数量级所以第一位的问题不是“用什么能量”而是“部署环境到底有什么能量”。我做完桥梁项目的能量预算后发现一个很有意思的情况如果采集端功率只有P_harvest的70%储能电容两三天就会被能耗拖垮但如果只按85%的采集效率去设计成本又得翻倍。这里没有一个简单答案唯一的出路是压低P_avg比如把上报频率从每5分钟一次降到每15分钟一次平均功耗直接降三分之一采集端压力就小很多。所以我的结论是自供电方案第一个要优化的是负载端而不是采集端。1.2 为什么优先用超级电容而不是锂电池很多人会问为什么不直接接一个锂电池充电锂电池能量密度确实高但它在自供电系统里有几个麻烦一是充电管理电路复杂需要严格的恒流恒压和过放保护二是工作温度范围窄在户外低温环境放电能力下降明显-20℃时容量可能只有常温的六成三是寿命问题浅充浅放加高温会加速老化。超级电容没有这些问题。它的充放电循环寿命可以到十万次以上低温性能好电路也简单唯一短板是能量密度低。因此自供电节点通常采用“能量采集端超级电容储能小容量备用电池”的结构超级电容承担日常的能量缓冲锂电池只在长时间无光照或者温度极低的时候兜底。2. 环境能量怎么选太阳能、振动、温差、射频各自的脾气完全不同能量采集有四种主流路线但它们的“脾气”完全不一样选错了方案后面有吃不完的苦头。2.1 太阳能最通用但“室内”和“室外”是两个世界太阳能是自供电方案里最成熟、设计资料最多的路线。室外应用可以直接选用标准的单晶硅/多晶硅光伏板比如6V开路电压、100mA短路电流的小板子配合MPPT充电管理能量充裕的时候甚至可以给超级电容快速充满。室内应用则完全不同。室内光强通常只有200到1000勒克斯普通硅基光伏板在这种弱光下的输出电压可能会低于能量采集芯片的冷启动阈值。此时要选用弱光性能好的非晶硅电池或者染料敏化电池它们的开路电压在弱光下依然能撑到足以启动PMIC的水平。我给一个客户做室内智能标签时用的是两块串联的非晶硅小电池总面积约35mm×80mm在500勒克斯的办公环境里实测采集功率约120微瓦足够支持一个每5分钟广播一次的BLE温湿度标签。这里有一个必须提醒的点太阳能电池板的“标称功率”通常是AM1.5标准阳光下的参数千万别拿这个数字直接算室内场景。真正设计的时候要用照度计实测部署现场的勒克斯值再翻弱光IV曲线插值否则能量预算从一开始就是错的。2.2 振动能量采集共振匹配是成败关键厂房里的电机、桥梁上的车流、管道的流体冲击这些场景里有稳定的机械振动适合用压电或者电磁式振动采集器。压电悬臂梁的典型结构是一端固定的压电双晶片末端加一个质量块。这类器件的输出功率高度依赖振动频率是否接近其机械共振频率。比如一个设计为100Hz共振的悬臂梁安装在振动主频为50Hz的设备上输出功率可能只有共振点的十分之一。因此在选型之前必须拿加速度计去现场测振动频谱找到主峰频率和振幅然后倒推悬臂梁的刚度与质量块把共振频率调到目标频段。电磁式采集器在低频振动下表现好一些但体积通常更大输出阻抗低整流电路也需要专门设计。如果是结构健康监测这类大型基础设施项目我更倾向于在节点上同时预留压电和电磁两种接口因为现场振动的频段往往不是一次测量就能确定的。2.3 温差发电与射频采集典型的小能量应用场景温差发电利用塞贝克效应只要热端和冷端有温差就能产生电压。一个手掌大小的TEG模块在20℃温差下开路电压约1.5V到2V匹配DC-DC后能输出几毫瓦功率。工业管道的表面与空气之间往往有几十度温差是这类方案的理想场景。但需要注意热沉设计冷端如果散热不好温差会迅速缩小发电功率就会指数下降。射频能量采集最常见的来源是周围已有的基站、Wi-Fi路由器、对讲机信号。听起来很便利但现实很骨感远离基站几十米的开放空间里射频能量密度通常只有-20dBm甚至更低整流后能获得的功率在微瓦级仅够维持一个超低功耗RTC或给电容缓慢充电。真正可行的射频供电路线通常是在自有发射源附近工作比如仓库里每隔几米放一个射频发射源节点靠近它才工作。这种方案适合“靠近才上报”的场景但不适合指望它做持续供电。3. 无线协议选型不是选“通信最强的”而是选“最省电的”一个自供电节点里无线发射往往占掉一次工作周期内70%以上的能耗。所以协议选型不是看空旷距离能传多远而是要看“传完这些数据要付出多少焦耳”。3.1 先建立通信能耗的对比视角我给几个常见协议列一个粗略的参考表格这里的电流值是在典型发射功率和接收状态下的数据不同芯片差异比较大但量级关系是可信的协议频段典型峰值发射电流接收电流睡眠电流典型空旷距离BLE2.4GHz5~15mA3~10mA1~3uA50~100mZigbee/Thread2.4GHz15~30mA5~15mA1~5uA100~300mLoRa433/470/868/915MHz20~120mA4~10mA0.6~2uA2~15kmWi-Fi HaLow (802.11ah)868/915MHz30~80mA10~20mA3~10uA1km在需要穿越墙体、从地下室上报数据或者要做几公里级农业/市政覆盖时LoRa几乎是无敌的因为它的接收灵敏度和抗干扰能力在Sub-GHz频段有先天优势。BLE的优势则在吞吐量和生态比如在智能家居里每个节点距离网关不远BLE就足够了。注意这里的“睡眠电流”非常关键。自供电节点的能量预算是按平均功耗算的如果睡眠电流从2uA涨到10uA看起来只差了8uA但一天下来就多消耗约0.2mAh的容量按一个100F/5.5V超级电容的可用能量来算这个差距足以影响一整晚无光环境下的续航。3.2 LoRa的占空比约束合规和功耗两座大山LoRa虽然距离远但需要注意的是频谱法规对占空比的限制。在868MHz频段EIRP限制通常为14dBm或更高时占空比只有1%这意味着一个节点每小时累计发射时间不能超过36秒。如果你的数据量很低比如每15分钟发一个20字节的传感器值占空比大约只有0.1%左右没问题。但如果想利用LoRa做OTA固件升级升级一个100KB的固件包在1%占空比约束下可能要传很久这几乎是LoRaWAN设备管理的常见痛点。功耗方面LoRa发射电流是动态的与发射功率和扩频因子强相关。LoRa理论上有所谓“低数据速率带来的接收灵敏度优势”但数据速率越低空中时间越长平均功耗并不一定更低。我通常的做法是先固定一个能满足通信距离的扩频因子和带宽然后再优化发射功率找到“距离够用、功耗最低”的工作点。3.3 BLE在自供电节点里的位置适合短距多节点BLE能成为很多自供电标签的首选关键在于它的连接事件机制和广播模式都允许设备在极短时间窗口内完成通信其余时间深睡。比如nRF52840在System OFF模式下耗电约0.3uA靠GPIO翻转或唤醒引脚就可以从深睡中快速醒来。如果是做Beacon类应用可以用BLE的广播模式免连接节点周期性广播温湿度、电量状态网关在附近扫描接受即可。广播间隔可以动态调整光照充足时每2秒广播一次电量偏低时降到每20秒广播一次。这种“动态占空比”策略在自供电产品里非常实用。4. 紧凑硬件设计的边角料尺寸不只是“选小芯片”这么简单题目标题里有“Compact”这个词这恰恰是自供电节点最容易被忽视、又最容易返工的地方。紧凑不是简单地把电路板做小而是要在有限体积里塞下能量采集前端、储能、传感器、MCU、射频前端还要保证天线性能不塌陷。4.1 能量采集前端和PMIC的选型思路能量采集芯片PMIC是系统的“海关”它负责将环境能量整流、升压、储存并管理超级电容的充放电和负载输出。市面上常见的PMIC大致可以分两类一类是专门为能量采集设计的升压充电芯片如BQ25570、ADP5091另一类是集成了电池管理功能的通用PMIC如MAX20361。BQ25570的冷启动电压可以低至330mV这意味着太阳能板在弱光环境下输出电压虽然只有300多毫伏它也能启动起来。它内部有可编程的MPPT功能通过外接电阻设置太阳能电池板的最大功率点电压匹配良好的情况下采集效率可以到90%以上。ADP5091则是另一类选择它的输入电压范围更宽冷启动阈值稍高但效率也不错而且静态电流低到微安级别适合极小能量场景。如果你只是做方案验证先用现成模块搭一个测试板再集成到最终PCB上是个比较稳妥的做法。4.2 超级电容选型与容量计算选择超级电容容量的核心指标是“在无能量输入的情况下系统能撑多久”。假设系统平均功耗P_avg是300uW系统最低工作电压是2.0V超级电容被PMIC充到最高电压4.2V那么可用能量是E_usable 0.5 * C * (V_high² - V_low²)代入数值 E_usable 0.5 * C * (4.2² - 2.0²) 0.5 * C * 13.64 6.82C焦耳C单位为法拉如果要撑过12小时无光需要能量 E_need P_avg * t 300uW * 43200s 12.96J所以需要的电容容量 C 12.96 / 6.82 ≈ 1.9F考虑到超级电容本身的漏电流通常每F达几微安到几十微安劣质电容漏电流更大以及DC-DC的转换效率我实际会选择3F或5F的电容并把这个余量留出来。在体积方面一个5F/5.5V的超级电容直径大约是12mm×25mm的圆柱体对于紧凑型节点来说是能接受的。但如果节点内部空间紧张还可以考虑两个2.7V串联再加平衡电阻体积会更分散一点。4.3 PCB布局里的“功耗暗坑”低功耗电路最怕的不是芯片选错而是PCB上的漏电流悄悄吃掉睡眠电流。我见过一个案例设计人员在超级电容两端并联了分压电阻用于电压采样阻值选了100K两个电阻每天固定消耗的电流就有10uA级别这在整个系统的睡眠预算是不可接受的。正确的做法是利用MCU内部的分压采样电路或者用MOSFET在测量时才接通分压电阻。另一个常见暗坑是天线的铺铜参考层为了追求小尺寸把天线区域周围的覆铜挖得太干净导致天线阻抗失配反射功率变大发射时实际需要的电流比数据手册指标高出一大截。这个问题需要老老实实按芯片厂商的天线设计指南走净空区域、匹配电感、接地过孔一个都不能省。5. 固件层的功耗修炼从微安到纳安的抠电全过程硬件把底子打好之后真正决定平均功耗的是固件。自供电节点的固件本质是一个以“睡眠-唤醒-变速执行”为核心的状态机。这里分享一套我常用的优化路径。5.1 将系统设计成“异步事件驱动”不要用轮询方式去读传感器。比如一个温湿度传感器在MCU主动读取时需要先给它供电、等待测量完成、读取数据整个过程可能要几十毫秒如果每5秒轮询一次传感器一直带电睡眠电流就降不下去。正确的做法是让传感器和MCU都能独立睡眠用一个RTC定时器或者低功耗定时器每N分钟唤醒MCUMCU再给传感器供电、触发单次测量、读取数据、然后立刻断电。传感器在非测量期间完全不带电这样整个系统的休眠电流就能降到几微安。5.2 外设电源轨独立开关如果传感器数量多我习惯在每个传感器的供电端加一个负载开关。这个开关的静态电流必须小于1uA最好低于0.1uA。很多超低功耗设计会忽略这个开关本身的漏电流如果一个负载开关静态电流是3uA两个传感器就是6uA足以毁掉整个系统的睡眠预算。还有一种更激进的做法直接用MCU的GPIO去控制传感器的供电只要MCU的GPIO灌电流能力够且传感器功耗低就能省掉负载开关。但这个方案要考虑GPIO在MCU睡眠时的漏电流某些MCU在深度睡眠时GPIO漏电会显著增大需要实测。5.3 数据聚合和动态上报策略自供电节点通常不需要每次都上报原始数据。在本地做一次判读只有数据变化超过阈值时才上报如果连续多次测量都正常可以每隔10次上报一次摘要。这样不仅省电还能降低无线信道的占用。动态周期上报是我很推荐的一种策略光照充足、能量余额高的时候节点可以每5分钟上报一次阴天或者连续几天无光导致电容电压偏低的时候自动把上报间隔拉长到30分钟并减少数据长度。这个策略本质上是把能量管理做成一个闭环反馈系统——能量多了就多干活能量少了就保底运作。5.4 用电流曲线而不是数据手册来验证功耗搞完固件之后不要只看功耗分析仪算出来的平均电流一定要看一下实时电流曲线。我常用Nordic的Power Profiler Kit 2或者TI的EnergyTrace把节点从唤醒到睡眠的完整电流波形拉出来。实测中经常会看到一些“意外尖峰”比如传感器上电瞬间的浪涌电流能冲到几十毫安虽然只持续几百微秒但在高密度采集下会显著拉高平均功耗又比如Flash写入期间的电流可以到5mA级别如果每次都写入日志累积起来非常可观。要解决尖峰问题可以从软件上错开外设启动时序避免多个外设同时上电导致电流叠峰。6. 工程部署实测太阳能LoRa节点连续7天运行的数据复盘前面讲了不少理论最后用我一个实际项目的复盘来收尾。这个项目是一个农业温室环境监测系统节点部署在大棚内外用的是小型单晶硅光伏板超级电容LoRa方案。6.1 现场实测环境与节点参数光伏板开路电压6V短路电流120mA有效面积约为70mm×90mm储能2个2.7V/100F超级电容串联等效耐压5.4V容量50FMCUSTM32L041系列睡眠RTC模式下电流约1.2uA传感器数字温湿度传感器SHT40外加一个土壤水分传感器两者都通过GPIO控制供电无线模块基于SX1262的LoRa模组工作频率470MHz发射功率17dBm上报策略默认15分钟一次电压低于2.8V时自动改为60分钟一次6.2 实测数据与调试过程部署第一天的数据很漂亮白天电容电压稳定在5V以上晚上最低也在3.9V左右看起来非常健康。但运行到第三天发现一个节点的上报间隔频繁进入“低电量模式”电压经常掉到2.8V以下。排查过程很折腾。我先以为是光伏板被鸟粪遮挡清理后没改善。后来用电流钳测了节点整机电流发现睡眠电流竟然有38uA远超设计值。逐项排查后定位到问题是土壤水分传感器的电源控制引脚我在GPIO输出低电平后直接调用sleep但该GPIO没有配置为ANALOG模式内部上拉电阻使传感器供电端仍有一个不稳定的残余电压导致传感器状态机一直处于待机状态白白吃掉了几十微安的电流。修复后整机睡眠电流降到4.3uA问题立刻消失。继续跑了一周电容电压每天早晨最低值都在3.2V以上平均上报成功率99.6%。这个数据也验证了前面的能量预算在晴天的条件下这个光伏板和储能容量组合对这个负载是绰绰有余的。6.3 我踩过的几个真正隐蔽的坑最后列几个我后面做自供电节点时反复踩到的坑每一个都值得记下来第一超级电容在低温下漏电流会上升。冬天做户外测试的时候凌晨零下5度左右实测一个50F电容的漏电流比常温多了将近2uA连续多天阴天时这个额外的漏电流会成为压垮骆驼的最后一根稻草。选超级电容时尽量选低ESR、低漏电的型号并在能量预算里把温度系数算进去。第二PMIC的MPPT电阻在低照度时可能“帮倒忙”。某些MPPT算法在光照极低时跟踪到的最大功率点会偏移导致充电效率骤降。实测中我发现傍晚微弱光条件下BQ25570的MPPT输出电压设置偏低充电电流几乎没有后面我改成在固件里检测电容电压变化率动态切换MPPT的工作点才把傍晚那段时间的采集效率救回来一点。第三LoRa天线与外壳的关系。自供电节点为了紧凑外壳往往设计得很贴板如果天线旁边有金属支架或者大面积涂有金属漆的壳体即使天线匹配网络调得再好辐射效率也会被显著压低导致链路余量不足。这个要在整机阶段用网络分析仪完整测一次回波损耗不要只看模组在桌面的表现。个人这两年最深的感受是做自供电紧凑无线物联网节点真正难的并不是某一个单项技术而是把能量采集、储能、低功耗硬件、低功耗固件、通信策略和结构设计串成一个闭环。每多抠下来一微安节点就能在环境能量更差的地方多撑一天每一毫米的空间节省都可能决定产品能不能装进目标外壳。所以如果你也正在做类似的产品建议不要急着把硬件一次定板先用模块搭一套原型把各状态的电流曲线、储能余量、环境能量波动全部实测一遍再回过去做集成设计。这一步返工的成本远低于后期在工地上发现整机不工作再回来改板的代价。