JPY | USD

小型の湿度および温度センサで重要な環境データを効率的に収集

著者 Stephen Evanczuk

Digi-Keyの北米担当編集者 の提供

温度と湿度は、建物や電子システムの構造的完全性に影響を与えるため、これらのパラメータを正確かつ高い信頼性で測定する能力は、民生用、産業用、および医療用のさまざまなアプリケーションの設計に不可欠です。特に湿度と温度が健康に与える影響は大きく、これらのパラメータの変動が不快感からエアロゾルによるウイルス感染まで、さまざまな影響を与えることがわかっています。

このように、さまざまなアプリケーションで温度や湿度を感知する必要があるため、設計者は、要求に応えるためにコスト効率がよく、導入が容易な小型フォームファクタのソリューションを必要としています。遠隔地やアクセスが困難な場所でバッテリを長持ちさせるためには、必要な精度と安定性を維持しつつ、消費電力を最小限に抑えることも必要でしょう。

この記事では、環境の温度と湿度がインフラ、電子システム、そして人間の健康に与える影響について説明します。また、TE Connectivity Measurement Specialtiesの小型湿度および温度センサを紹介し、その応用方法も示します。このセンサを使用することで、設計者は多様なアプリケーションにおける重要な測定要件をより簡単に満たすことができます。

正確な湿度および温度測定の重要性

湿度と温度を正確に監視して調整する能力は、暖房、換気、空調システム(HVAC)、睡眠時無呼吸症候群のための持続陽圧呼吸(CPAP)機器、さらには人間の基本的な健康状態など、幅広い分野で重要な役割を果たします。

よく耳にする「相対湿度」(RH)とは、ある温度の空気が保持できる最大の水量に対する空気中の水分量の割合を表す言葉です。温度と同様に、湿度も高すぎたり低すぎたりすると、人間に不快感を与えたり、構造物、機械、電子機器にダメージを与えたりします。

建物内の湿度が高いと、腐食やカビの発生、コンクリートなどの素材の劣化につながります。電子機器の場合、湿度が高いと結露によるショートが発生することがあり、特に温度の低い場所から湿度の高い場所に機器を持ち込んだ場合には注意が必要です。

湿度が低いことは、素材の収縮や紙製品の破損、静電気の発生などの原因となります。静電気の蓄積が進むと、静電気放電が発生して電子機器が損傷したり、空気中の揮発性有機化合物(VOC)が多い環境では発火したりする恐れがあります。そのため、RHセンサは建物内で安全かつ健康的な環境を提供するうえで重要な役割を果たしています。人間の健康やウェルネスを育むという点でも同様の懸念が増しています。

一般的に人間が不快に感じるのは湿度よりも温度ですが、湿度が低すぎたり高すぎたりすると健康に影響を与えることがわかっています。湿度が高かったり低かったりすると、喘息やアレルギの症状が悪化したり、健康な人でも睡眠の質が低下したりします。湿度が非常に低い場合、細胞組織が乾燥し、目や鼻に炎症を起こすことがあります。CPAPメーカーは、ユーザーに適切な湿度の空気を提供するために、通常は湿度センサを使用しています。

湿度の測定と制御の必要性は、公衆衛生においてより広く重要となっています。研究者は、人間の生理機能に影響を与える湿度レベルは、極端な乾燥や湿気に限らないことを発見しました。通常、鼻腔内の水分は、エアロゾル化したウイルス(微細な水滴に浮遊しているウイルス)を排出するのに役立ちます。鼻腔が乾燥していると、エアロゾル化した病原体が呼吸器系により深く侵入し、感染症を引き起こしやすくなります[1]。これらの生理的要因などにより、エアロゾル化したインフルエンザウイルスの感染力は、湿度が40% RH以下の場合に著しく高くなります(図1)[2]。さらに最近の研究では、RHが40%から60%の間では新型コロナウイルスCOVID-19の感染が抑えられ、さらにはCOVID-19の原因となるSARS-CoV-2ウイルスを分解する役割を果たしていることが示唆されています[3]。

RH値の低さとエアロゾル化したウイルスの感染力増加の関係を示すグラフ図1:RH値の低下とエアロゾル化したウイルスの感染力増加の関係を示す研究により、より正確な測定ソリューションへの需要が高まっています。(画像提供:TE Connectivity Measurement Specialties)

