私のコントローラは、シリアルポートを介して無線モジュールからデータを受信しています。タイムスタンプの信号として 'a'を使用して温度と湿度を1秒ごとに2桁に記録しています。例:ここではテキストファイルに保存されたデータが矛盾しています
a21.12 65.43
a21.13 65.40
は、私が使用しているコードです:
import serial
import datetime
connected = False
locations=['/dev/ttyUSB0','/dev/ttyUSB1','/dev/ttyUSB2','/dev/ttyUSB3']
for device in locations:
try:
print "Trying...",device
ser = serial.Serial(device, 9600)
break
except:
print "Failed to connect on",device
while not connected:
serin = ser.read()
connected = True
with open('tempdata.txt', 'w') as text_file:
while 1:
if ser.read() is 'a':
text_file.write(datetime.datetime.now().strftime('%d/%m/%Y %H:%M:%S'))
text_file.write(" ")
x = ser.read()
text_file.write(x)
text_file.flush()
ser.close()
私はその後、私のテキストファイルをチェックすると、結果が毎回異なるようです。私はちょうど2または3秒間実行させると、私は時々正しい結果を得る、時々私は湿気を得る、時々私は半分の温度、半分の湿度(2.16.3のような)でタイムスタンプを取得します。私はそれを数秒以上実行すると、ファイルは完全に空白です。
私のコードの基礎は以前ここで尋ねられた質問から来て、タイムスタンプの部分を追加するまでうまくいきました。私は9600から4800に無線転送レートを変更しようとしましたが、それはちょうどガベージ文字に数字を有効にしました。
私はこれをRaspberry Pi 2モデルBで実行しています。そのため、短期間に多くのことを要求する可能性があります。
出力を固定するために本当によく働いた、そのためにあなたに感謝します。私はそれが3つまたは4つ以上のパルスのために動かせば私はまだ完全に空白のテキストファイルを得る。 – rambopanda
おそらくモードを変更して ''a ''を追加したいと思っています – Nicarus
これは、ありがとう – rambopanda