做智能家居的朋友对ZigBee肯定不陌生,小米、绿米、Aqara那些传感器和开关基本都是ZigBee协议的。跟WiFi和蓝牙比,ZigBee最大的特点就是低功耗、自组网、能接很多设备,特别适合那种需要长期待机的传感器节点。
ZigBee基于IEEE 802.15.4标准,工作在2.4GHz频段,传输速率不算高,一般也就几十kbps,但对传感器数据来说完全够用了。它最大的优势是可以组成Mesh网络,简单说就是每个设备都可以当路由器转发信号,这样网络覆盖范围就很大,而且某个设备掉线了也不影响其他设备通信。
一个典型的ZigBee网络里有三种角色。第一个是协调器(Coordinator),每个网络里只能有一个,负责建网和管理,一般就是网关那个设备。第二个是路由器(Router),可以转发消息,也可以终端,比如智能插座、开关这些一直通电的设备通常就是路由器角色。第三个是终端设备(End Device),只能收发消息不能转发,通常是用电池供电的传感器,比如温湿度传感器、门窗传感器。
组网的过程大致是这样的:协调器上电后选择一个空闲的信道和一个PAN ID建立网络;然后路由器设备加入网络,它们会跟协调器或者已经在线的路由器建立父子关系;终端设备再加入,它们通常直接跟协调器或就近的路由器连接。当网络里的节点越来越多,就形成了一张密密麻麻的Mesh网络,消息可以通过多跳方式传到很远的地方。
实际用ZigBee的时候有几个坑要注意。第一个是信道干扰,2.4GHz频段WiFi也在用,如果家里WiFi设备多,可能会跟ZigBee互相干扰,建议把ZigBee网关放在离WiFi路由器远一点的地方。第二个是设备数量,虽然理论上一个协调器能接65000多个节点,但实际家用网关一般也就支持几十个到上百个,别塞太多。
还有就是ZigBee 3.0是现在的主流标准,它把之前的各个Profile统一了,不同厂商的设备兼容性更好。买设备的时候尽量选支持ZigBee 3.0的,省得出现网关不识别的情况。如果要接入Home Assistant这类智能家居平台,选个支持Zigbee2MQTT的适配器会更灵活。