湿度と温度の正確な測定は多種多様なアプリケーションで重要ですが、各設計要件により、開発者が効果的なソリューションを容易に構築するのには限界があります。非常に低い長期ドリフトと高精度が求められるだけではありません。多くのアプリケーションで、HVAC湿度調節器やCPAPの湿度制御ユニット、精密な環境モニタリングシステムなど、装置の種類を問わず、理想的な測定ポイントにセンサを簡単に設置できるように、最小限の設置面積で迅速な測定と低消費電力動作を実現するセンサが必要とされています。正確なデータを必要とするアプリケーションは増え続けていますが、TE ConnectivityのHTU31D湿度および温度デジタルセンサを使えば、そうしたアプリケーションの要件を満たすことができます。

重要な測定要件に対するソリューション

小型で高精度なHTU31Dは、民生機器から医療および業務用モニタリングシステムまで幅広い用途に対応しています。本製品は、2.5 x 2.5 x 0.9mmの6ピンパッケージで、完全に較正されているため、現場での追加較正は必要ありません。小さなフットプリントにより、開発者は従来のセンシングソリューションには小さすぎた場所にもセンサを設置することができます。また、簡単に入手できるI²Cバッファレベルシフタを使用し、I²Cシリアルインターフェースを介して遠隔地に設置されたHTU31Dをホストコントローラに接続することができます。

HTU31Dは、標準精度±2%、RHヒステリシス±0.7%、標準長期ドリフト0.25% RH/年以下で、0~100%のRHを測定することができます。このデバイスの温度測定範囲は-40~125°C、標準精度は±0.2°C、標準長期ドリフトは0.04℃/年です。また、信頼性を維持するため、高湿度時の結露を防止するための発熱体や、測定エラー、発熱体エラー、内部メモリエラーを検出する内部診断機能がセンサに統合されています。

湿度と温度を測定するベースラインモードでは、センサの分解能は0.020% RHと0.040°Cであり、変換時間はそれぞれ1ミリ秒(ms)と1.6ミリ秒です。また、より高度な要求に応えるために、変換時間は長くなるものの、分解能を上げることができる動作モードも用意されています。各センサの最大分解能モードでは、HTU31Dは0.007% RHを7.8ミリ秒の変換時間で、0.012°Cを12.1ミリ秒の変換時間で提供することができます。

バッテリ駆動の製品など、一部のアプリケーションではデバイスの低消費電流も同様に重要な特性です。ベースライン分解能モードで動作し、1秒間に1回のRHと温度の測定を行う場合、デバイスが通常必要とするのはわずか1.04マイクロアンペア(μA)です。非アクティブ時には、標準消費が0.13μAのスリープモードにすることができます。もちろん、結露の除去や温度センサの動作確認のために内部のヒータを短時間使用した場合、同様に短時間ではありますが、電流は大きく増加します。

シンプルなハードウェアとソフトウェアのインターフェース

湿度および温度デジタルセンサHTU31Dは、シンプルなインターフェースを備えており、開発者の設計にハードウェアとソフトウェアを統合することができます。3~5.5Vの電源電圧(VDD)とグランド(GND)ピンに加え、I²C規格のシリアルデータ(SDA)とシリアルクロック(SCL)ピンを備えたハードウェアインターフェースを採用しています。残りの2つのピンに、リセット(RST)ピンとアドレス(IC_ADD)ピンがあります。IC_ADDをGNDまたはVDDに接続すると、デバイスはそれぞれI²Cアドレス0x40または0x41に応答し、2台のHTU31Dデバイスが干渉することなく同じI²Cバスを共有することができます。

ホストプロセッサは、基本的なI²Cシリアルトランザクションを使用してコマンドを送信し、結果を読み取ります。コマンドは、I²Cアドレスと、それに続くコマンドバイト(温度と湿度の同時測定、湿度のみの測定、リセット、ヒータのオン/オフ、デバイスのシリアル番号、診断など、対応する関数を指定するように各ビットが設定されたバイト)からなる2バイトのシーケンスを使用します。

