3、主流无线技术选型:Wi-Fi、BLE、Zigbee、LoRa、NB-IoT对比分析,选型决策树
做智能货架这几年,我几乎把市面上主流的无线技术都摸了一遍。说实话,没有哪种技术是万能的。你选Wi-Fi还是BLE,直接决定了你的货架是「能用」还是「好用」。
这一章,咱们就把Wi-Fi、BLE、Zigbee、LoRa、NB-IoT这五个选手拉出来遛遛。我会结合自己的踩坑经历,帮你理清选型思路。最后给出一棵决策树,你照着走一遍,基本不会选错。
3.1 五大技术核心参数对比
先看一张表,心里有个底。这些参数是我在实际项目中反复验证过的,不是抄数据手册。
| 参数项 | Wi-Fi | BLE | Zigbee | LoRa | NB-IoT |
|---|---|---|---|---|---|
| 频段 | 2.4/5 GHz | 2.4 GHz | 2.4 GHz | Sub-1 GHz | 授权频段 |
| 传输速率 | 最高1 Gbps | 1-2 Mbps | 250 Kbps | 0.3-50 Kbps | 200 Kbps |
| 通信距离 | 50-100 m | 10-100 m | 10-100 m | 2-15 km | 1-10 km |
| 功耗 | 高(~500 mA) | 低(~10 mA) | 低(~30 mA) | 极低(~10 μA) | 低(~200 mA) |
| 网络拓扑 | 星型 | 星型/网状 | 网状 | 星型 | 星型 |
| 成本(模组) | 高($3-8) | 低($0.5-2) | 中($1-3) | 中($3-5) | 中($5-8) |
| 适用场景 | 高带宽、室内 | 低功耗、短距 | 自组网、传感器 | 远距离、低速率 | 广覆盖、运营商 |
我的经验:别只看理论值。Wi-Fi在穿一堵墙后速率掉一半是常事。BLE在超市货架间穿行,距离缩到20米以内很正常。这些坑,我都在项目里实打实踩过。
3.2 逐个拆解:谁适合智能货架?
3.2.1 Wi-Fi:大材小用,但胜在现成
Wi-Fi的优势是快,而且路由器到处都是。智能货架如果只需要传个价格标签,用Wi-Fi有点浪费。我记得有个客户非要上Wi-Fi,结果一个货架区域要配三个AP,成本直接翻倍。
但有一种情况Wi-Fi很香——货架带屏幕,要播放视频广告。这时候BLE那点带宽根本不够看。
避坑指南:我曾经在一个仓库项目里用Wi-Fi做货架标签更新,结果200个标签同时连入,路由器直接死机。后来加了组播和分时上报才解决。Wi-Fi的并发能力,你心里要有数。
3.2.2 BLE:智能货架的首选,没有之一
说白了,BLE就是为物联网场景量身定做的。功耗低、成本低、手机直连。我做过一个超市电子价签项目,用BLE mesh组网,一个网关管300个标签,电池撑了两年。
BLE 5.0之后增加了广播扩展和长距离模式,覆盖范围更大了。你想想看,一个货架区域放一个BLE网关,所有标签都能稳定连接。
代码示例:BLE广播包结构(用于货架标签心跳上报)
// BLE广播包结构示例
typedef struct {
uint8_t adv_type; // 广播类型:0x00 可连接广播
uint8_t mac[6]; // 设备MAC地址
uint8_t battery; // 电池电量百分比
uint16_t shelf_id; // 货架ID
uint8_t tag_count; // 标签数量
uint16_t crc; // 校验
} shelf_adv_packet_t;
// 发送心跳广播
void shelf_heartbeat_adv(shelf_adv_packet_t *pkt) {
// 设置广播数据
uint8_t adv_data[31] = {0};
adv_data[0] = 0x02; // 长度
adv_data[1] = 0x01; // 标志类型
adv_data[2] = 0x06; // LE General Discoverable
// 填充自定义数据
memcpy(&adv_data[3], pkt, sizeof(shelf_adv_packet_t));
// 启动广播
ble_gap_adv_start(adv_data, sizeof(adv_data));
}
3.2.3 Zigbee:自组网能力强,但调试想哭
Zigbee的网状网络确实厉害,一个节点挂了,数据自动绕路。但它的调试体验,嗯,我至今记忆犹新。有一次在仓库部署Zigbee网络,死活有几个节点连不上,最后发现是信道干扰。
Zigbee适合节点多、分布广的场景。比如一个大型超市,几百个货架标签,用Zigbee mesh可以覆盖整个卖场。但如果你只需要几十个标签,BLE更省心。
注意:Zigbee和Wi-Fi都在2.4 GHz频段,共存是个大问题。我见过一个项目,Wi-Fi一开,Zigbee网络直接瘫痪。解决方案是错开信道,或者用Zigbee 3.0的绿色电力功能。
3.2.4 LoRa:远距离的王者,但速率是硬伤
LoRa的通信距离是真的远,我在郊区测试过,5公里外还能收到数据。但它的速率低到令人发指,最高才50 Kbps。传个温度数据还行,传个图片?别想了。
智能货架用LoRa的场景很少,除非你的货架分布在几个仓库之间,而且只需要传简单的库存状态。我做过一个冷链项目,用LoRa传温度数据,效果很好。
3.2.5 NB-IoT:运营商背书,但成本高
NB-IoT的好处是运营商建好网了,你直接买卡就能用。但每个月要交流量费,一个标签一年下来几十块,几百个标签就是一笔不小的开支。
适合什么场景?货架在户外,或者分布范围极广,比如共享单车、智能水表。室内智能货架用NB-IoT,有点杀鸡用牛刀的意思。
3.3 选型决策树:照着走,不踩坑
好了,理论说完了。我直接给你一棵决策树,你从根节点开始,一路问下去,最后就能得到答案。
开始选型
│
├─ 是否需要传输视频/大文件?
│ ├─ 是 → Wi-Fi(或5G,但成本高)
│ └─ 否 → 进入下一步
│
├─ 通信距离是否超过100米?
│ ├─ 是 → 进入远距离分支
│ │ ├─ 是否有运营商网络覆盖?
│ │ │ ├─ 是 → NB-IoT
│ │ │ └─ 否 → LoRa
│ └─ 否 → 进入短距离分支
│
├─ 节点数量是否超过100个?
│ ├─ 是 → 需要自组网?
│ │ ├─ 是 → Zigbee
│ │ └─ 否 → BLE(带mesh)
│ └─ 否 → BLE(最简单,成本最低)
│
└─ 最终推荐:
├─ 室内智能货架(<100节点)→ BLE
├─ 室内智能货架(>100节点)→ BLE mesh 或 Zigbee
├─ 户外/远距离货架 → LoRa 或 NB-IoT
└─ 带屏幕/视频货架 → Wi-Fi
我的建议:如果你刚开始做智能货架,别犹豫,直接选BLE。成本低、上手快、生态成熟。等业务做大了,再考虑Zigbee mesh或者LoRa。我见过太多团队一上来就搞Zigbee,结果调试三个月还没上线。
3.4 实战选型案例:一个超市货架项目
去年我帮一个连锁超市做电子价签项目。需求很简单:300个货架标签,每天更新两次价格,电池续航一年以上。
一开始客户想用Wi-Fi,因为超市有现成的网络。我算了一笔账:Wi-Fi模组一个8块钱,300个就是2400块。而且每个标签要配电池,Wi-Fi功耗高,电池得用大容量的,成本又上去了。
最后我选了BLE mesh。每个标签成本控制在3块钱以内,用两节CR2032电池,续航实测14个月。网关用树莓派加BLE USB dongle,成本不到200块。
部署的时候遇到一个问题:超市的金属货架对信号有遮挡。我调整了网关位置,在货架两端各放一个,完美解决。
小技巧:BLE mesh组网时,建议把网关放在货架区域的中心位置,高度2米以上。如果货架是金属的,考虑用外置天线。这些细节,能省你很多调试时间。
3.5 总结:没有最好的,只有最合适的
选无线技术,说白了就是做权衡。你要带宽,就得牺牲功耗和距离。你要远距离,就得接受低速率。没有哪个技术能包打天下。
我个人习惯是:先画需求清单,再对着决策树走一遍。如果走完发现有两个选项,那就做个小样机测试。实践出真知,这话在物联网领域尤其适用。
下一章,咱们会深入BLE的实战细节,包括广播、扫描、连接、配对,还有我踩过的那些坑。到时候见。