- Published on
Raspberry Piに「SHT31」を接続し制御する
1528文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは豊富なGPIOピンを備え、さまざまなセンサーやデバイスを制御するのに適しています。この記事では、温度および湿度センサー「SHT31」をRaspberry Piに接続し、Pythonを使用して制御する手順について説明します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. SHT31センサーの概要
SHT31は、高精度な温度および湿度を測定できるデジタルセンサーです。I2C通信を使用してデータを取得し、Raspberry Piと容易に連携できます。このセンサーは、室内環境のモニタリングやIoTプロジェクトなどに広く利用されています。
2. SHT31の接続
SHT31をRaspberry Piに接続するには、I2C通信を利用します。通常、以下のように接続します。
- VCC: 3.3Vの電源
- GND: 接地
- SCL: I2Cクロックライン
- SDA: I2Cデータライン
3. Pythonコードの作成
Raspberry Pi上でPythonを使用してSHT31を制御するためのコードを作成します。まず、smbus
ライブラリをインストールします。
sudo apt-get update
sudo apt-get install -y python3-smbus
sudo apt-get install -y i2c-tools
次に、Pythonスクリプトを作成します。
import smbus
import time
# SHT31 I2Cアドレス
SHT31_I2C_ADDR = 0x44
# 温度および湿度データ取得コマンド
CMD_MEASURE_HIGH_PRECISION = b'\x24\x00'
# I2Cバスの初期化
bus = smbus.SMBus(1) # Raspberry Pi上のI2Cバス番号によって変更
def read_sht31():
# 温度および湿度のデータ取得
bus.write_i2c_block_data(SHT31_I2C_ADDR, 0x2C, [0x06])
time.sleep(0.5)
data = bus.read_i2c_block_data(SHT31_I2C_ADDR, 0x00, 6)
# データ変換
temp = (data[0] << 8) + data[1]
temperature = -45 + (175 * temp / 65535.0)
hum = (data[3] << 8) + data[4]
humidity = 100 * hum / 65535.0
return temperature, humidity
try:
while True:
temperature, humidity = read_sht31()
print(f'Temperature: {temperature:.2f}°C, Humidity: {humidity:.2f}%')
time.sleep(2)
except KeyboardInterrupt:
pass
finally:
bus.close()
4. スクリプトの実行と確認
スクリプトを保存したら、ターミナルでスクリプトを実行します。
python3 your_script_name.py
これで、Raspberry PiがSHT31センサーから温度および湿度のデータを読み取り、表示する準備が整いました。センサーが正しく接続されている場合、定期的に温度および湿度の値が表示されるはずです。
これで、Raspberry PiにSHT31を接続し、Pythonを使用して制御する基本的な手順が完了しました。センサーデータを活用して、様々なプロジェクトやアプリケーションを開発することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