簡體   English   中英

轉換來自連接到XBee的溫度傳感器的讀數

[英]Convert reading from Temperature Sensor connected to XBee

我想使用lm35溫度傳感器和xbee傳感器計算遠程位置的實際溫度。 我正在從傳感器獲取模擬輸入,但無法計算溫度。 完整的方案如下。

場景:

我已將LM35溫度傳感器連接到XBee(考慮傳感節點)引腳0,該引腳模擬(ADC)且采樣率為4秒。 同樣,我還有另一個XBee作為協調器,它正在從xbee感知節點接受值。 協調器通過其TX和RX引腳連接到BeagleBone的UART-4。 我已經使用python-xbee 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_addr_long': '\\x00\\x13\\xa2\\x00@\\xd6\\xa58', 'source_addr': '\\xaa\\xf9', 'id': 'rx_io_data_long_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_addr_long': '\\x00\\x13\\xa2\\x00@\\xd6\\xa58', 'source_addr': '\\xaa\\xf9', 'id': 'rx_io_data_long_addr', 'samples': [{'adc-0': 166, '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': 166, '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': 166, 'adc-1': 466, 'adc-2': 1023}], 'options': '\\x01'} 

注意:

adc-0是我連接了溫度傳感器的遠程xbee的引腳。

adc-1是我已連接濕度傳感器的遠程xbee的引腳。

adc-2是我連接了CO2傳感器的遠程xbee的引腳。

如何計算實際溫度? (當前溫度為〜16至〜18)

傳感器文檔應提供將電壓轉換為溫度和濕度的公式。

通過將讀數乘以參考電壓,然后除以1023,可以將ADC讀數轉換為電壓。 您無需指明要使用哪個XBee模塊,因此必須檢查數據表中的參考電壓-它可能在引腳之一上,或者可能是某個固定值。

通過Google搜索,我發現LM35每攝氏度產生10 mV的電壓。 182/1023 182 / 1023 = 0.178如果您的參考電壓為1V,則為17.8C。

濕度計算將類似。 關鍵是將ADC讀數轉換為電壓,然后將其插入數據表提供的公式中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM