0
幾周前iIve問你關於我的python的scripy問題的解決方案。從Arduino腳本中讀取Python仍然不起作用
我剛剛開始我的項目,仍然有問題。
我Arduino是做工精細,命令:sudo屏幕的/ dev/ttyACM0工作完美的,我越來越:
T: 52.80% 23.80 15% 92% N
T: 52.80% 23.80 15% 92% N
T: 52.80% 23.80 15% 92% N
- 筆 - 字母是下一行之間的分隔符
- 第一個號碼是溼度
- 二是溫度
- 三是光敏
- 下一個是土壤水分動態
- 和最後一個是風扇的工作狀態(N - 不工作,Y - 工作)
我想用Python的腳本cron來寫與結果爲每一個傳感器數據的文本文件。
例如,我將使用cron每5分鐘,30分鐘,1小時,3小時,12小時,24小時保存4個文本文件(temp.txt,humi.txt,soil.txt,photo.txt)小時。
接下來,我將使用一個php腳本在我的網站上以圖表的形式顯示數據。
但問題是與我的python腳本。我有一個解決方案在這裏,而且目前我使用下面的腳本(溫度的例子):
#!/usr/bin/python
import serial
import time
buffer = bytes()
ser = serial.Serial('/dev/ttyACM0',9600, timeout=10)
while buffer.count('T:') < 2:
buffer += ser.read(30)
ser.close();
# Now we have at least one complete datum. Isolate it.
start = buffer.index('T:')
end = buffer.index('T:', start+1)
items = buffer[start:end].strip().split()
print time.strftime("%Y-%m-%d %H:%M:%S"), items[2]
但在我的文本文件,我已經得到了不正確的信息,它看起來像:
2013-05-10 19:47:01 12%
2013-05-10 19:48:01
2013-05-10 19:49:01 N
2013-05-10 19:50:01 24.10
2013-05-10 19:51:01 24.10
2013-05-10 19:52:01 7%
2013-05-10 19:53:01 24.10
但它應該一直是2013-05-10 19:47:01 24.10
。
它有什麼問題?
也許你可以在最後一行更改爲'打印time.strftime(「%Y - %m-%d%H:%M:%S「),items [2],repr(buffer)'看看你每次解析的是什麼? – 2013-05-10 18:05:22