我设置了一个带有三个XBee Series 1模块的NonBeacon(w / Coordinator)网络。一个配置为协调员。其他两个配置为终端设备。固件版本和配置如下。
Firmare
Modem: XBEE Function Set Version
XB24 XB24 802.15.4 10CD
协调员
Parameter Value Comments
CH (Channel) 0x0F Identical
ID (PAN ID) 0x5241 Identical
DH 0x0
DL 0x0
MY (Source Address) 0xFF01 Unique
CE (Coord. Enable) 1
A2 (Coord. Assoc.) 0x04 allow end devices to associate to it.
结束设备
Parameter Value Comments
CH (Channel) 0x0F Identical
ID (PAN ID) 0x5241 Identical
DH 0x0
DL 0x0
MY (Source Address) 0xFF02 Unique
CE (Coord. Enable) 0
A1 (End Dev Assoc.) 0x04 allow associate to coordinator.
当终端设备1发出数据时,协调器可以接收数据,但终端设备2不能。我希望终端设备2从该网络中的终端设备1接收数据。我目前的解决方案是让协调器广播数据,因此终端设备2可以接收它。我不确定这是解决终端设备间通信问题的好方法。还有其他解决方案吗?
答案 0 :(得分:5)
使用Digi XBee 802.15.4模块(也称为Digi XBee Series 1模块),在坐标上使用广播与终端设备通话不会受到惩罚。
另一方面,如果您希望能够在任何两个Digi XBee 802.15.4模块之间建立通信,则需要使用单播寻址。单播寻址按以下方式执行:
必须在协调器上更改DL参数以便能够依次与每个终端设备通话,这可能非常笨拙。这就是为什么许多人最终在API模式下使用Digi XBee无线电。
如果您从Digi XBee 802.15.4 Support Page的文档部分下载手册,则会找到标题为“API操作”的部分。如果将AP参数设置为> 1它将启用此模式。
如果您在API模式下从终端设备向协调器发送一些数据,您将看到无线电中出现RX帧(API类型0x81)。同样,如果您使用API类型0x01发送类似格式的数据包并指定终端设备的MY地址作为目标,您将看到数据从终端设备XBee的串行端口出现。
如果您搜索“XBee API库”,您会发现许多有用的链接库,可以使用您选择的语言与Digi XBee模块对话,例如this handy one for the Java language