logo
Published on

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

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは小型で強力なシングルボードコンピュータであり、様々なセンサーやモジュールを接続して利用することができます。この記事では、高精度な温湿度センサー「SHT35」をRaspberry Piに接続し、Pythonを用いて制御する方法について解説します。

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

1. SHT35温湿度センサーの概要

SHT35は、I2CまたはSPIインターフェースを通じて通信することができるデジタル温湿度センサーです。非常に高い精度で温度と湿度を測定することができ、特に気象観測や室内環境モニタリングなどに適しています。

2. SHT35の接続

SHT35をRaspberry Piに接続するには、通常、I2Cを利用します。以下は、基本的な接続の手順です。

  • VCC(赤色): 3.3Vの電源
  • GND(茶色): 接地
  • SCL: I2Cクロック
  • SDA: I2Cデータ

これらを対応するRaspberry Piのピンに接続します。Raspberry Piのモデルによってピンの配置が異なるため、マニュアルを確認してください。

3. Pythonコードの作成

SHT35をPythonで制御するには、smbus ライブラリを使用します。以下は、SHT35から温湿度を読み取る簡単な例です。

import smbus
import time

# I2Cバスの指定(Raspberry Piのモデルによって異なる可能性がある)
bus = smbus.SMBus(1)

# SHT35のI2Cアドレス
sht35_address = 0x44

def read_sht35():
    # 温湿度データの取得コマンド送信
    bus.write_i2c_block_data(sht35_address, 0x2C, [0x06])

    # 読み取り待ち
    time.sleep(0.5)

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

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

    return temp, humidity

try:
    while True:
        temperature, humidity = read_sht35()
        print(f'Temperature: {temperature:.2f}°C, Humidity: {humidity:.2f}%')
        time.sleep(2)

except KeyboardInterrupt:
    pass
finally:
    print("Program stopped.")

4. コードの実行と動作確認

コードを実行する前に、Raspberry PiにPythonの smbus ライブラリがインストールされていることを確認してください。必要であれば、以下のコマンドでインストールできます。

sudo apt-get install python3-smbus
sudo apt-get install i2c-tools

コードを実行し、温湿度が正しく表示されることを確認します。これで、Raspberry PiにSHT35を接続し、Pythonを用いて温湿度センシングを行う基本的な手順が完了しました。