前提・実現したいこと
温度センサーを用いて温度の検知したいのですがOSError:[121] Remote I/O errorと表示され解決できません
よろしければご教授いただけませんか。
発生している問題・エラーメッセージ
Traceback(most recent call last): File "/home/pi/Desktop/test.py/aa.py",line 23 , in <module> temperture_data = struct.unpack('2B',os.read(temperture_dev,2)) OSError:[121] Remote I/O error
該当のソースコード
Python
1# GPIOを制御するライブラリ 2import wiringpi 3# タイマーのライブラリ 4import time 5# I2Cデバイスからの読み取りに必要なライブラリを呼び出す 6import os 7import struct 8 9# I2Cのインスタンスを作成 10wiringpi.wiringPiSetup() 11i2c = wiringpi.I2C() 12 13# I2Cの設定 14# 通信する機器のI2Cアドレスを指定 15temperture_dev = i2c.setup(0x48) 16 17# 温度を16ビットのデータ取得 18# その他めレジスタ0x03に設定 19i2c.writeReg8(temperture_dev, 0x03, 0x80) 20 21while True: 22 # 温度センサーの2バイト分を読み取る 23 temperture_data = struct.unpack('2B', os.read(temperture_dev, 2)) 24 25 # 値が2バイトずつ分かれるので1つにまとめる 26 temperture = ( ( temperture_data[0] << 8 ) + temperture_data[1] ) 27 28 # 負の値の場合は数値を変換 29 if ( temperture_data[0] >= 0x80 ): 30 temperture = temperture - 65536 31 32 # 取得した値を128で割って温度を算出 33 temperture = temperture / 128 34 35 # 温度表示 36 print ( "温度 " , temperture , "C" ) 37 38 # 1秒ごと 39 time.sleep(1)
試したこと
ラズパイのUpdate、I2Cの有効化
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー