Skip to main content

Grove - 温度&湿度センサー (DHT11)

note

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

Grove - 温度&湿度センサー (DHT11)

この温度&湿度センサーは、事前に校正されたデジタル出力を提供します。独自の容量性センサー要素が相対湿度を測定し、温度は負の温度係数(NTC)サーミスタによって測定されます。このセンサーは優れた信頼性と長期的な安定性を備えています。ただし、このセンサーは0度以下の温度では動作しないことに注意してください。

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

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

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

SenseCAP 産業用センサー
S2101 空気温度&湿度

特徴


  • 相対湿度および温度測定
  • 全範囲温度補償済み校正
  • デジタル信号
  • 長期的な安定性
  • 長距離伝送(>20m)
  • 低消費電力
tip

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

アプリケーションアイデア


  • 消費者向け製品
  • 気象ステーション
  • 湿度調整器
  • エアコン

仕様


主な仕様

項目最小値
PCBサイズ2.0cm*4.0cm
インターフェース2.0mmピッチピンヘッダー
IO構造SIG,VCC,GND,NC
ROHSYES

電気的特性

項目条件最小値標準値最大値単位
VCC-3.3-5ボルト
測定時電流供給-1.3-2.1mA
平均電流供給-0.5-1.1mA
測定範囲湿度20%-90%RH
温度0-50°C
精度湿度--±5%RH
温度±2°C
感度湿度-1%RH
温度1°C
再現性湿度±1%RH
温度±1°C
長期的安定性±1%RH/年
信号収集周期2

対応プラットフォーム

ArduinoRaspberry Pi
note

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

はじめに

MCUがトリガー信号を送信すると、センサーは低消費電力モードからアクティブモードに切り替わります。トリガー信号の後、センサーはMCUに応答信号を送り返し、40ビットの収集データが送信され、新しい信号収集がトリガーされます。(センサーからMCUに送信される40ビットの収集データは、トリガー信号が来る前にすでに収集されています。)1つのトリガー信号でセンサーから1回分の40ビット応答データを受信します。MCUとセンサー間の通信にはシングルバスデータが使用されます。 通信プロセスは以下の通りです:

1回の通信には5msかかります。データの上位ビットが最初に送信されます。信号データは40ビットで構成されており、16ビットの湿度データ、16ビットの温度データ、8ビットのチェックサムで構成されています。データ形式は以下の通りです:

湿度の整数部分8ビット+湿度の小数部分8ビット
+温度の整数部分8ビット+温度の小数部分8ビット
+チェックサム8ビット。
note

Arduinoを初めて使用する場合は、開始前にGetting Started with Arduinoを必ずご覧ください。

Arduinoで遊ぶ

ハードウェア

  • ステップ1. 以下のものを準備してください:
Seeeduino V4.2ベースシールド温度&湿度センサー
今すぐ購入今すぐ購入今すぐ購入
  • ステップ 2. Grove - Temperature&Humidity Sensor を Grove-Base Shield のポート D2 に接続します。

  • ステップ 3. Grove - Base Shield を Seeeduino に差し込みます。

  • ステップ 4. USB ケーブルを使用して Seeeduino を PC に接続します。

note

Grove Base Shield を持っていない場合でも、以下のように Grove - Temperature and Humidity Sensor Pro を Seeeduino に直接接続することができます。

SeeeduinoTemperature&Humidity Sensor
5V
GND
接続なし
D2

ソフトウェア

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

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

  • ステップ 3. Arduino IDE を再起動します。File --> Examples --> Grove_Humidity_Temperature_Sensor-master --> DHTtester のパスを通じて「DHTtester」サンプルを開きます。このデモを通じて、環境の温度と相対湿度の情報を読み取ることができます。

note

この Grove - Temperature&Humidity Sensor と、もう一つの製品 Grove-Temperature&Humidity Sensor pro は、このライブラリを共有しています。どちらの製品を使用している場合でも、ボードのセンサーの定義行を有効にし、他の仕様の定義行をコメントアウトすることを確認してください。例えば、Grove - Temperature&Humidity Sensor で使用されているセンサーは DHT 11 です。そのため、センサー仕様の定義部分は以下のようにする必要があります。

#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

ライブラリのデフォルト設定は DHT 22 なので、手動で DHT 11 に変更する必要があります。

  • ステップ 4. デモをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。

  • ステップ 5. Arduino IDE の Serial Monitor を開きます。Tool-> Serial Monitor をクリックするか、++ctrl+shift+m++ キーを同時に押します。すべてが正常に動作していれば、温度が表示されます。

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

Codecraft を使って遊ぶ

ハードウェア

ステップ 1. Grove - Temperature&Humidity Sensor を Base Shield のポート D2 に接続します。

ステップ 2. Base Shield を Seeeduino/Arduino に差し込みます。

ステップ 3. USB ケーブルを使用して Seeeduino/Arduino を PC に接続します。

ソフトウェア

ステップ 1. Codecraft を開き、Arduino サポートを追加し、メインプロシージャを作業エリアにドラッグします。

note