たとえば、温度とRH(T & RH)の同時測定を行う場合、ホストはアドレスバイトと、変換コマンドビットおよび温度とRHの測定に必要な分解能を指定するビットを含むバイトを送信します。デバイスはシンプルなポーリング方式をサポートしているため、ホストプロセッサは2バイトの変換コマンドシーケンスを送信した後、データシートに指定されている分解能依存の時間を待機してから、アドレスバイト(0x40または0x41)とT & RH読み取りコマンドバイト(0x0)の2バイトシーケンスを発行します(図2、上段)。HTU31Dは、要求された各温度と湿度の測定値の生データの上位バイトと下位バイトを送信して応答します(図2、下2段)。この生データの値は、HTU31Dのデータシートに記載されている2つの式を用いて、対応する物理的な温度と湿度の値に変換されています。

TE Connectivity HTU31D湿度および温度デジタルセンサの図(クリックして拡大)図2:湿度および温度デジタルセンサHTU31Dは、温度とRHの測定値を迅速に得るためのシンプルなインターフェースを備えています。(画像提供:TE Connectivity Measurement Specialties)

図2に示すように、HTU31Dは各16ビットのデータシーケンスの後に、デバイスが生成したデータの巡回冗長検査(CRC)値を含むバイトを配置します。このCRC-8チェックサムは、データ送信中の個々のビットエラーやダブルビットエラー、あるいは8ビットウィンドウ内のビットエラーのクラスタを検出することができます。ホストプロセッサは、この送信されたCRC値と、受信したデータから計算したCRC値を比較することで、送信に失敗したことを迅速に特定し、測定コマンドの繰り返し、HTU31Dの統合発熱体の短時間オン、リセットの発行、測定システムの故障の可能性についてのユーザーへの警告など、適切な措置を取ることができます。

また、送信シーケンスのもう1つの特徴として、何らかのオーバーライドの必要性が生じた場合に、ホストの通常の完了前にレスポンスシーケンスを停止することができます。通常のトランザクションでは、HTU31Dは最初のデータバイトの後に肯定応答(ack)、データシーケンスの最後に最終的な否定応答(nack)とシーケンス停止を求めます(図2を再度参照)。開発者はこの機能を利用して、CRCデータや湿度データが不要な場合や、デバイスのリセットやヒータの起動など新たなコマンドが緊急に必要な場合には、それ以上の送信を停止することができます。ここでは、データまたはCRCバイトの後に期待されるackを送信するのではなく、ホストは最後のnack/stopシーケンスを発行して、センサからのデータ送信を直ちに終了させることができます。

TEのHTU31Dは、電気的にも機能的にもシンプルなインターフェースを備えていますが、高感度のセンサを採用する場合は、搭載されている他のデバイスとの電気的または熱的な相互作用による測定結果の乱れを避けるために、慎重な物理的設計が必要となります。同様に、コマンドシーケンスプロトコルや値変換式の実装にエラーがあると、発展段階の製品の湿度および温度センシング機能の評価や試作が遅れることがあります。MikroElektronikaのアドオンボードと関連ソフトウェアを使用することで、開発者は潜在的な実装上の問題を回避し、すぐに設計および開発を開始することができます。

迅速な試作と開発の加速化

MikroElektronikaのMIKROE-4306はHTU31DベースのTemp & Hum 14 Clickアドオンボードであり、28.6 x 25.4mmの基板上にセンサの電気的インターフェースを完全に実装しています(図3、右)。

MikroElektronika Temp & Hum 14 Clickボードと設計回路図の画像(クリックして拡大表示)図3:MikroElektronika Temp & Hum 14 Clickボード(右)は、カスタム開発用のリファレンス設計回路図(左)のほか、HTU31Dセンサをベースにした測定ソリューションをすぐに評価して迅速に試作するためのプラットフォームを提供します。(画像提供:MikroElektronika)

MikroElektronikaのmikroBUS Clickおよびその他プロバイダのアドオンボードと同じように、MikroElektronika Temp & Hum 14 Clickボードは、MikroElektronika Fusion開発ボードなどのホストプロセッサボードに接続して、MikroElektronikaのオープンソースmikroSDKソフトウェア開発フレームワークとともに使用するように設計されています。

MikroElektronikaは、特定のClickボードや開発ボードのドライバやボードサポートを提供するソフトウェアパッケージでmikroSDK環境を補完しています。MikroElektronikaは、Temp & Hum 14 Clickボードに対して、Fusionや他のMikroElektronika製ボードファミリ用のTemp-Hum 14 Clickソフトウェアパッケージのバインディングを提供しています。

