logo
Published on

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

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piはコンパクトかつ拡張性が高いシングルボードコンピュータで、様々なセンサーやモジュールを接続して利用することができます。この記事では、湿度と温度を計測できる「HTU31」センサーをRaspberry Piに接続し、制御する方法について解説します。

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

1. HTU31センサーの概要

HTU31は、湿度と温度を同時に計測できるI2C接続のセンサーモジュールです。非常に精密で信頼性が高く、Raspberry Piとの組み合わせが容易です。このセンサーを利用することで、環境モニタリングや気象観測などのプロジェクトが可能になります。

2. HTU31の接続

HTU31をRaspberry Piに接続するには、I2C接続用のピンを使用します。通常、HTU31には以下のようなピンがあります。

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

これらのピンをRaspberry Piの対応するピンに接続します。

3. Raspberry Piの設定

Raspberry PiでI2Cを有効にする必要があります。以下の手順で有効化します。

  1. Raspberry Piを起動し、ターミナルを開く。
  2. sudo raspi-config を入力してEnterキーを押す。
  3. "Interfacing Options" → "I2C" に移動し、I2Cを有効にする。
  4. リブートして変更を適用する。

4. Pythonコードの作成

HTU31から湿度と温度のデータを読み取るためのPythonコードを作成します。smbusモジュールが必要なので、未インストールの場合は以下のコマンドでインストールします。

sudo apt-get install -y python3-smbus

次に、Pythonスクリプトを作成します。

import smbus
import time

# HTU31 I2Cアドレス
HTU31_ADDRESS = 0x40

# HTU31コマンド
TRIGGER_MEASUREMENT = 0xF5

# I2Cバス
bus = smbus.SMBus(1)

def read_htu31():
    # 温度と湿度の計測開始
    bus.write_byte(HTU31_ADDRESS, TRIGGER_MEASUREMENT)
    time.sleep(0.1)

    # データの読み取り
    data = bus.read_i2c_block_data(HTU31_ADDRESS, 0, 6)

    # 温度と湿度の計算
    temperature = ((data[0] << 8) + data[1]) * 175.0 / 65535.0 - 45.0
    humidity = ((data[3] << 8) + data[4]) * 100.0 / 65535.0

    return temperature, humidity

while True:
    temp, hum = read_htu31()
    print(f'Temperature: {temp:.2f}°C, Humidity: {hum:.2f}%')
    time.sleep(2)

5. コードの実行

Pythonスクリプトを保存し、ターミナルで実行します。

python3 your_script_name.py

これで、Raspberry PiがHTU31センサーから湿度と温度データを読み取り、定期的に表示する準備が整いました。 HTU31のデータを活用して、気象情報の取得や適切な環境制御を行うなど、様々なプロジェクトに応用することができます。