我想使用 Digi XStick2 ZB
(通过USB连接并在 /dev/ttyUSB0
上作为串行接口连接)作为ZigBee控制器用于一堆ZigBee传感器和 Actuator (温度和湿度,接触传感器,漏水,电源插头......) . 换句话说,我正在寻找配置网状网络和与传感器/ Actuator 通信的方法 .
我找到python xbee并编写了一个简单的python脚本来与USB记忆棒通信:
#!/usr/bin/python
import serial
import time
from xbee import ZigBee
def print_data(data):
print "Data received:", data
serial_port=serial.Serial('/dev/ttyUSB0', 9600)
zbee = ZigBee(serial_port, callback=print_data)
print "Sending some command"
zbee.send("at", frame='A', command='MY', parameter=None)
print "Waiting..."
while True:
try:
time.sleep(0.001)
except KeyboardInterrupt:
break
zbee.halt()
serial_port.close()
它工作,我得到一些响应我的命令:
$ ./test.py
Sending some command
Waiting...
Data received: {'status': '\x00', 'frame_id': '\x01', 'parameter': '\x00\x00', 'command': 'MY', 'id': 'at_response'}
但我找不到任何关于所使用的协议(即我可以发送的消息的内容) - 我可以使用一些命令参考或协议定义吗?
或者,是否有更简单的方法(更高级别的库?)通过USB棒控制传感器?
1 回答
像往常一样,我在询问后不久就找到了答案......我看起来像XBee ZB支持两种模式:
AT模式:https://eewiki.net/display/Wireless/XBee+AT+Mode+-+Transmit+and+Command+Mode+Example
API模式:https://eewiki.net/display/Wireless/XBee+API+Mode+-+Read+Remote+ADC+Example
报价:
文章包含两种模式的文档链接:https://eewiki.net/download/attachments/24313921/XBee_ZB_User_Guide.pdf?version=1&modificationDate=1380318639117&api=v2
现在是一个简短的工作示例:
输出:
这将检索控制器的序列号(在本例中为
01020304050607
) .希望它可以帮助某人 .