Temp-Hum 14 Clickソフトウェアパッケージは、アプリケーションプログラミングインターフェース(API)を介してアクセス可能なHTU31D固有の関数ライブラリを使用した開発をサポートします。付属のサンプルアプリケーションでは、以下のようなシンプルなAPI関数を使って、HTU31Dセンサの操作を実演しています。

  • 前述の変換シーケンスを実行するtemphum14_set_conversion
  • センサのT & RHデータシーケンスを実行するtemphum14_get_temp_and_hum
  • HTU31Dのオンチップ診断レジスタからエラー状態を読み出すtemphum14_get_diagnostic

サンプルアプリケーションコードでは、システムの初期化、アプリケーションの初期化、アプリケーションタスクの実行を行います。Listing 1は、NXPのMK64FN1M0VDC12 Arm® Cortex®-M4 Kinetis K60マイクロコントローラを基盤としたMikroElektronika Fusion for KINETIS v8 MIKROE-3515開発ボード上で動作するように設計されたソフトウェアパッケージのスニペットを示しています。

コピー
#include "Click_TempHum14_types.h"
#include "Click_TempHum14_config.h"
#include "Click_TempHum14_other_peripherals.h"
 
temphum14_diagn_t status_data;
uint32_t ser_numb;
float temperature;
float humidity;
char log_text[ 50 ];
 
[code deleted]
 
void system_init ( )
{
    mikrobus_gpioInit( _MIKROBUS1, _MIKROBUS_RST_PIN, _GPIO_OUTPUT );
    mikrobus_i2cInit( _MIKROBUS1, &TEMPHUM14_I2C_CFG[0] );
    mikrobus_logInit( _LOG_USBUART, 9600 );
    Delay_ms( 100 );
    
    mikrobus_logWrite( "-----------------------------", _LOG_LINE );
    mikrobus_logWrite( "       Temp-Hum 14 click     ", _LOG_LINE );
    mikrobus_logWrite( "-----------------------------", _LOG_LINE );
    Delay_ms( 100 );
}
 
void application_init ( )
{
    temphum14_i2c_driver_init( (temphum14_obj_t)&_MIKROBUS1_GPIO, 
                               (temphum14_obj_t)&_MIKROBUS1_I2C, 
                               TEMPHUM14_I2C_SLAVE_ADDR_GND );
    Delay_ms( 100 );
    
    mikrobus_logWrite( "        Hardware Reset       ", _LOG_LINE );
    temphum14_hw_reset( );
    Delay_ms( 100 );
    
    ser_numb = temphum14_get_serial_number( );
    
    LongWordToStr( ser_numb, log_text );
    Ltrim( log_text );
    mikrobus_logWrite( "-----------------------------", _LOG_LINE );
    mikrobus_logWrite( "  Serial Number : ", _LOG_TEXT );
    mikrobus_logWrite( log_text, _LOG_LINE );
    mikrobus_logWrite( "-----------------------------", _LOG_LINE );
    mikrobus_logWrite( "        Software Reset       ", _LOG_LINE );
    temphum14_soft_reset( );
    Delay_ms( 100 );
    
    temphum14_get_diagnostic( &status_data );
    Delay_ms( 10 );
 
    display_diagnostic( );
    Delay_ms( 100 );
}
 
void application_task ( )
{
    temphum14_set_conversion( TEMPHUM14_CONVERSION_HUM_OSR_0_020,
                              TEMPHUM14_CONVERSION_TEMP_0_040 );
    Delay_ms( 10 );
    
    temphum14_get_temp_and_hum( &temperature, &humidity );
    Delay_ms( 10 );
    
    FloatToStr( temperature, log_text );
    mikrobus_logWrite( "  Temperature : ", _LOG_TEXT );
    mikrobus_logWrite( log_text, _LOG_TEXT );
    mikrobus_logWrite( " C", _LOG_LINE );
    
    FloatToStr( humidity, log_text );
    mikrobus_logWrite( "  Humidity    : ", _LOG_TEXT );
    mikrobus_logWrite( log_text, _LOG_TEXT );
    mikrobus_logWrite( " %", _LOG_LINE );
    mikrobus_logWrite( "-----------------------------", _LOG_LINE );
    Delay_ms( 3000 );
}
 