Codecraft を初めて使用する場合は、Codecraft を Arduino で使用するためのガイドも参照してください。

ステップ 2. 以下の画像のようにブロックをドラッグするか、このページの最後でダウンロードできる cdc ファイルを開きます。

プログラムを Arduino/Seeeduino にアップロードします。

success

コードのアップロードが完了すると、Serial Monitor に温度と湿度が表示されます。

Raspberry Pi で遊ぶ (Raspberry Pi 用 Grove Base Hat を使用)

ハードウェア

  • ステップ 1. このプロジェクトで使用するもの:
Raspberry PiGrove Base Hat for RasPiGrove - Temp & Hum Sensor
今すぐ購入今すぐ購入今すぐ購入
  • ステップ 2. Grove Base Hat を Raspberry Pi に差し込みます。
  • ステップ 3. 温度と湿度センサーを Base Hat のポート 12 に接続します。
  • ステップ 4. USB ケーブルを使用して Raspberry Pi を PC に接続します。
note

ステップ 3 では、温度と湿度センサーを 任意の GPIO ポート に接続することができますが、対応するポート番号でコマンドを変更することを確認してください。

ソフトウェア

caution

Raspberry Pi OS >= Bullseye を使用している場合は、Python3 のみでこのコマンドラインを使用する必要があります。

  • ステップ 1. ソフトウェアの設定 に従って開発環境を構成します。
  • ステップ 2. grove.py ライブラリをクローンしてソースファイルをダウンロードします。
cd ~
git clone https://github.com/Seeed-Studio/Seeed_Python_DHT.git
  • ステップ 3. 以下のコマンドを実行してコードを実行します。
cd Seeed_Python_DHT
sudo python3 setup.py install
cd ~/Seeed_Python_DHT/examples
python3 dht_simpleread.py

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

import time
import seeed_dht
def main():

# DHT11/DHT22 用
sensor = seeed_dht.DHT("11", 12)
# DHT10 用
# sensor = seeed_dht.DHT("10")

while True:
humi, temp = sensor.read()
if not humi is None:
print('DHT{0}, humidity {1:.1f}%, temperature {2:.1f}*'.format(sensor.dht_type, humi, temp))
else:
print('DHT{0}, humidity & temperature: {1}'.format(sensor.dht_type, temp))
time.sleep(1)


if __name__ == '__main__':
main()
success
すべてが正常に動作すれば、以下の結果が表示されるはずです。

pi@raspberrypi:~/Seeed_Python_DHT/examples $ python3 dht_simpleread.py
DHT11, humidity 39.2%, temperature 29.1*
DHT11, humidity 39.2%, temperature 29.1*
DHT11, humidity 39.2%, temperature 29.1*
DHT11, humidity 39.1%, temperature 29.1*
DHT11, humidity 40.0%, temperature 29.1*
DHT11, humidity 39.9%, temperature 29.1*
DHT11, humidity 40.3%, temperature 29.1*
DHT11, humidity 42.0%, temperature 29.1*

このプログラムを終了するには、++ctrl+c++ を押してください。

Raspberry Pi で遊ぶ (GrovePi_Plus を使用)

ハードウェア

まず、以下のものを準備してください:

  • ステップ 1. 以下のものを準備してください:
Raspberry PiGrovePi_Plus温湿度センサー
今すぐ購入今すぐ購入今すぐ購入
  • ステップ 2. GrovePi_Plus を Raspberry Pi に接続します。

  • ステップ 3. Grove - 温湿度センサーを GrovePi_Plus の D4 ポートに接続します。

  • ステップ 4. Raspberry Pi を USB ケーブルで PC に接続します。

ソフトウェア

tip

この Wiki では ~/GrovePi/ のパスを使用します。/home/pi/Desktop/GrovePi の代わりに使用することを確認してください。ステップ 2 とステップ 3 で同じパスを使用する必要があります。

note

ファームウェアを更新することを強く推奨します。一部のセンサーでは、更新しないとエラーが発生する可能性があります。

caution

Raspberry Pi OS >= Bullseye を使用している場合は、Python3 のみでコマンドラインを使用する必要があります。

  • ステップ 3. Github リポジトリをクローンします。
cd ~
git clone https://github.com/DexterInd/GrovePi.git

  • ステップ 4. コードを確認します。

cd ~/GrovePi/Software/Python
sudo nano grove_dht_pro.py

コードは以下のようになります:

import grovepi
import math
# Grove 温湿度センサー Pro をデジタルポート D4 に接続します
# この例では青色のセンサーを使用します。
# SIG,NC,VCC,GND
sensor = 4 # センサーはデジタルポート 4 に接続します。

# temp_humidity_sensor_type
# Grove Base Kit には青色のセンサーが付属しています。
blue = 0 # 青色のセンサー。
white = 1 # 白色のセンサー。

while True:
try:
# この例では青色のセンサーを使用します。
# 最初のパラメータはポート、2 番目のパラメータはセンサーの種類です。
[temp,humidity] = grovepi.dht(sensor,blue)
if math.isnan(temp) == False and math.isnan(humidity) == False:
print("temp = %.02f C humidity =%.02f%%"%(temp, humidity))

