- Published on
Raspberry Piに「HTU21D」を接続し制御する
1542文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは小型で手軽に利用できるシングルボードコンピュータであり、様々なセンサーやモジュールを接続して利用することが可能です。この記事では、湿度と温度を測定するセンサー「HTU21D」をRaspberry Piに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. HTU21Dセンサーの概要
HTU21Dは、湿度と温度を同時に測定できるデジタルセンサーです。I2Cプロトコルを使用して通信し、Raspberry Piなどのシングルボードコンピュータで容易に利用できます。このセンサーは、精度が高く、低消費電力で動作する特長があります。
2. HTU21Dの接続
HTU21DをRaspberry Piに接続するには、4つのピンがあります。
- VCC: 3.3Vの電源
- GND: 接地
- SDA: I2Cデータライン
- SCL: I2Cクロックライン
これらをRaspberry Piの対応するピンに接続します。
3. Pythonコードの作成
Raspberry PiでHTU21Dを制御するためには、Python言語を使用します。まず、Raspberry Piにsmbus
ライブラリがインストールされていることを確認しましょう。次に、以下のPythonコードを作成します。
import smbus
import time
# HTU21DのI2Cアドレス
HTU21D_ADDR = 0x40
# I2Cバスの初期化
bus = smbus.SMBus(1)
def read_sensor():
# 温度の測定コマンド送信
bus.write_byte(HTU21D_ADDR, 0xF3)
time.sleep(0.1)
# データの読み取り
data = bus.read_i2c_block_data(HTU21D_ADDR, 0xE3, 2)
# 温度の計算
raw_temperature = (data[0] << 8) + data[1]
temperature = -46.85 + (175.72 * raw_temperature / 65536.0)
# 湿度の測定コマンド送信
bus.write_byte(HTU21D_ADDR, 0xF5)
time.sleep(0.1)
# データの読み取り
data = bus.read_i2c_block_data(HTU21D_ADDR, 0xE5, 2)
# 湿度の計算
raw_humidity = (data[0] << 8) + data[1]
humidity = -6 + (125 * raw_humidity / 65536.0)
return temperature, humidity
# メインプログラム
try:
while True:
temp, hum = read_sensor()
print(f'Temperature: {temp:.2f} °C, Humidity: {hum:.2f} %')
time.sleep(2)
except KeyboardInterrupt:
pass
finally:
print('Program terminated.')
このコードはHTU21Dから温度と湿度を読み取り、それをRaspberry Piのコンソールに表示します。適宜、データの取得間隔や表示方法を変更することができます。
4. コードの実行と確認
Pythonコードを保存し、Raspberry Pi上で実行します。温度と湿度の値が表示されれば、HTU21Dが正常に動作していることを確認できます。
これで、Raspberry PiにHTU21Dを接続し、温度と湿度を制御するための基本的な手順が完了しました。この情報を基に、より複雑なプロジェクトを構築していくことができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