2017-09-04 11 views
0

我是新來的蟒蛇,傳感器和Stackoverflow。我正在uni上的一個項目上通過pyserial在我的電腦的COM4上讀取4個傳感器數據。我寫了下面的代碼來實現:如何分離從串行端口接收到的值並將其作爲單獨的變量存儲在python中?

import serial 
ser = serial.Serial('COM4', 9600, timeout=5) 
ser.write("\r".encode()) 
response = ser.read(60) 
print (response) 
ser.close() 

我得到的輸出是這樣的:

b'reply:node01\r\n69\r\n45\r\n117\r\n994\r\n 

值69,45,117,994分別是從4個傳感器讀數。我做了一些研究,改變print (response)print (response.decode('utf-8')),現在我得到它看起來像輸出:

​​

我真的需要分離,並從我最初的輸出或從我後收到的輸出存儲傳感器值一些幫助將print (response.decode('utf-8'))作爲單獨的變量添加,如field1 = 69,field2 = 45,field3 = 117,field4 = 994。所以,我可以讓這thingspeak API:

https://api.thingspeak.com/update?api_key=XXXXXXXXXXXXXXXXXXX&field1=69&field=45&field3=117&field4=994 

PS:可擴展性 - 更多的傳感器數量可在以後這個項目的階段加入,使接收到的數據值的數量也將增加。

請真的需要一些幫助。

+0

調查[str.split()](https://docs.python.org/3/library/stdtypes.html#str.split) ,將您對回車的回覆分開。 – SiHa

回答

0

良好的呼籲從字節轉換爲文本。現在假設你商店解碼的字符串,如

my_str = response.decode('utf-8') 

可以使用splitlines字符串的方法來獲得每個行字符串:

field0, field1, field2, field3, field4 = my_str.splitlines() 

然後你就可以插這些值轉換成一些模板給你你想要的網址。如果你喜歡的值的列表,就用

fields = my_str.splitlines() 
+0

'splitlines'字符串方法的作品。我現在可以單獨保存每個數據。萬分感謝 ! –

相關問題