【Arduino】 デジタル温度湿度センサー (DHT11)

LESSON 031

デジタル温度湿度センサーで温度を測る

 

○ DHT11は湿度測定と温度測定をデジタル信号で出力する温度湿度センサです。
        • 温湿度センサモジュール​
          DHT11の仕様​
           動作電圧 DC 3.3V~5.5V​
           温度センサ NTCサーミスタ​
             精度 ±2℃(@25℃)​
           湿度センサ 有機ポリマー​
             精度 ±5% RH(@25℃)​
           
        • NTCサーミスタとは、温度の変化により抵抗値が変化するサーミスタ(セラミックスの抵抗体)を用いて温度を測定します。
            
        • 感湿材料(有機ポリマー)の吸湿/脱湿によって変化する抵抗を用いて湿度を測定します。
           
        • DHT11の測定の出力信号は40bit構成の同期クロックが含まれたシリアルデータを出力します。
           
          DHT11の出力信号は下記の様な信号になります。このサイクルは1秒程度掛かります。
           
           
          40bitの信号は下記の様の出力させます。
          湿度(High)- 湿度(Low)- 温度(High)- 温度(Low)- パリティビットの順番
           
            
○ 温度・湿度センサー DHT11 の信号配置
   ① DHT11 本体
       ワイヤーが20m以下の場合はプルアップ抵抗 5kΩ程度推奨
   ② DHT11 のモジュール 版
  
        • 製造メーカーによってピン配置は異なります。
             

目 次

    • 構成部品
    • 配線図
    • スケッチ
    • 結果
    • まとめ
       
構成部品

Arduino​
USBケーブル​
DHT11
ジャンパー線 

      
配線図  

  GPIO 2     ⇒ DHT11 ー OUT
  5V         ⇒ DHT11 ー 5V    

  GND     ⇒  DHT11 ー GND
  
  
         
スケッチ《 test026》 

   
#include "DHT.h"
const int DHT_data = 2;
float Humi,Temp;
#define DHTTYPE DHT11
DHT dht(DHT_data, DHTTYPE);
void setup() {
  Serial.begin(9600);
  dht.begin();
}
void loop() {
  delay(1000);
  Humi = dht.readHumidity();
  Temp = dht.readTemperature();
  Serial.print("湿度: ");
  Serial.print(Humi);
  Serial.print("%  温度: ");
  Serial.print(Temp);
  Serial.println("°C ");
}
   

  

解説
#include “DHT.h” 
  DHTとの通信を可能にするライブラリで,温度・湿度結果を2進数から10進数で返します。

  
#define DHTTYPE DHTxx
   DHTセンサの設定
 
DHT 変数(DHTの出力ピン, DHTTYPE);
  DHT変数の設定
       

  • void setup()

      変数.begin();
        DHT変数の初期化
      

  • void loop()

    dht.readHumidity();
       湿度の読込み
     
    dht.readTemperature();
       温度の読込み
      

結果 

  

 

     

まとめ

○ DHT11は温度センサ 精度 ±2℃ 湿度センサ 精度 ±5%RH のため、精度はあまり良くないが、一つ上のDHT22の方が温度 精度 ±0.5℃。湿度 精度 ±2%RHは高くなそりに伴いそりに伴い値段も高額になります。

       
○ Arduino を 学ぶ上で書籍やWebpageを参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。

目次