私は以下のコードでCO2レベルを検出しています。 以下は、モデルに関する情報の一部です。Co2 k30センサーがラズベリーパイ3で働いていない
CO2センサー - K30 ラズベリーパイ3
私はドキュメント以下 http://www.co2meters.com/Documentation/AppNotes/AN137-K30-sensor-raspberry-pi-uart.pdf
以下のとおりパイとK-30との間の接続を行っているが、私のPythonコードは、私は
import serial
import time
ser = serial.Serial("/dev/ttyS0",baudrate =9600,timeout = .5)
print " AN-137: Raspberry Pi3 to K-30 Via UART\n"
ser.flushInput()
time.sleep(1)
for i in range(1,21):
ser.flushInput()
time.sleep(1)
ser.write("\xFE\x44\x00\x08\x02\x9F\x25")
time.sleep(1)
resp = ser.read(7)
high = ord(resp[3])
low = ord(resp[4])
co2 = (high*256) + low
print "i = ",i, " CO2 = " +str(co2)
time.sleep(.5)
です一貫した出力を得られない。
私は
[email protected]:~/i2c $ sudo python test-co2.py
AN-137: Raspberry Pi3 to K-30 Via UART
i = 1 CO2 = 2458
i = 2 CO2 = 2457
i = 3 CO2 = 2448
Traceback (most recent call last):
File "test-co2.py", line 16, in <module>
high = ord(resp[3])
IndexError: string index out of range
[email protected]:~/i2c $ sudo python test-co2.py
AN-137: Raspberry Pi3 to K-30 Via UART
i = 1 CO2 = 2207
Traceback (most recent call last):
File "test-co2.py", line 16, in <module>
high = ord(resp[3])
IndexError: string index out of range
[email protected]:~/i2c $
の下には、任意の助けに感謝何かを取得していますか?
インデックスを作成する前に、結果の内容を確認してください。明らかに、期待している結果列が少ないことは明らかです。 – Carcigenicate