except IOError:
print ("Error")

次に ++ctrl+x++ を押して nano を終了します。

note

Grove - 温湿度センサーと Grove - 温湿度センサー Pro は同じ Python コード grove_dht_pro.py を共有しています。唯一の違いは、[temp,humidity] = grovepi.dht(sensor,blue) の文です。Grove - 温湿度センサーにはパラメータ blue を使用し、Grove - 温湿度センサー Pro には white を使用します。デフォルト値は blue なので、このセンサーの場合コードを変更する必要はありません。

  • ステップ 5. 以下のコマンドを実行して値を取得します。
sudo python3 grove_dht_pro.py

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


pi@raspberrypi:~/GrovePi/Software/Python $ sudo python3 grove_dht_pro.py
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%
temp = 26.00 C humidity =40.00%

Wio Terminal (ArduPy) で遊ぶ

ハードウェア

  • ステップ 1. 以下を準備してください:
Wio TerminalGrove - 温湿度センサー (DHT11)
今すぐ購入今すぐ購入
  • ステップ 2. Grove - 温湿度センサーを Wio Terminal の D0 ポートに接続します。

  • ステップ 3. Wio Terminal を USB Type-C ケーブルで PC に接続します。

ソフトウェア

  • ステップ 1. ArduPy 入門 に従って Wio Terminal 上で ArduPy 開発環境を構築します。

  • ステップ 2. 以下のコマンドを使用して、ArduPy ファームウェアに DHT ライブラリが含まれていることを確認します。詳細については こちら を参照してください。

aip install Seeed-Studio/seeed-ardupy-dht/archive/main.zip
aip build
aip flash
  • ステップ 3. 以下のコードをコピーして ArduPy-DHT.py として保存してください:
from arduino import grove_dht
from machine import LCD, Sprite
import time

dht = grove_dht(0,11)
lcd = LCD() # TFT LCD を初期化
spr = Sprite(lcd) # バッファを初期化

def main(): # メイン関数
spr.createSprite(320, 240) # バッファを作成
while True: # ループ
spr.fillSprite(spr.color.WHITE) # 背景を塗りつぶす

# 2つの塗りつぶし矩形
spr.fillRect(0,0,160,240,spr.color.DARKGREEN) # 色付き矩形を塗りつぶす
spr.fillRect(160,0,160,240,spr.color.BLUE)

# 温度と湿度のテキスト描画
spr.setTextSize(2) # テキストサイズを設定
spr.setTextColor(spr.color.WHITE,spr.color.DARKGREEN) # テキスト色を設定
spr.drawString("Temperature", 15, 65) # 文字列を描画
spr.setTextColor(spr.color.WHITE,spr.color.BLUE)
spr.drawString("Humidity", 190, 65)

# 測定値を取得
t = dht.temperature # 温度測定値を変数に格納
h = dht.humidity # 湿度測定値を変数に格納

# 温度測定値を表示
spr.setTextSize(4)
spr.setTextColor(spr.color.WHITE,spr.color.DARKGREEN)
spr.drawNumber(int(t),50,110) # 数値を表示
spr.drawString("C", 100, 110)

# 湿度測定値を表示
spr.setTextColor(spr.color.WHITE,spr.color.BLUE) # テキスト色を設定
spr.drawNumber(int(h),180,110)
spr.drawString("%RH", 235, 110)

spr.pushSprite(0,0) # LCD にプッシュ
time.sleep_ms(100)

print("temperature:",t,"C", end =" ")
print("humidity:",h,"%RH")

if __name__ == "__main__": # main.py から実行されているか確認
main() # 関数を実行
  • ステップ 4. ArduPy-DHT.py を分かりやすい場所に保存してください。以下のコマンドを実行し、<YourPythonFilePath>ArduPy-DHT.py の保存場所に置き換えてください。
aip shell -n -c "runfile <YourPythonFilePath>"
# 例:
# aip shell -n -c "runfile /Users/user/Desktop/ArduPy-DHT.py"

これで、温度と湿度の情報がコマンドプロンプト/ターミナルウィンドウおよび Wio Terminal の LCD に表示されます。

C:\Users\user>aip shell -n -c "runfile /Users/user/Desktop/ArduPy-DHT.py"
Positional argument (COM4) takes precedence over --open.
Connected to ardupy
temperature: 31.0 C humidity: 85.0 %RH
temperature: 31.0 C humidity: 85.0 %RH
temperature: 31.0 C humidity: 85.0 %RH
temperature: 31.0 C humidity: 87.0 %RH
temperature: 31.0 C humidity: 87.0 %RH
temperature: 31.0 C humidity: 87.0 %RH
temperature: 31.0 C humidity: 87.0 %RH
temperature: 31.0 C humidity: 87.0 %RH
temperature: 31.0 C humidity: 87.0 %RH
temperature: 31.0 C humidity: 87.0 %RH

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

リソース

プロジェクト

トイレ管理システム: このシステムを使用することで、複数の人が1つのトイレを効率的に共有できます。

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

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

Loading Comments...