void main ( )
{
    system_init( );
    application_init( );
 
    for ( ; ; )
    {
            application_task( );
    }
}

Listing 1:このMikroElektronikaのサンプルアプリケーションのスニペットは、HTU31Dセンサから温度とRHの測定値を取得するためのシンプルなタスクを初期化して実行するための基本的な設計パターンを示しています。(コードソース:MikroElektronika)

ソフトウェアパッケージに含まれるサンプルアプリケーションは、TE HTU31Dセンサを使用してソフトウェアアプリケーションを実装するための基本的な設計パターンを示しています。Listing 1に示すように、メインルーチンは、HTU31Dセンサを含む低レベルのドライバをセットアップするためにシステム初期化関数(system_init())を呼び出し、アプリケーションリソースを初期化するために関数(application_init())を呼び出すことから始まります。この場合、application_init()は、システムのI²Cドライバをセンサオブジェクトのインスタンスで初期化してから、センサのリセットと関数呼び出し(temphum14_get_diagnostic())を行い、センサの診断結果を取得して診断情報を表示(display_diagnostic())します。

短い初期化フェーズの後、サンプルアプリケーションは、3秒ごとにアプリケーションタスクを呼び出す無限ループに入ります。Listing 1に示すサンプルコードでは、アプリケーションタスクは、前述のようにHTU31Dのベースライン動作モードである0.020%RHの分解能と0.040℃での変換を要求しています。このベースラインモードでは、HTU31DはRHの測定に1ミリ秒、温度の測定に1.6ミリ秒しか必要ありません。サンプルアプリケーションでは、10ミリ秒の遅延(delay_ms(10))を使用して待機時間を調整してから、温度と湿度の値を取得するためのAPI関数(temphum14_get_temp_and_hum())を呼び出します。このライブラリは、HTU31Dからの生の値を物理的な温度や湿度の測定値にするのに必要な変換を行うため、結果として得られた測定値をそのまま使用することができます。この場合は結果を記録するだけです。

このハードウェアプラットフォームおよび関連するソフトウェア環境を使用することで、開発者はHTU31Dセンサアプリケーションを迅速に評価し、試作して、さまざまな分解能で正確なRHと温度の測定値を得ることができます。カスタムハードウェアの開発において、MikroElektronika Temp & Hum 14 Clickボードは、完全な回路図と物理設計を含む完全なリファレンス設計として機能します。カスタムソフトウェア開発のために、Temp-Hum 14 Clickソフトウェアパッケージは、より包括的なアプリケーションを構築するための基本的なテンプレートを提供します。

結論

湿度と温度は、構造物や装置の健全性、そして人間の健康とウェルネスにおいて重要な役割を果たします。しかし、湿度や温度を適切に管理するには、測定精度と広い測定範囲の両方が必要で、従来のセンサソリューションでは限界があり、簡単には実現できませんでした。

TE Connectivity Measurement Specialtiesの湿度および温度センサは、民生用、産業用、医療用アプリケーションにおける新たな測定要件を満たすために必要な、精度、安定性、サイズ、および使いやすさを組み合わせた他に類を見ないソリューションです。

参考:

  1. 周囲の湿度が低いとバリア機能が低下し、インフルエンザ感染に対する自然抵抗力が低下
  2. 模擬的な咳から排出された感染性インフルエンザウイルスの消失に高湿度が効果を示す
  3. SARS-CoV-2をはじめとするエンベロープウイルスの安定性に及ぼす温度と湿度の影響

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、Digi-Key Electronicsの意見、信念および視点またはDigi-Key Electronicsの公式な方針を必ずしも反映するものではありません。

著者について

Stephen Evanczuk

Stephen Evanczuk氏は、IoTを含むハードウェア、ソフトウェア、システム、アプリケーションなど幅広いトピックについて、20年以上にわたってエレクトロニクス業界および電子業界に関する記事を書いたり経験を積んできました。彼はニューロンネットワークで神経科学のPh.Dを受け、大規模に分散された安全システムとアルゴリズム加速法に関して航空宇宙産業に従事しました。現在、彼は技術や工学に関する記事を書いていないときに、認知と推薦システムへの深い学びの応用に取り組んでいます。

出版者について

Digi-Keyの北米担当編集者