■ デジタル 温度&湿度センサー SHT11・DHT22 を制御する ■


 1つのセンサーモジュールで、温度と湿度を測定できる、SHT11 (SENSIRION) と、DHT22 (Aosong Electronics) の2種類のセンサーを、AVRマイコンで制御します。
 両センサーは、温度と湿度の計測値をデジタル・データで取得できるので、ノイズの影響を抑え精度の良い測定が可能です。
 通信はシリアル・データで行われるので、配線数が少なく、長距離の設置も容易です。


 型  名 SHT11 DHT22(AM2302)
 電源電圧  2.4V 〜 5.5V  3.3V 〜 6V
 消費電力(電流)  測定中:MAX 1mA
 待機中:MAX 1.5μA
 測定中:MAX 1.5mA
 待機中:MAX 50μA
 測定範囲 温度  -40 〜 123.8℃  -40 〜 80℃
湿度  0 〜 100%RH  0 〜 100%RH
 精  度 温度  ±0.4℃  <±0.5℃
湿度  ±3.0%RH  ±2%RH
 感度と解像度
(分解能)
温度  0.01℃ 12/14bit  0.1℃ 16bit
湿度  0.05%RH 8/12bit  0.1%RH 16bit
 再 現 性 温度  ±0.1℃  ±0.2℃
湿度  ±0.1%RH  ±1%RH
 湿度ヒステリシス  ±1%RH  ±0.3%RH
 長期安定性 温度  <0.04℃ / 年  
湿度  <0.5%RH / 年  ±0.5%RH / 年
 サンプリング周期  1秒以上  2秒以上
 接  続  2線式(電源込みで4線)  1線式(電源込みで3線)

 ・制御のテストは、当ページに掲載の
  AVR & BASCOM-AVR トレーニング・ボード
  を使用しています。
 
 ・もちろん、各種のAVRやポートを選択することも
  可能です。



SHT11 (SENSIRION)
 
・測定範囲: 温度 -40℃〜123.8℃ ±0.4℃  湿度 0% 〜100% ±3%RH
・解像度は、温度0.01℃、湿度0.05%RHなので、小数点以下2桁まで測定ができ
 ます。
・センサーとの通信は2線式で、クロック[CLK]とデータ[DATA]の同期式です。
・I2C規格に似ていますが、通信のフォーマットが違うので、混在はできません。
・サンプリング周期は1秒ですが、温度と湿度を交互に測定しますので、個々の
 測定間隔は2秒です。
SHT11 日本語マニュアル

・このセンサーのシリーズには、SHT10、SHT15、SHT71、SHT75がありますが、
 精度と形状の違いなので、同じプログラムが使用できます。

 
回 路
 
・回路図は、SHT11とDHT22の共用です。
・データ/クロック線[DATA/SCK]に接続するポートは、任意に選択できます。
・データ線[DATA]は、必ず4.7K〜10KΩの抵抗器で、電源からプルアップして下さい。
 (距離が長い場合は4.7KΩ)
 抵抗器の接続は、マイコン側・センサー側のどちらでも可能です。
・センサーとの距離が長くなる場合は、シールド線を使用して下さい。
 
回 路 図  GIF版 SHT11_DHT22Cir.gif  PDF版 SHT11_DHT22Cir.pdf
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。

 
プログラム
 
・Timerの1秒割り込みで、1秒毎に温度と湿度を交互に測定し、LCDの1行目に表示します。
 (1秒割り込みルーチンに、時計機能を持たせることもできます)
・温度および湿度の測定は、それぞれの測定開始コマンドを送信してから、12bit時で80mS、14bit時で
 320mS待つ必要があります。
・測定終了は、データ線[DATA]が[L]になることでも検出できるので、掲載のプログラムでは[L]レベルを
 検出してから計測データを読み出して表示します。
・LCDの2行目には、受信した3バイトの16進(HEX)データと、チェックサムの計算結果が表示されます。
・計測処理と表示処理がモジュール化してありますので、用途に合わせて使用して下さい。
・センサーからの測定値は、特定の係数(マニュアル参照)によって補正する必要があり、計算値に
 2通りの方法があります。
 ○ 「V3」−整数のみで計算できるので、プログラム容量が少なくできます。
 ○ 「V4」−小数点演算が必要になるので、プログラム量、処理時間共に多くなりますが、湿度値の
   精度が改善されます。
 
 
・エラー表示
・「Error: no ACK」 −SHT11が接続されていない、または機能していない。
  SHT11の接続を確認して下さい。
・「Error: CRC error」 −SHT11との通信にノイズ等の影響があった、またはデータ線[DATA]が
  [L]レベル。 ケーブル等のノイズ対策を行って下さい。データ線[DATA]を確認して下さい。
