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

BMP180I2Cデジタル気圧センサー

BMP180デバイスは、デジタル気圧センサーです。これは、I2Cインターフェースを介してセンサーへのアクセスを提供する小さなモジュールで利用できます。これにより、最小限の配線でRaspberryPiに簡単に接続できます。

私のモジュールは、5ピンヘッダー付きの15x13mmの小さなPCBです。ピンの順序は他のモジュールによって異なる場合があるため、ラベルに注意して、Piから正しいワイヤを接続してください。

BMP180はBoschによって製造されており、公式のBMP180データシートにはすべての技術的な詳細が含まれています。

I2Cインターフェースの構成

このモジュールを使用するには、Raspberry PiでI2Cインターフェイスを有効にする必要があります。これは、デフォルトでは有効になっていないためです。これは非常に簡単なプロセスであり、「RaspberryPiでのI2Cインターフェイスの有効化」チュートリアルで説明されています。

ハードウェアの接続

次の表は、モジュールがRaspberyr PiのGPIOヘッダー(P1)にどのように接続されているかを示しています。図については、私のGPIOヘッダーガイドを参照してください。

モジュールPCB 説明 GPIOヘッダーピン
VCC 3.3V P1-01
GND グラウンド P1-06
SCL I2C SCL P1-05
SDA I2C SDA P1-03
3.3V

これはブレッドボードのセットアップの図です。モジュールの4本のピンをPiに直接接続する場合は、4本のメス-メスワイヤのみが必要です。

ブレッドボードの図は、Fritzingで定義したカスタムパーツを使用しています。ピン配置が異なる他のモジュールも利用できるため、このチュートリアルに示されているものと異なる場合は、正しいピンをPiに接続していることを確認してください。

デバイスが接続され、Piの電源がオンになっている場合、「i2cdetect」コマンドはアドレス0x77のデバイスを表示するはずです。

Pythonスクリプトの例

センサーから圧力と温度のデータを読み取るPythonスクリプトの例を次に示します:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495798 #!/ usr / bin / python インポート smbus インポート 時間 から ctypes インポート c_short デバイス = 0x77 #デフォルトのデバイスI2Cアドレス #bus =smbus.SMBus(0)#Rev 1Piは0を使用します バス = smbus.SMBus( 1 #Rev 2Piは1​​を使用します def convertToString(data): #バイナリデータを変換する簡単な関数 #文字列 リターン str ((data [ 1 ] + 256 * データ[ 0 ])) / 1.2 def getShort(data、index): #データから2バイトを符号付き16ビット値として返します リターン c_short((data [index] << 8 + data [index + 1 ])。value def getUshort(data、index): #データから2バイトを符号なし16ビット値として返します リターン (data [index] << 8 + data [index + 1 ] def readBmp180Id(addr = デバイス): #アドレスを登録 REG_ID = 0xD0 (chip_id、chip_version) = bus.read_i2c_block_data(addr、REG_ID、 2 リターン (chip_id、chip_version) def readBmp180(addr = デバイス): #アドレスの登録 REG_CALIB = 0xAA REG_MEAS = 0xF4 REG_MSB = 0xF6 REG_LSB = 0xF7 #制御レジスタアドレス CRV_TEMP = 0x2E CRV_PRES = 0x34 #オーバーサンプル設定 オーバーサンプル = 3 #0-3 #キャリブレーションデータを読み取る #EEPROMからキャリブレーションデータを読み取る cal = bus.read_i2c_block_data(addr、REG_CALIB、 22 #バイトデータを単語値に変換する AC1 = getShort(cal、 0 AC2 = getShort(cal、 2 AC3 = getShort(cal、 4 AC4 = getUshort(cal、 6 AC5 = getUshort(cal、 8 AC6 = getUshort(cal、 10 B1 = getShort(cal、 12 B2 = getShort(cal、 14 MB = getShort(cal、 16 MC = getShort(cal、 18 MD = getShort(cal、 20 #温度の読み取り bus.write_byte_data(addr、REG_MEAS、CRV_TEMP) time.sleep( 0.005 (msb、lsb) = bus.read_i2c_block_data(addr、REG_MSB、 2 UT = (msb << 8 + lsb #プレッシャーを読む bus.write_byte_data(addr、REG_MEAS、CRV_PRES + (OVERSAMPLE << 6 )) time.sleep( 0.04 (msb、lsb、xsb) = bus.read_i2c_block_data(addr、REG_MSB、 3 UP = ((msb << 16 + (lsb << 8 + xsb)>>( 8 - OVERSAMPLE) #温度を調整する X1 = ((UT - AC6) * AC5)>> 15 X2 = (MC << 11 / (X1 + MD) B5 = X1 + X2 温度 = (B5 + 8 )>> 4 #圧力を調整する B6 = B5 - 4000 B62 = B6 * B6>> 12 X1 = (B2 * B62)>> 11 X2 = AC2 * B6>> 11 X3 = X1 + X2 B3 = (((AC1 * 4 + X3)< + 2 )>> 2 X1 = AC3 * B6>> 13 X2 = (B1 * B62)>> 16 X3 = ((X1 + X2) + 2 )>> 2 B4 = (AC4 * (X3 + 32768 ))>> 15 B7 = (UP - B3) * 50000 >> OVERSAMPLE) P = (B7 * 2 / B4 X1 = (P>> 8 * (P>> 8 X1 = (X1 * 3038 )>> 16 X2 = - 7357 * P)>> 16 プレッシャー = P + ((X1 + X2 + 3791 )>> 4 リターン (温度 / 10.0 、pressure / 100.0 def main(): (chip_id、chip_version) = readBmp180Id() 印刷 "チップID:" 、chip_id 印刷 "バージョン:" 、chip_version 印刷 (温度、圧力) = readBmp180() 印刷 "温度:" 、温度、 "C" 印刷 "Pressure:" 、プレッシャー、 "mbar" 場合 __ name__ = = "__ main __" main()

次のコマンドを使用して、このスクリプトをPiに直接ダウンロードすることをお勧めします:

 wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bmp180.py 

または、ブラウザでこのリンクを使用してください。

それを実行するには、次のコマンドを使用できます:

詳細:BMP180I2Cデジタル気圧センサー


製造プロセス

  1. インフィニオン:超小型気圧センサー
  2. インフィニオンが高精度のデジタルターボMAPセンサーを発表
  3. デジタル磁気センサーの基礎
  4. デザインキットは、光学センサーで血圧を測定します
  5. 気圧センサーは精度を向上させます
  6. RaspberryPi温度ロガー
  7. Raspberry Pi 1-Wireデジタル温度計センサー(DS18B20)
  8. JAVAのRaspberryPiデジタルホールセンサー
  9. デジタル光センサー
  10. 液体金属ウェアラブル圧力センサー
  11. ピエゾ抵抗センサーとは?