Python + Xbee - 解析模拟样本的二进制数据
我最近在做一个项目,使用的是Digi Xbee系列2(ZigBee)模块。我写了一个Python脚本,这个脚本在我的协调器设备上接收数据,并把这些数据保存到数据库里。这个脚本一直在寻找并解析返回数据中的“samples”这个关键字。
后来我买了一个Digi XBee L/T/H传感器(http://www.digi.com/wiki/developer/index.php/XBee_Sensors),发现它返回的数据是通过“rf_data”这个关键字来传递的。看起来这个数据是二进制格式的。我现在无法处理这些数据,也读不到实际的数值。
有没有人能告诉我,是否可以重新编程这个传感器,让它发送“samples”这个关键字,或者如何读取/转换这些二进制数据呢?
我尝试过这样做:
h=struct.unpack('f',response['rf_data'][0:4])[0]
但是我对自己在做什么有点无从下手 ;-)
非常感谢你们能提供的任何帮助……
1 个回答
1
它返回的是一个输入输出样本,具体内容可以参考这个Digi知识库的文章。
你链接的页面上有一些公式,可以把ADC的读数转换成温度、湿度和光照的读数。
在python-xbee文档的第3.2节中,似乎提到从2.1版本开始可以解析输入输出样本。确保你使用的是这个版本,然后看看能否通过输入输出样本访问adc-1
到adc-3
,并把读数转换成光照、温度和湿度的数值。