使用小型溫濕度感測器有效收集重要的環境數據

作者:Stephen Evanczuk

資料提供者:DigiKey 北美編輯群

有鑑於溫度及濕度對於建築物與電子系統的結構完整性有所影響,對於許多消費性、工業及醫療應用來說,有能力可準確可靠地測量這些參數是相當重要的。濕度與溫度對於健康的影響特別受到關注,研究指出這些參數的變化會引起的效果,從不適到透過氣霧化病毒造成傳染等。

要在眾多應用中感測溫度與濕度的需求已經變成一種要求,因此設計人員需要符合成本效益、尺寸小巧且又容易部署的解決方案。為了在偏遠或不亦觸及的位置達到長久電池續航力,解決方案的耗電量要相當低,同時還要維持必要的準確度及穩定性。

本文將探討環境溫度與濕度對基礎設施、電子系統及人體健康的影響。接著會介紹並說明如何使用 TE Connectivity Measurement Specialties 的小型溫濕度感測器,以便設計人員在眾多應用中更輕易達到關鍵的量測要求。

準確測量濕度與溫度的重要性

準確監測與調整濕度與溫度的能力,在眾多領域中是重要的一環,包括暖通空調 (HVAC) 系統、治療睡眠呼吸中止症的持續正壓呼吸器 (CPAP) 設備,甚至是基本的人類福祉。

有個熟悉的詞相對濕度 (RH) 代表空氣中的水含量,是指空氣在指定溫度下可容納的最大水量百分比。如同溫度,濕度若太高或太低,都會讓人感到不適,甚至會導致結構、機械與電子設備受損。

建築物裡的濕度高可能會導致水泥和其他材料的腐蝕、發霉甚至崩解。在電子設備中,高濕度會因為水凝現象而導致短路,尤其是設備從涼爽位置搬到潮濕環境中時特別明顯。

低濕度則會導致材料縮小、紙類產品受損以及靜電累積。累積越多後,會產生靜電放電,導致電子裝置受損,以及讓具有高濃度空氣揮發性有機化合物 (VOC) 的環境起火。因此,RH 感測器相當重要,可讓建築物維持安全健康的環境。類似的考量也逐漸在人體健康與福祉方面受到關注。

人們通常比較容易注意到溫度帶來的不適,而非濕度,但過低或過高的濕度其實也會影響健康。高或低濕度可能會讓失眠或過敏者的症狀惡化,導致睡眠品質進一步降低,甚至對健康的人也有影響。在超低濕度下,人體組織會乾燥,導致眼睛或鼻道受刺激。CPAP 製造商通常仰賴濕度感測器來確保設備提供濕度穩定的空氣給使用者。

在公共衛生領域,濕度的測量與控制需求更加重要。研究人員發現,濕度不需要達到極端的乾燥或潮濕,就可對人體生理造成影響。通常鼻道中的濕氣有助於排出氣霧化病毒 (懸浮微粒中的病毒)。鼻道乾燥時,氣霧化病原體就可更深入呼吸系統,因此更容易造成感染 [1]。有鑑於此及其他生理學因素,氣霧化流感病毒的傳染性在濕度低於 40% RH 時明顯較高 (圖 1) [2]。近期的研究更指出,相對濕度介於 40% 至 60% 之間時,有助於減少 COVID-19 的傳染,甚致能降解引起 COVID-19 的 SARS-CoV-2 病毒。

低相對濕度與氣霧化病毒傳染性增加之間的關係圖圖 1:研究指出低相對濕度與氣霧化病毒傳染性增加之間的關係,因此不斷帶動準確測量解決方案的需求。(圖片來源:TE Connectivity Measurement Specialties)

雖然準確測量濕度與溫度在諸多不同應用中相當重要,但相對應的設計要求也讓開發人員想要輕鬆打造有效解決方案時帶來限制。除了需要高準確度以及超低的長期漂移外,許多應用更要求感測器要在最小覆蓋區下提供快速測量與低功率作業,如此即可更輕鬆將感測器安置在理想的測量點,包括 HVAC 濕度調節器、CPAP 濕度控制單元或精密的環境監測系統。TE Connectivity 的 HTU31D 溫濕度數位感測器符合這些要求,可用於越來越多且需要準確數據的應用。

符合關鍵量測要求的解決方案

HTU31D 具有小覆蓋區與高準確度,針對消費性產品、醫療到專業的監測系統等應用進行最佳化。採用六引腳封裝,尺寸為 2.5 x 2.5 x 0.9 mm,經過完整校準,因此無需進行現場校準作業。因為採用小型覆蓋區,因此開發人員可將感測器置放在以往感測解決方案因空間太小而無法放置的位置,並可利用現成的 I²C 緩衝器位準移位器,透過 I²C 序列介面將遠端置放的 HTU31D 連接到主機控制器。

