Skip to main content

Grove - 温湿度センサー(SHT31)

Grove - 温湿度センサー(SHT31)は、高信頼性、高精度、高速応答、統合型の温度・湿度センサーです。このモジュールで使用されているセンサー(チップ)は、SensirionのCMOSens®技術で設計されています。チップは十分に校正、線形化、補償されており、デジタル出力を提供します。

このモジュールの標準精度は、±2%RH(相対湿度)および**±0.3°C**(温度)です。このモジュールは3.3Vと5Vの両方に対応しているため、電圧レベルシフターは必要ありません。このモジュールはI2Cシリアルバスを使用して通信し、最大1MHzの速度で動作できます。また、この製品をより使いやすくするために、高度に抽象化されたライブラリも提供しています。

センサーの使用は簡単です。Seeeduino(Arduino互換)の場合、Groveケーブルを使用してこのブレークアウトボードをメインコントロールボードに接続するだけです。その後、GitHubで提供されているライブラリとサンプル/デモコードを使用してデータを取得できます。Base Shieldなしでアルドゥイーノを使用している場合は、VINピンを5V電圧ピンに、GNDをグラウンドに、SCLをI2Cクロック(アナログ5)に、SDAをI2Cデータ(アナログ4)に接続するだけです。

産業用センサーへのアップグレード

SenseCAP S2110コントローラーS2100データロガーを使用することで、Groveを簡単にLoRaWAN®センサーに変換できます。Seeedはプロトタイピングをサポートするだけでなく、堅牢な産業用センサーのSenseCAP シリーズでプロジェクトを拡張する可能性も提供します。

SenseCAP S210x シリーズの産業用センサーは、環境センシングのためのすぐに使える体験を提供します。大気質監視のためのより高い性能と堅牢性を持つS2101ワイヤレス温湿度センサーを参照してください。このシリーズには、土壌水分、気温・湿度、光強度、CO2、EC、および8-in-1気象ステーションのセンサーが含まれています。次の成功する産業プロジェクトには、最新のSenseCAP S210xをお試しください。

SenseCAP 産業用センサー
S2101 大気温度・湿度

バージョン

製品バージョン変更点リリース日
Grove - 温湿度センサー(SHT31) V1.0初期版2016年1月

特徴

  • 高信頼性、高精度、高速応答時間
  • Grove互換で使いやすい
  • デジタル出力のために十分に校正、線形化、補償済み
  • 高度に抽象化された開発ライブラリ
  • I2Cアドレス 0x44
note

複数のI2Cデバイスを使用したい場合は、Software I2Cを参照してください。

tip

Groveモジュールの詳細については、Grove Systemを参照してください。

仕様

パラメータ
入力電圧 (VCC)3.3ボルトまたは5ボルト
I/O論理レベルVCCに基づく3.3ボルトまたは5ボルト
動作電流100 μA
動作温度-40–125 ℃
温度センサー範囲-40–125 ℃、±0.3°C精度
湿度センサー範囲0% - 100%(相対湿度)、±2%精度
センサーチップSHT31(データシート)
ポートI2C
重量4 g(ブレークアウトボード)、パッケージ全体で各9 g
寸法40(長さ)×20(幅) mm

サポートプラットフォーム

ArduinoRaspberry Pi
caution

上記でサポートされているとして言及されているプラットフォームは、モジュールのソフトウェアまたは理論的な互換性の指標です。ほとんどの場合、Arduinoプラットフォーム用のソフトウェアライブラリまたはコード例のみを提供しています。すべての可能なMCUプラットフォーム用のソフトウェアライブラリ/デモコードを提供することは不可能です。したがって、ユーザーは独自のソフトウェアライブラリを作成する必要があります。

Arduinoで遊ぶ

ハードウェア

  • ステップ1. 以下のものを準備してください:
Seeeduino V4.2Base ShieldGrove - 温湿度センサー(SHT31)
今すぐ入手今すぐ入手今すぐ入手
  • ステップ 2. Grove - Temperature&Humidity Sensor(SHT31) を Grove-Base Shield の I2C ポートに接続します。
  • ステップ 3. Grove - Base Shield を Seeeduino に差し込みます。
  • ステップ 4. USB ケーブルで Seeeduino を PC に接続します。

ハードウェア概要

caution

使用中はこの製品に触れたり、振動させたりしないでください。そうしないと、測定データの精度に影響します。

note

Grove Base Shield がない場合は、以下のように Grove - Temperature&Humidity Sensor(SHT31) を Seeeduino に直接接続することもできます。

