- Published on
Raspberry Piに「HTU31」を接続し制御する
1515文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piはコンパクトかつ拡張性が高いシングルボードコンピュータで、様々なセンサーやモジュールを接続して利用することができます。この記事では、湿度と温度を計測できる「HTU31」センサーをRaspberry Piに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
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を有効にする必要があります。以下の手順で有効化します。
- Raspberry Piを起動し、ターミナルを開く。
sudo raspi-config
を入力してEnterキーを押す。- "Interfacing Options" → "I2C" に移動し、I2Cを有効にする。
- リブートして変更を適用する。
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のデータを活用して、気象情報の取得や適切な環境制御を行うなど、様々なプロジェクトに応用することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