HTU31D 可在 ±2% 典型準確度、±0.7% RH 磁滯,以及低於每年 0.25% RH 的典型長期漂移下,測量 0 至 100% RH。此裝置的溫度測量範圍介於 -40 至 125°C,典型準確度為 ±0.2°C,典型長期漂移為每年 0.04°C。為了維持此可靠度,感測器整合了加熱元件,可在高濕度下避免冷凝,並具有內部診斷功能,可偵測量測誤差、加入元件誤差,以及內部記憶體誤差。

在溫濕度測量的基線模式下,此感測器的解析度為 0.020% RH 和 0.040°C,轉換時間分別為 1 ms 和 1.6 ms。若有更嚴格的要求,此裝置的工作模式可讓開發人員提高解析度,但代價是轉換時間會拉長。各感測器在最大解析度模式下,HTU31D 可提供 0.007% RH,轉換時間為 7.8 ms;0.012°C 時的轉換時間為 12.1 ms。

在某些應用中,例如電池供電式產品,此裝置的低電流消耗量是同等重要的特性。在基線解析度模式以及每秒進行一次 RH 與溫度量測下,此裝置通常僅需要 1.04 μA。在非作用期間,此裝置會進入睡眠模式,此時通常僅消耗 0.13 μA。當然,若短暫使用內部加熱器來清除冷凝現象,或測試溫度感測器的操作情況,則會大幅提高電流消耗量但時間一樣短暫。

簡易的硬體與軟體介面

HTU31D 溫濕度數位感測器可在開發人員的設計中提供簡易的軟硬體整合介面。除了 3 至 5.5 V 電源電壓 (VDD) 以及接地 (GND) 引腳外,此裝置的硬體介面還包括 I²C 標準序列數據 (SDA) 與序列時脈線路 (SCL) 的引腳。剩下的兩個引腳為重置 (RST) 引腳及定址 (IC_ADD) 引腳。IC_ADD 綁定 GND 或 VDD 時,裝置分別會對 0x40 或 0x41 的 I²C 位址有所反應,因此 HTU31D 裝置可共用相同的 I²C 匯流排而不會產生衝突。

主機處理器可透過基本 I²C 序列交易來傳送命令並讀取結果。命令會使用雙位元組序列,由 I²C 位址組成,接著會有一個命令位元組,可設定其個別位元來指定支援的功能,包括溫濕度綜合測量、僅測量濕度、重置、加熱器開啟或關閉、裝置序號以及診斷。

為了進行溫度與 RH 的綜合測量 (T&RH),舉例來說,主機要傳送位址位元組,以及一個位元組,其中含有轉換命令位元,以及指定溫度與 RH 量測所需解析度的位元。此裝置可支援簡易的輪詢方法,因此送出雙位元組轉換命令序列後,主機處理器會先等待規格書所指定的持續時間 (視解析度而定),然後才會發出雙位元組序列,其中含有位址位元組 (0x40 或 0x41),接著是 T&RH 讀取命令位元組 (0x0) (圖 2 的上排)。HTU31D 會有所回應,會針對要求的各次溫度與濕度量測,發出原始值的較高與較低位元組 (圖 2 底部兩排)。原始值會使用 HTU31D 規格書提供的一對方程式,轉換成對應的實際溫度與濕度值。

TE Connectivity 的 HTU31D 溫濕度數位感測器圖 (按此放大)圖 2:HTU31D 溫濕度數位感測器提供直覺的介面,可快速取得溫度與 RH 量測值。(圖片來源:TE Connectivity Measurement Specialties)

如圖 2 所示,HTU31D 會依照各個 16 位元數據序列,其中有個位元組含有裝置所產生的數據循環冗餘檢查 (CRC) 值。此 CRC-8 檢查和能在數據傳輸的任何位置,偵測個別位元錯誤或雙位元錯誤,或在 8 位元間隔中偵測位元錯誤叢集。將此送出的 CRC 值與接收數據運算而來的 CRC 值進行比對,主機處理器即可快速判別失敗的傳輸,並採取適當措施,例如重複量測命令、短暫啟動 HTU31D 整合式加入元件、發出重置,或警告使用者量測系統可能故障。

傳輸序列還有另一個特點,若有覆蓋需求時,能讓主機在正常完成之前停止回應序列。在正常交易下,HTU31D 會在第一個具有最終不認可 (nack) 訊號的數據位元組之後,預期出現認可 (ack) 訊號,然後在數據序列的最末端停止序列 (再次參見圖 2)。開發人員可在不需要 CRC 數據或濕度數據時,或緊急需要新的命令 (如裝置重置或加熱器啟動) 時,使用此功能來停止進一步傳輸。在此並不會在數據或 CRC 位元組之後傳送預期的 ack,主機可發出最終 nack/停止序列,立即終止來自感測器的數據傳輸。

TE 的 HTU31D 提供直覺的電氣與功能介面,但採用任何高度靈敏的感測器都需要謹慎的實體設計,以避免板上其他裝置的電氣或熱互動造成量測假影。同樣地,實作命令序列協定或數值轉換方程式時若有錯誤,會對演進產品中的溫濕度感測功能,延誤其評估與原型製作。MikroElektronika 的附加板及相關軟體能讓開發人員免除潛在的實作問題,並可立即開始設計並開發。

