logo
Published on

Raspberry Piに「MS5611」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは小型で汎用性が高く、さまざまなセンサーやデバイスを制御するための優れたプラットフォームです。この記事では、気圧センサー「MS5611」をRaspberry Piに接続し、制御する方法について解説します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

1. MS5611気圧センサーの概要

MS5611は、大気圧および温度を測定するためのデジタル気圧センサーモジュールです。I2C通信プロトコルを使用してデータを送受信します。Raspberry Piと組み合わせて使用することで、気圧の変化や温度の計測が可能です。

2. MS5611の接続

MS5611は通常、4つのピンから構成されています。

  • VCC: 3.3Vの電源
  • GND: 接地
  • SCL: I2Cクロックライン
  • SDA: I2Cデータライン

これらのピンをRaspberry Piに接続します。Raspberry Piには通常、I2Cピンが用意されており、それに対応するピンに接続します。

3. Raspberry Piの設定

Raspberry PiでI2Cを有効にするために、以下の手順に従います。

  1. Raspberry Piの設定を開きます。
  2. 「Raspberry Pi Configuration」を選択し、「Interfaces」タブに移動します。
  3. 「I2C」を有効にします。

4. Pythonコードの作成

Pythonを使用してMS5611を制御するためのコードを書きます。以下は、smbus ライブラリを使用した簡単な例です。

import smbus
import time

# MS5611のI2Cアドレス
MS5611_ADDRESS = 0x77

# I2Cバスの初期化
bus = smbus.SMBus(1)

# MS5611にリセットコマンドを送信
bus.write_byte(MS5611_ADDRESS, 0x1E)

# 1秒待機してセンサーがリセットを完了するのを待つ
time.sleep(1)

# 気圧データの取得
bus.write_byte(MS5611_ADDRESS, 0x48)
time.sleep(0.02)  # 20ms待機
pressure_data = bus.read_i2c_block_data(MS5611_ADDRESS, 0x00, 3)

# 温度データの取得
bus.write_byte(MS5611_ADDRESS, 0x58)
time.sleep(0.02)  # 20ms待機
temperature_data = bus.read_i2c_block_data(MS5611_ADDRESS, 0x00, 3)

# データの変換
pressure = (pressure_data[0] << 16 | pressure_data[1] << 8 | pressure_data[2]) >> 6
temperature = (temperature_data[0] << 16 | temperature_data[1] << 8 | temperature_data[2]) >> 6

# データの表示
print(f"気圧: {pressure} Pa")
print(f"温度: {temperature / 100.0} ℃")

このコードは、MS5611から気圧と温度のデータを読み取り、それを単位に変換して表示する簡単な例です。

5. コードの実行と確認

コードを保存し、ターミナルで実行してMS5611からのデータを確認します。正しく接続されていれば、気圧と温度の情報が表示されるはずです。

これで、Raspberry PiにMS5611を接続し、Pythonコードを使用して気圧センサーを制御する手順が完了しました。利用者はこれをベースにして、気象観測などのプロジェクトを進めることができます。