SeeeduinoGrove - Temperature&Humidity Sensor(SHT31)
5VRed
GNDBlack
SDAWhite
SCLYellow

ソフトウェア

  • ステップ 1. Github からライブラリをダウンロードします。

  • ステップ 2. ライブラリのインストール方法を参照して、Arduino 用のライブラリをインストールします。

  • ステップ 3. Arduino IDE を再起動します。新しいスケッチを開き、以下のコードを新しいスケッチにコピーします。

#include <Arduino.h>
#include <Wire.h>
#include "SHT31.h"

SHT31 sht31 = SHT31();

void setup() {
Serial.begin(9600);
while(!Serial);
Serial.println("begin...");
sht31.begin();
}

void loop() {
float temp = sht31.getTemperature();
float hum = sht31.getHumidity();
Serial.print("Temp = ");
Serial.print(temp);
Serial.println(" C"); //The unit for Celsius because original arduino don't support speical symbols
Serial.print("Hum = ");
Serial.print(hum);
Serial.println("%");
Serial.println();
delay(1000);
}
  • ステップ 4. デモをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。

  • ステップ 5. Tool-> Serial Monitor をクリックして Arduino IDE の Serial Monitor を開きます。または ++ctrl+shift+m++ キーを同時に押します。ボーレートを 9600 に設定します。すべてが正常に動作すれば、結果が表示されます。

結果は以下のようになります:

Raspberry Pi で使用する

ハードウェア

  • ステップ 1. このプロジェクトで使用するもの:
Raspberry piGrove Base Hat for RasPiGrove - Temp&Hum Sensor(SHT31)
今すぐ入手今すぐ入手今すぐ入手
  • ステップ 2. Grove Base Hat を Raspberry に差し込みます。
  • ステップ 3. Grove - Temperature&Humidity Sensor (SHT31) を Base Hat の I2C ポートに接続します。
  • ステップ 4. USB ケーブルで Raspberry Pi を PC に接続します。

ソフトウェア

  • ステップ 1. Setting Software に従って開発環境を設定します。
  • ステップ 2. 関連する仮想環境に入ります。
source ~/grove_env/env/bin/activate
cd ~/grove_env/grove.py/grove
  • ステップ 3. 以下のコマンドを実行してコードを実行します。
#Run code
python grove_temperature_humidity_sensor_sht3x.py
#View Code
less grove_temperature_humidity_sensor_sht3x.py

以下は grove_temperature_humidity_sensor_sht3x.py のコードです。


import time
from grove.i2c import Bus


def CRC(data):
crc = 0xff
for s in data:
crc ^= s
for _ in range(8):
if crc & 0x80:
crc <<= 1
crc ^= 0x131
else:
crc <<= 1
return crc


class GroveTemperatureHumiditySensorSHT3x(object):

def __init__(self, address=0x44, bus=1):
self.address = address

# I2C bus
self.bus = Bus(bus)

def read(self):
# high repeatability, clock stretching disabled
self.bus.write_i2c_block_data(self.address, 0x24, [0x00])

# measurement duration < 16 ms
time.sleep(0.016)

# read 6 bytes back
# Temp MSB, Temp LSB, Temp CRC, Humididty MSB, Humidity LSB, Humidity CRC
data = self.bus.read_i2c_block_data(self.address, 0x00, 6)

if data[2] != CRC(data[:2]):
raise ValueError("temperature CRC mismatch")
if data[5] != CRC(data[3:5]):
raise ValueError("humidity CRC mismatch")


temperature = data[0] * 256 + data[1]
celsius = -45 + (175 * temperature / 65535.0)
humidity = 100 * (data[3] * 256 + data[4]) / 65535.0

return celsius, humidity


Grove = GroveTemperatureHumiditySensorSHT3x


def main():
sensor = GroveTemperatureHumiditySensorSHT3x()
while True:
temperature, humidity = sensor.read()

print('Temperature in Celsius is {:.2f} C'.format(temperature))
print('Relative Humidity is {:.2f} %'.format(humidity))

time.sleep(1)


if __name__ == "__main__":
main()

  • このコードを実行します

python grove_temperature_humidity_sensor_sht3x.py

すべてが正常に動作すれば、以下の結果を確認できます

回路図オンラインビューア

この部品は geppetto で利用可能です。Seeed と Geppeto を使った簡単なモジュラー電子設計です。今すぐ構築してください。geppetto.seeedstudio.com

リソース

プロジェクト

MediaTek オープンソースハードウェア植物健康モニター

技術サポート & 製品ディスカッション

弊社製品をお選びいただき、ありがとうございます!弊社製品での体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。さまざまな好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。

Loading Comments...