迅速製作原型並加速開發

MikroElektronika 的 MIKROE-4306 HTU31D 架構 Temp & Hum 14 Click 附加板提供完整的感測器電氣介面實作 (圖 3 左側),安裝在 28.6 x 25.4 mm 板上 (圖 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 利用軟體套裝讓 mikroSDK 環境更加完備,可提供驅動程式與板件支援,適合特定的 Click 板件與開發板。針對 Temp & Hum 14 Click 板,MikroElektronika 可將 Temp-Hum 14 Click 軟體套裝綁定 Fusion 和其他 MikroElektronika 板系列。

Temp-Hum 14 Click 軟體套裝可使用 HTU31D 專用的函式庫支援開發作業,可透過應用程式開發介面 (API) 進行存取。隨附的範例應用程式可透過簡易的 API 函式組合展示 HTU31D 感測器的操作,包括:

  • temphum14_set_conversion,可執行之前談到的轉換序列
  • temphum14_get_temp_and_hum,可執行感測器的溫度與相對濕度數據序列
  • temphum14_get_diagnostic,可從 HTU31D 晶片上診斷登錄器讀取錯誤狀態

範例應用程式碼可展示系統初始化、應用程式初始化,並執行應用程式任務。清單 1 顯示軟體套裝的片段,可在 MikroElektronika Fusion for INETIS v8 MIKROE-3515 開發板上運行,其採用 NXPMK64FN1M0VDC12 Arm® Cortex®-M4 Kinetis K60 微控制器 為基礎。

複製
#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( );
    }
}

清單 1:此片段來自 MikroElektronika 範例應用程式,可展示基本的設計樣式,以便初始化並執行簡易任務,從 HTU31D 感測器取得溫度與相對濕度量測結果。(程式碼來源:MikroElektronika)

軟體套裝隨附的範例應用程式,可展示基本的設計樣式,以實作採用 TE HTU31D 感測器的軟體應用程式。如清單 1 所示,主要例行作業一開始會呼叫系統初始化函式 (system_init()) 來設定低階驅動程式,包括 HTU31D 感測器並呼叫函式 (application_init()) 來初始化應用程式資源。在此例中,application_init() 會用感測器物件的執行階段初始化系統的 I²C 驅動器,然後才執行感測器重置及函式呼叫 (temphum14_get_diagnostic()) 來取得感測器的診斷資訊並加以顯示 (display_diagnostic())

短暫初始化階段後,範例應用程式會無限迴圈,每三秒會呼叫一次應用程式任務。在清單 1 的範例程式碼中,應用程式任務會要求以 0.020% RH 解析度與 0.040°C 進行轉換,即之前談到的 HTU31D 基線工作模式。在基線模式中,HTU31D 僅需 1 ms 來測量相對濕度,需 1.6 ms 來測量溫度。範例應用程式會利用 10 ms 的延遲 (delay_ms(10)) 來拉長等待時間,然後才會呼叫 API 函式 temphum14_get_temp_and_hum() 來取得溫度及濕度值。因為函式庫會進行必要的轉變,將 HTU31D 的原始值轉換成實際溫度與濕度測量值,因此得到的測量值可直接使用 - 要記錄此例中的結果即可。

透過此硬體平台及相關的軟體環境,開發人員就可針對 HTU31D 感測器應用快速進行評估並製作原型,以多種解析度取得準確的相對濕度與溫度量測結果。若要客製化開發硬體,MikroElektronika Temp & Hum 14 Click 板可當作完整的公版設計,含有完整的線路圖與實體設計。若要客製化開發軟體,Temp-Hum 14 click 軟體套裝提供基本範本,可用來建構更完備的應用程式。

結論

濕度與溫度對於結構與設備的完整性有重大影響,對於人體健康與福祉也是如此。然而,要適當管理濕度與溫度,需仰賴測量準確度及普遍的測量,但這在以往並不容易達成,因為傳統感測器解決方案有其限制。

TE Connectivity Measurement Specialties 的 溫濕度感測器以獨特的方式兼顧準確度、穩定性、尺寸及使用簡便性,能在消費性、工業與醫療應用中符合逐漸浮現的量測要求。

參考資料

  1. 低環境濕度有損流感傳染的屏障功能與天生抵抗力
  2. 模擬咳嗽發現高濕度會導致傳染性流感病毒消失
  3. 溫度與濕度對 SARS-CoV-2 及其他套膜病毒穩定度的影響
DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk 撰寫電子產業的相關資訊已有超過二十年的經驗,涉及的主題多元,涵蓋硬體、軟體、系統以及包含 IoT 在內的應用。他以神經元網路為研究主題,取得神經科學博士學位,並且在航太產業,針對廣泛運用的安全系統和演算法加速方法進行研究。目前,在撰寫科技和工程文章之餘,他投入辨識和推薦系統的深度學習應用。

關於出版者

DigiKey 北美編輯群