・「Error: Time out」 −温度と湿度の変換中に、SHT11との通信が途絶えた。
  SHT11の故障やケーブルの接触不良を確認して下さい。
 
・いずれのエラー状態も、通信が回復した時点で通常の動作に戻ります。

● プログラムの容量節約のため、湿度変換係数に「V3」を使用したバージョン。
プログラム  テキスト形式 ソースファイル  SHT11TestV3_101.TXT (18.7KB)
 BASCOM-AVR用 ソースファイル  SHT11TestV3_101.bas (18.7KB)
 
● 湿度変換係数に、精度が最適化された「V4」を使用したバージョン。
プログラム  テキスト形式 ソースファイル  SHT11TestV4_101.TXT (19.6KB)
 BASCOM-AVR用 ソースファイル  SHT11TestV4_101.bas (19.6KB)
 
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)






DHT22 (AM2302) (Aosong Electronics)
 
・測定範囲: 温度 -40 〜 80℃ ±0.5℃  湿度 0% 〜100% ±2%RH
・解像度は、温度0.1℃、湿度0.1%RHなので、小数点以下1桁まで測定ができ
 ます。
・センサーとの通信は1線式で、データ線[DATA]のみの非同期式です。
・1-Wire規格に似ていますが、通信のフォーマットが違うので、混在はできません。
・仕様上は、センサーとの距離を20mまで伸ばすことができます。
・センサーがケースに内蔵されているので、取扱や設置が簡単です。
・サンプリング周期は2秒で、温度と湿度を同時に測定します。
 
・DHT22の日本語マニュアルが見つからないので、私的に翻訳してあります。
DHT22 日本語マニュアル
 
 個人で使用するために翻訳した物を掲載しておりますので、翻訳間違いや誤字による、いかなる
 損害にも責任を負いません。


 
回 路
 
・回路図は、SHT11とDHT22の共用です。
・データ線[DATA]に接続するポートは、任意に選択できます。
・データ線[DATA]は、必ず4.7K〜10KΩの抵抗器で、電源からプルアップして下さい。
 (距離が長い(20m)場合は4.7KΩ)
 抵抗器の接続は、マイコン側・センサー側のどちらでも可能です。
・電源ラインが数十cmより長くなる場合は、VDD-GND間に0.1μFのコンデンサーを入れて下さい。
 (センサーの近くへ)
・センサーとの距離が長くなる場合は、シールド線を使用して下さい。
 
回 路 図  GIF版 SHT11_DHT22Cir.gif  PDF版 SHT11_DHT22Cir.pdf
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。

 
プログラム
 
・Timerの1秒割り込みで、2秒毎に温度と湿度を同時に測定し、LCDの1行目に表示します。
 (1秒割り込みルーチンに、時計機能を持たせることもできます)
・LCDの2行目には、受信した5バイトの16進(HEX)データが表示されます。
・計測処理と表示処理がモジュール化してありますので、用途に合わせて使用して下さい。
 (2秒毎にこのルーチンを呼び出すだけで、温度と湿度値が得られます)
・受信したデータは、そのまま温度・湿度値として利用できます。
・マイナス温度値のデータ表現が、通常の16進表記と異なりますので注意して下さい。
 
 
・エラー表示
・「Time out」 −DHT22が接続されていない、または機能していない。
  SHT11の接続を確認して下さい。
・「CRC error」 −DHT22との通信にノイズ等の影響があった、またはデータ線[DATA]が[L]レベル。
  ケーブル等のノイズ対策を行って下さい。データ線[DATA]を確認して下さい。
 
・いずれのエラー状態も、通信が回復した時点で通常の動作に戻ります。

プログラム  テキスト形式 ソースファイル  DHT22Test_101.TXT (13.5KB)
 BASCOM-AVR用 ソースファイル  DHT22Test_101.bas (13.5KB)
 
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)






SHT11 と DHT22 の同時比較
 
プログラム
 
・上記のSHT11とDHT22の制御プログラムを併用し、比較試験を行うプログラムです。
・SHT11は1秒毎、DHT22は2秒毎に通信を行います
・LCDの1行目(上)に、SHT11の温度・湿度値を表示します。 (係数は「V3」)
・LCDの2行目(下)に、DHT22の温度・湿度値を表示します。
 
 
・エラー表示は、各センサーの項目と同じです。

プログラム  テキスト形式 ソースファイル  SHT11DHT22V3_101.TXT (25.8KB)
 BASCOM-AVR用 ソースファイル  SHT11DHT22V3_101.bas (25.8KB)
 
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)





   電子工作の部屋 Top へ 前のページへ戻る