工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

ラズベリーパイの読み取り値BMP085温度と圧力

eBay経由で安価に購入したもう1つの楽しい小さなi2cデバイス。気圧と温度を読み取ります。出力を読み取り可能なものに変換するための比較的簡単な計算がいくつかあります。

繰り返しになりますが、ADAFruitは、RaspberryPiでのBMP085の使用でデバイスを使用するための素晴らしいガイドとライブラリを提供します。以前の投稿と同様に、ADAFruitライブラリをそのまま使用できたはずです。車輪の再発明とゼロからの再コーディングの必要性は感じませんが、それがどのように機能するかを理解したいと思います。

他のいくつかの情報源から情報を引き出しました:

以下は、デバイスをPiに接続するための非常に簡単な回路図です。

インポート smbus インポート 時間 クラス BMP085(): OSS = 3 def __ init __( 自己 、i2c、アドレス): 自己 .i2c = i2c 自己 .address = アドレス 自己 .ac1 = 自己 .readSignedWord( 0xaa ) 自己 .ac2 = 自己 .readSignedWord( 0xac ) 自己 .ac3 = 自己 .readSignedWord( 0xae ) 自己 .ac4 = 自己 .readWord( 0xb0 ) 自己 .ac5 = 自己 .readWord( 0xb2 ) 自己 .ac6 = 自己 .readWord( 0xb4 ) 自己 .b1 = 自己 .readSignedWord( 0xb6 ) 自己 .b2 = 自己 .readSignedWord( 0xb8 ) 自己 .mb = 自己 .readSignedWord( 0xba ) 自己 .mc = 自己 .readSignedWord( 0xbc ) 自己 .md = 自己 .readSignedWord( 0xbe ) def readWord( 自己 、reg): msb = 自己 .i2c.read_byte_data( 自己 .address、reg) lsb = 自己 .i2c.read_byte_data( 自己 .address、reg + 1 ) 値 = (msb << 8 ) + lsb リターン value def readSignedWord( 自己 、reg):msb = 自己 .i2c.read_byte_data( 自己 .address、reg)lsb = 自己 .i2c.read_byte_data( 自己 .address、reg + 1 ) 場合 (msb> 127 ): msb = msb - 256 値 = (msb << 8 ) + lsb リターン value def readUT( 自己 ): 自己 .i2c.write_byte_data( 自己 .address、 0xf4 、 0x2e )time.sleep( 0.0045 )ut = 自己 .readWord( 0xf6 ) リターン ut def readTemperature( 自己 ):ut = 自己 .readUT()x1 = ((ut - 自己 .ac6) * 自己 .ac5)>> 15 x2 = ( 自己 .mc << 11 ) / (x1 + 自己 .md) 自己 .b5 = x1 + x2 リターン (( 自己 .b5 + 8 )>> 4 ) / 10.0 def readUP( 自己 ): 自己 .i2c.write_byte_data( 自己 .address、 0xf4 、 0x34 + ( 自己 .OSS << 6 )) 遅延 = ( 2 + ( 3 << 自己 .OSS)) / 1000.0 time.sleep(delay) msb = 自己 .i2c.read_byte_data( 自己 .address、 0xf6 ) lsb = 自己 .i2c.read_byte_data( 自己 .address、 0xf7 ) xlsb = 自己 .i2c.read_byte_data( 自己 .address、 0xf8 ) アップ = (msb << 16 ) + (lsb << 8 ) + xlsbアップ = up> >( 8 - 自己 .OSS) リターン up def readPressure( 自己 ): アップ = 自己 .readUP() b6 = 自己 .b5 - 4000 x1 = ( 自己 .b2 * (b6 * b6)>> 12 )>> 11 x2 = ( 自己 .ac2 * b6)>> 11 x3 = x1 + x2 b3 = ((( 自己 .ac1 * 4 + x3)<> 2 x1 = ( 自己 .ac3 * b6)>> 13 x2 = ( 自己 .b1 * ((b6 * b6)>> 12 ))>> 16 x3 = ((x1 + x2) + 2 )>> 2 b4 = ( 自己 .ac4 * (x3 + 32768 ))>> 15 b7 = (up - b3) * ( 50000 >> 自己 .OSS) 場合 (b7 < 0x80000000 ): p = (b7 << 1 ) / b4 その他 : p = (b7 / b4)<> 8 ) * (p> > 8 ) x1 = (x1 * 3038 )>> 16 x2 = ( - 7357 * p)>> 16 p + = (x1 + x2 + 3791 )>> 4 リターン p i2c = smbus.SMBus( 0 ) bmp085 = BMP085(i2c、 0x77 ) t = bmp085.readTemperature() p = bmp085.readPressure() 印刷 "温度:%。2f C" % t 印刷 "圧力:%。2f hPa" % (p / 100 ) 詳細:ラズベリーパイの読み取り値BMP085温度と圧力

製造プロセス

  1. RaspberryPi温度ロガー
  2. LabVIEWを使用したRaspberryPiの温度プロファイル
  3. 1線式DS18B20センサーとRaspberryPiを使用して温度を測定します
  4. RaspberryPi温度および湿度ネットワークモニター
  5. DS18B20で温度を読み取る|ラズベリーパイ2
  6. ラズベリーパイの温度監視
  7. RASPBERRYPIによる温度測定
  8. Raspberry piを使用したTMP006温度センサーPythonライブラリ、
  9. PythonとRaspberryPiの温度センサー
  10. ラズベリーパイの簡単な温度と湿度
  11. ラズベリーパイで温度を監視する