Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 转换连接到XBee的温度传感器的读数_Python_Beagleboneblack_Xbee - Fatal编程技术网

Python 转换连接到XBee的温度传感器的读数

Python 转换连接到XBee的温度传感器的读数,python,beagleboneblack,xbee,Python,Beagleboneblack,Xbee,我假设使用lm35温度传感器和xbee传感器计算远程位置的实际温度。我从传感器获得模拟输入,但我无法计算温度。下面给出了完整的场景 脚本: 我已将LM35温度传感器连接到XBee(考虑传感节点)pin0,该引脚为模拟(ADC),采样率为4秒。同样,我有另一个XBee作为协调器,它接受来自XBee感知节点的值。协调器通过其TX和RX引脚连接到BeagleBone的UART-4。我使用python库从串行端口(即UART-4)读取数据。我正在成功地从远程xbee获取模拟值。但我无法根据收到的模拟值计

我假设使用lm35温度传感器和xbee传感器计算远程位置的实际温度。我从传感器获得模拟输入,但我无法计算温度。下面给出了完整的场景

脚本: 我已将LM35温度传感器连接到XBee(考虑传感节点)pin0,该引脚为模拟(ADC),采样率为4秒。同样,我有另一个XBee作为协调器,它接受来自XBee感知节点的值。协调器通过其TX和RX引脚连接到BeagleBone的UART-4。我使用python库从串行端口(即UART-4)读取数据。我正在成功地从远程xbee获取模拟值。但我无法根据收到的模拟值计算温度

我收到的样品框架
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':182,'adc-1':466,'adc-2':1023},'options':'\x01'}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':182,'adc-1':469,'adc-2':1023}','options':'\x01}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':182,'adc-1':468,'adc-2':1023}','options':'\x01}
{'source\u addr\u long':'\x00\x13\xa2\x00@\xd6\xa58','source\u addr':'\xaa\xf9','id':'rx\u io\u data\u long\u addr','samples':[{'adc-0':182,'adc-1':470,'adc-2':1023}','options':'\x01}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':182,'adc-1':466,'adc-2':1023}','options':'\x01}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':183,'adc-1':466,'adc-2':1023},'options':'\x01}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':178,'adc-1':466,'adc-2':1023}','options':'\x01}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':180,'adc-1':466,'adc-2':1023}','options':'\x01}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':177,'adc-1':466,'adc-2':1023}','options':'\x01}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':182,'adc-1':466,'adc-2':1023}','options':'\x01}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':183,'adc-1':466,'adc-2':1023},'options':'\x01}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':182,'adc-1':466,'adc-2':1023}','options':'\x01}
{'source_addr_long':'\x00\x13\xa2\x00@\xd6\xa58','source_addr':'\xaa\xf9','id':'rx_io_data_long_addr','samples':[{'adc-0':183,'adc-1':466,'adc-2':1023},'options':'\x01}
{'source\u addr\u long':'\x00\x13\xa2\x00@\xd6\xa58','source\u addr':'\xaa\xf9','id':'rx\u io\u data\u long\u addr','samples':[{'adc-0':166,'adc-1':466,'adc-2':1023}','options':'\x01}
{'source\u addr\u long':'\x00\x13\xa2\x00@\xd6\xa58','source\u addr':'\xaa\xf9','id':'rx\u io\u data\u long\u addr','samples':[{'adc-0':166,'adc-1':466,'adc-2':1023}','options':'\x01}

{'source\u addr\u long':'\x00\x13\xa2\x00\xd6\xa58','source\u addr':'\xaa\xf9','id':'rx\u io\u data\u long\u addr','samples':[{'adc-0':166,'adc-1':466,'adc-2':1023},'options':'\x01}
传感器文档应提供将电压转换为温度和湿度的公式

通过将ADC读数乘以参考电压,然后除以1023,可以将ADC读数转换为电压。您没有指明正在使用哪个XBee模块,因此您必须检查数据表中的参考电压——它可能位于某个引脚上,或者可能是某个固定值

通过谷歌搜索,我发现LM35每摄氏度产生10毫伏的电压
182/1023=0.178
如果参考电压为1V,则为17.8C


湿度计算将类似。关键是将ADC读数转换为电压,然后将其插入数据表上提供的公式。

它是0x3FF,ADC读数的最大值。将读数除以它得到参考电压的百分比。谢谢@tomlogic,非常有用!您能告诉我如何将湿度模拟值转换为实际百分比吗?我的第二个参数是湿度,它几乎恒定为466,请参阅传感器的规格表,并使用它提供的公式。