Skip to main content

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

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

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

このモジュールの典型的な精度は、相対湿度に対して±2%RH、温度に対して±0.3°Cです。このモジュールは3.3ボルトおよび5ボルトに対応しており、電圧レベルシフターを必要としません。このモジュールはI2Cシリアルバスを使用して通信し、最大1 MHzの速度で動作できます。また、この製品をより簡単に使用できるように、高度に抽象化されたライブラリも提供しています。

センサーの使用は簡単です。Seeeduino(Arduino互換)を使用する場合、このブレイクアウトボードをGroveケーブルを介してメインコントロールボードに接続するだけです。その後、GitHubで提供されているライブラリとサンプル/デモコードを使用してデータを取得できます。Base Shieldを使用しないArduinoを使用する場合は、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 - Temperature&Humidity Sensor(SHT31) V1.0初版2016年1月

特徴

  • 高信頼性、高精度、迅速な応答時間
  • Grove互換で使いやすい
  • デジタル出力用に十分に校正、線形化、補正済み
  • 高度に抽象化された開発ライブラリ
  • I2Cアドレス 0x44
note
複数のI2Cデバイスを使用したい場合は、[Software I2C](https://wiki.seeedstudio.com/ja/Arduino_Software_I2C_user_guide/)を参照してください。
tip
Groveモジュールの詳細については、[Grove System](https://wiki.seeedstudio.com/ja/Grove_System/)を参照してください。

仕様

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

対応プラットフォーム

ArduinoRaspberry Pi
caution
上記で対応していると記載されているプラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム用のソフトウェアライブラリまたはコード例のみを提供しています。すべての可能なMCUプラットフォームに対してソフトウェアライブラリやデモコードを提供することはできません。そのため、ユーザー自身でソフトウェアライブラリを作成する必要があります。

Arduinoで遊ぶ

ハードウェア

  • ステップ 1. 以下のものを準備してください:
Seeeduino V4.2ベースシールドGrove - 温湿度センサー(SHT31)
今すぐ購入今すぐ購入今すぐ購入
  • ステップ 2. Grove - 温湿度センサー(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)
5V
GND
SDA
SCL

ソフトウェア

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

  • ステップ 2. Arduinoライブラリのインストール方法を参照して、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("開始...");
sht31.begin();
}

void loop() {
float temp = sht31.getTemperature();
float hum = sht31.getHumidity();
Serial.print("温度 = ");
Serial.print(temp);
Serial.println(" C"); // Arduinoのデフォルトでは特殊記号がサポートされていないため、摂氏の単位を明示
Serial.print("湿度 = ");
Serial.print(hum);
Serial.println("%");
Serial.println();
delay(1000);
}
  • ステップ 4. デモをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。

  • ステップ 5. Arduino IDEのシリアルモニタを開きます。ツール -> シリアルモニタをクリックするか、++ctrl+shift+m++キーを同時に押します。ボーレートを9600に設定します。すべてが正常に動作していれば、結果が表示されます。

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

Raspberry Piでの使用

ハードウェア

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

ソフトウェア

  • ステップ 1. ソフトウェアの設定に従って開発環境を構成します。
  • ステップ 2. grove.pyライブラリをクローンしてソースファイルをダウンロードします。
cd ~
git clone https://github.com/Seeed-Studio/grove.py
  • ステップ 3. 以下のコマンドを実行してコードを実行します。
cd grove.py/grove
python 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=None):
self.address = address

# I2Cバス
self.bus = Bus(bus)

def read(self):
# 高精度、クロックストレッチング無効
self.bus.write_i2c_block_data(self.address, 0x24, [0x00])

# 測定時間 < 16 ms
time.sleep(0.016)

# 6バイトを読み取る
# 温度MSB, 温度LSB, 温度CRC, 湿度MSB, 湿度LSB, 湿度CRC
data = self.bus.read_i2c_block_data(self.address, 0x00, 6)

if data[2] != CRC(data[:2]):
raise ValueError("温度CRC不一致")
if data[5] != CRC(data[3:5]):
raise ValueError("湿度CRC不一致")

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('摂氏温度: {:.2f} C'.format(temperature))
print('相対湿度: {:.2f} %'.format(humidity))

time.sleep(1)


if __name__ == "__main__":
main()
success

すべてが正常に動作していれば、温度と湿度が表示されます。

pi@raspberrypi:~/grove.py/grove $ python grove_temperature_humidity_sensor_sht3x.py 
摂氏温度: 21.48 C
相対湿度: 51.32 %
摂氏温度: 21.47 C
相対湿度: 51.34 %
摂氏温度: 21.46 C
相対湿度: 51.37 %
^CTraceback (most recent call last):
File "grove_temperature_humidity_sensor_sht3x.py", line 95, in <module>
main()
File "grove_temperature_humidity_sensor_sht3x.py", line 91, in main
time.sleep(1)
KeyboardInterrupt

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

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

リソース

プロジェクト

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

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

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

Loading Comments...