4、无线通信技术:Wi-Fi、BLE、LoRa、ZigBee对比,如何选择适合的通信方式
做嵌入式能耗监测,选无线通信方式,是我觉得最头疼的一步。
为什么?因为每种技术都有自己的脾气。选错了,要么功耗压不下来,要么信号穿不过墙,要么成本直接爆表。我这些年踩过的坑,十有八九都跟通信选型有关。
今天咱们就把 Wi-Fi、BLE、LoRa、ZigBee 这四位老兄拉出来,好好盘一盘。
4.1 先看一张对比表,心里有个底
我个人习惯,做技术选型前先拉一张表。别急着看参数,先看大方向。
| 特性 | Wi-Fi | BLE(蓝牙低功耗) | LoRa | ZigBee |
|---|---|---|---|---|
| 传输距离 | 室内 30-50m | 室内 10-30m | 2-15km(视距) | 室内 10-100m |
| 峰值速率 | 最高 1Gbps+ | 1-2 Mbps | 0.3-50 kbps | 250 kbps |
| 功耗(典型) | 高(~100mA+) | 低(~10mA,待机μA级) | 极低(~10mA,待机nA级) | 低(~30mA,待机μA级) |
| 网络拓扑 | 星型 | 星型、广播 | 星型、点对点 | 星型、树型、Mesh |
| 频段 | 2.4/5 GHz | 2.4 GHz | Sub-GHz(如 868/915 MHz) | 2.4 GHz |
| 成本(模组) | 中高 | 低 | 中 | 低 |
| 典型应用 | 摄像头、智能音箱 | 手环、传感器 | 远距离抄表、农业 | 智能家居、工业控制 |
嗯,这张表只是参考。实际项目中,你会发现很多参数是「纸面数据」和「实测数据」两码事。
4.2 Wi-Fi:高带宽的代价是功耗
Wi-Fi 的优势很明显——速度快,生态成熟。你家里那个智能插座,十有八九就是 Wi-Fi 的。
但做能耗监测,我一般不太推荐 Wi-Fi。为什么?功耗太高了。
我记得有一次做工厂设备监测,客户非要上 Wi-Fi。结果呢?电池供电的设备,三天就得换一次电池。后来改成 LoRa,半年才换一次。
Wi-Fi 适合的场景:
- 设备本身需要大量数据传输(比如视频流)
- 设备有持续供电,不依赖电池
- 需要直接接入现有家庭/企业网络
避坑指南: 我曾经在项目里用 ESP8266 做低功耗设计,结果发现它的深度睡眠模式唤醒后,重新连接 Wi-Fi 要 3-5 秒。这期间功耗飙升到 200mA。你想想看,如果设备每 10 分钟上报一次数据,那这 3 秒的「高功耗窗口」就占了总能耗的 0.5%。看似不多,但电池容量一算,寿命直接打八折。
4.3 BLE:低功耗的万金油,但别指望穿墙
BLE 是我用得最多的技术。说白了,它就是个「省电版的蓝牙」。功耗低、成本低、手机直接连,太方便了。
我做过一个智能手环项目,用的就是 BLE。待机电流能做到 3μA 左右,一颗 CR2032 纽扣电池能用大半年。
BLE 适合的场景:
- 短距离(10米以内)的数据采集
- 需要与手机 APP 直接交互
- 设备体积小,只能用纽扣电池
但 BLE 有个硬伤——穿墙能力差。你想想看,2.4GHz 频段,遇到一堵混凝土墙,信号直接掉一半。我在一个智能家居项目里,客厅的 BLE 传感器,隔了一堵墙到卧室,连接就断断续续的。
避坑指南: 我曾经在项目里用 BLE Mesh 组网,想着能解决覆盖问题。结果发现,Mesh 网络里每个节点都要转发数据,功耗反而上去了。而且 Mesh 的延迟不稳定,有时候一个数据包要跳 5-6 次才能到网关。嗯,后来我换成了 ZigBee。
4.4 LoRa:远距离的王者,但速率是硬伤
LoRa 是我做户外项目时的首选。为什么?距离远啊!
我记得在做一个农业大棚监测项目时,大棚分布在方圆 5 公里的范围内。用 Wi-Fi 和 BLE 根本不可能,ZigBee 也得加中继。最后上了 LoRa,一个网关覆盖所有大棚,成本还更低。
LoRa 适合的场景:
- 远距离传输(1公里以上)
- 低速率数据(温度、湿度、开关状态等)
- 电池供电,要求超长续航(1年以上)
- 有遮挡或复杂环境(LoRa 的穿透力比 2.4GHz 强很多)
但 LoRa 的速率真的很慢。最高也就 50kbps,实际用起来可能只有几百 bps。你想传一张图片?别想了,传完天都黑了。
避坑指南: 我曾经在项目里用 LoRa 做实时控制,结果发现从发送指令到设备响应,延迟在 1-3 秒之间。因为 LoRa 的扩频因子越高,传输距离越远,但延迟也越大。所以,LoRa 只适合「采集上报」,不适合「实时控制」。
4.5 ZigBee:Mesh 组网的好手,但生态封闭
ZigBee 在智能家居领域很常见。它的核心优势是 Mesh 组网——每个设备都能当路由器,信号可以一跳一跳地传过去。
我做过一个全屋智能项目,30 多个 ZigBee 设备分布在三层楼。一个网关放在二楼,一楼的设备通过二楼的插座中继,信号稳稳的。换成 BLE 的话,早就断连了。
ZigBee 适合的场景:
- 设备数量多(几十到几百个)
- 需要 Mesh 组网,覆盖大范围
- 设备有持续供电(路由节点不能休眠)
- 对延迟有一定要求(控制类应用)
但 ZigBee 有个问题——生态封闭。不同厂家的 ZigBee 设备,不一定能互连。你买个 A 家的网关,可能连不上 B 家的灯泡。我吃过这个亏,后来学乖了,要么全用同一家的设备,要么选支持 ZigBee 3.0 标准的产品。
避坑指南: 我曾经在项目里用 ZigBee 做电池供电的传感器,结果发现传感器作为「终端设备」可以休眠,但作为「路由设备」必须一直在线。如果网络里路由节点太少,终端设备就找不到父节点。所以,设计 ZigBee 网络时,一定要规划好路由节点的数量和位置。
4.6 到底怎么选?我的决策流程
说了这么多,你可能会问:那我到底该选哪个?
我个人的决策流程是这样的,你可以参考一下:
- 先看距离: 超过 1 公里?直接 LoRa。100 米以内?往下看。
- 再看速率: 需要传视频或大量数据?Wi-Fi。只是传几个字节的传感器数据?往下看。
- 再看功耗: 电池供电,要求续航一年以上?LoRa 或 BLE。有持续供电?Wi-Fi 或 ZigBee。
- 再看网络规模: 设备超过 20 个,需要 Mesh 组网?ZigBee。设备少,点对点?BLE。
- 最后看成本: 模组成本敏感?BLE 和 ZigBee 最便宜。LoRa 模组稍贵,但省了中继器的钱。
嗯,说白了,没有「最好」的技术,只有「最合适」的技术。我见过有人用 LoRa 做室内传感器,结果穿墙效果还不如 BLE。也见过有人用 Wi-Fi 做电池设备,结果天天被用户投诉。
好了,这一章就聊到这儿。下一章咱们聊聊「通信协议栈的安全设计」,那才是真正让人头秃的地方。