新聞中心

EEPW首頁 > 物聯(lián)網(wǎng)與傳感器 > 設計應用 > 既要準又要小 溫濕度傳感難題怎么破?

既要準又要小 溫濕度傳感難題怎么破?

作者: 時間:2023-06-09 來源: 收藏

鑒于溫度和濕度對建筑物和電子系統(tǒng)的結構完整性的影響,獲得準確和可靠的對這些參數(shù)的測量能力是廣泛的消費、工業(yè)和醫(yī)療應用的設計基礎。人們十分關注濕度和溫度對健康的影響,研究表明,這些參數(shù)的變化會產(chǎn)生從體感不適到氣溶膠化病毒感染等各種影響。

本文引用地址:http://m.butianyuan.cn/article/202306/447517.htm

鑒于溫度和濕度對建筑物和電子系統(tǒng)的結構完整性的影響,獲得準確和可靠的對這些參數(shù)的測量能力是廣泛的消費、工業(yè)和醫(yī)療應用的設計基礎。人們十分關注濕度和溫度對健康的影響,研究表明,這些參數(shù)的變化會產(chǎn)生從體感不適到氣溶膠化病毒感染等各種影響。

為了滿足這種需求,設計人員需要一種成本效益高、外形尺寸小、易于部署的解決方案,以便在各種應用中檢測溫度和濕度。為了延長偏遠或其他難以到達的地點的電池壽命,解決方案可能還需要消耗很少的電力,同時保持必要的精度和穩(wěn)定性。

本文討論了環(huán)境溫濕度對基礎設施、電子系統(tǒng)和人體健康的影響。然后介紹并展示了如何使用 TE Connectivity Measurement Specialties 的小型濕度和溫度,以及設計人員怎樣利用該更輕松地滿足各種應用的關鍵測量要求。

  1. 準確測量濕度和溫度的重要性

在很多領域準確監(jiān)控和調(diào)節(jié)濕度和溫度水平的能力都發(fā)揮著關鍵作用,這些領域包括供暖、通風和空調(diào) (HVAC) 系統(tǒng)以及用于睡眠呼吸暫停的持續(xù)正壓氣道壓力 (CPAP) 設備,甚至影響人類的幸福指數(shù)。

相對濕度 (RH) 這個耳熟能詳?shù)拿~,表示空氣中的含水量,是指在給定溫度下空氣所能容納的最大水量的百分比。和溫度一樣,濕度過高或過低都會讓人感到不舒服,甚至對建筑結構以及機械設備和電子設備造成損害。

建筑物濕度過高,會導致混凝土和其他材料的腐蝕、霉菌生長和分解。在電子設備中,濕度過高,特別是當設備從陰涼處進入潮濕環(huán)境時,會因結露而導致短路。

濕度低會造成材料收縮、紙制品損壞、靜電積聚。隨著積聚量的增加,產(chǎn)生的靜電會對電子設備造成損害,并在揮發(fā)性有機化合物 (VOC) 含量較高的環(huán)境中引發(fā)火災。因此,RH 在為建筑提供安全、健康的環(huán)境方面發(fā)揮著重要作用。在促進人類健康和福祉方面,類似問題越來越多。

人類通常會注意到不舒服的溫度而不是濕度水平,但過低或過高的濕度水平都會影響健康。濕度過高或過低會加重哮喘和過敏患者的癥狀,并導致睡眠質(zhì)量較低,即使健康的人也會有影響。在極低的濕度下,人體組織會干燥,造成對眼睛或鼻腔的刺激。CPAP 制造商通常依靠濕度傳感器來確保他們的設備為用戶提供合適的潮濕空氣。

濕度的測量和控制在公共衛(wèi)生中發(fā)揮著更廣泛的作用。研究人員發(fā)現(xiàn),濕度水平不需要達到極端的干燥或潮濕,就能對人體生理發(fā)生作用。正常情況下,鼻腔中的水分有助于排出氣溶膠化病毒(懸浮在微滴中的病毒)。當鼻腔干燥時,氣溶膠病原體可以更深入地滲透到呼吸系統(tǒng),更容易引起感染 [1]。由于這些因素和其他生理因素的影響,當濕度低于 40% RH 時,氣溶膠化流感病毒的感染力明顯提高(圖 1)[2]。最近的研究表明,相對濕度在 40%~60% 之間對降低新冠肺炎感染也有一定作用,甚至可以降解引起新冠肺炎的 SARS-CoV-2 病毒 [3]。

既要準又要小 溫濕度傳感難題怎么破?


圖 1:研究表明,低相對濕度與氣溶膠化病毒感染性增加之間的關系持續(xù)推動對較精確測量解決方案的需求的增長。(圖片來源:TE Connectivity Measurement Specialties)

雖然在眾多不同的應用中,準確測量濕度和溫度至關重要,但相應的設計要求卻限制了開發(fā)人員輕松構建有效解決方案的能力。除了對高精度和低長期漂移要求外,許多應用還要求傳感器以最小封裝提供快速測量和低功耗操作能力,以便將傳感器放置在理想的測量點上,無論是 HVAC 加濕器、CPAP 濕度控制裝置還是精密環(huán)境監(jiān)測系統(tǒng)。TE Connectivity 的 HTU31D 濕度和溫度數(shù)字傳感器可滿足越來越多依賴精確數(shù)據(jù)的應用的要求。

2. 滿足關鍵測量要求的解決方案

HTU31D 具有體積小、精度高的特點,適用于從消費類產(chǎn)品到醫(yī)療和專業(yè)監(jiān)測系統(tǒng)的各種應用。它采用 6 引腳封裝,尺寸為 2.5 x 2.5 x 0.9 毫米 (mm),已完全校準,無需額外的現(xiàn)場校準。由于其體積小,開發(fā)人員可以將傳感器放置在對早期傳感解決方案來說太小的位置,并使用現(xiàn)成的 I2C緩沖器或電平移位器,通過其 I2C 串行接口將遠程放置的HTU31D 連接到其主機控制器。

HTU31D 測量的相對濕度范圍為 0 到 100%,典型精度為 ±2%,相對濕度滯后為 ±0.7%,典型長期漂移小于 0.25% RH/年。該器件的溫度測量范圍為 -40 至 125℃,典型精度為 ±0.2℃,典型長期漂移為 0.04℃/年。為了保持其可靠性,該傳感器集成了一個加熱元件,用于消除高濕度水平下的冷凝水,同時帶有內(nèi)部診斷功能,以檢測測量誤差、加熱元件誤差和內(nèi)部存儲器誤差。

在用于濕度和溫度測量的基準模式下,該傳感器的分辨率為 0.020% RH 和 0.040°C,轉(zhuǎn)換時間分別為 1 毫秒 (ms) 和 1.6 毫秒。對于更苛刻的要求,該器件還提供了讓開發(fā)人員以轉(zhuǎn)換時間為代價來提高分辨率的操作模式。在每個傳感器的最大分辨率模式下,HTU31D 可以提供 0.007% 的RH(轉(zhuǎn)換時間為 7.8 毫秒)和 0.012℃(轉(zhuǎn)換時間為 12.1 毫秒)的精度。

對于某些應用,如電池供電型產(chǎn)品,器件的低電流消耗是同樣重要的特性。在其基本分辨率模式下工作,每秒執(zhí)行一次相對濕度和溫度測量,器件通常只需要 1.04 微安 (μA)。在非活動期間,可將器件置于休眠模式,通常只消耗 0.13 μA。當然,短暫地使用內(nèi)部加熱器來消除冷凝水或測試溫度傳感器,同樣會導致電流短暫但顯著增加。

3. 簡單的硬件和軟件接口

HTU31D 濕度和溫度數(shù)字傳感器為開發(fā)人員的設計提供了簡單的硬件和軟件集成接口。除了 3 至 5.5 伏供電電壓 (VDD)和接地 (GND) 引腳外,該器件的硬件接口還包括用于 I2C 標準串行數(shù)據(jù) (SDA) 和串行時鐘 (SCL) 線路的引腳。其余兩個引腳包括一個復位 (RST) 引腳和一個地址 (IC_ADD) 引腳。當 IC_ADD 與 GND 或 VDD 連接在一起時,該器件分別響應 I2C 地址 0x40 或 0x41,允許兩個 HTU31D 器件共享同一 I2C 總線而不發(fā)生沖突。

主機處理器使用基本的 I2C 串行事務處理進行命令和讀取結果發(fā)送。命令使用一個由 I2C 地址組成的雙字節(jié)序列,后接一個命令字節(jié),通過設置各個位來指定支持的功能,具體包括綜合溫度和濕度測量、僅濕度測量、復位、加熱器打開或關閉、設備序列號和診斷。

例如,如要執(zhí)行溫度和相對濕度 (T & RH) 綜合測量,主機將發(fā)送地址字節(jié)和一個包含轉(zhuǎn)換命令位和指定溫度和相對濕度測量所需分辨率的位的字節(jié)。該器件支持簡單輪詢方法,因此在發(fā)送兩個字節(jié)的轉(zhuǎn)換命令序列后,主機處理器將等待規(guī)格書中規(guī)定的與分辨率相關的持續(xù)時間,然后再發(fā)出一個帶有地址字節(jié)(0x40 或 0x41)的兩個字節(jié)序列,然后是 T&RH 讀命令字節(jié) (0x0)(圖 2,頂行)。每次請求溫度和濕度測量時,HTU31D 會將通過發(fā)送原始值的上、下字節(jié)來做出響應(圖 2,下兩行)。利用 HTU31D 規(guī)格書中提供的一對公式將原始值轉(zhuǎn)換為相應的物理溫度和濕度值。

既要準又要小 溫濕度傳感難題怎么破?

圖 2:HTU31D 濕度和溫度數(shù)字傳感器為快速獲得溫度和相對濕度測量提供了一個直接的接口。(圖片來源:TE Connectivity Measurement Specialties)

如圖 2 所示,HTU31D 在每一個 16 位數(shù)據(jù)序列后面都有一個字節(jié),其中包含了器件生成的數(shù)據(jù)循環(huán)冗余校驗 (CRC) 值。該 CRC-8 校驗和能夠檢測出數(shù)據(jù)傳輸中任何地方的單個位錯誤或雙位錯誤,或 8 位窗口內(nèi)的位錯誤群集。通過將這個傳輸?shù)?CRC 值與從所接收數(shù)據(jù)計算出的 CRC 值進行比較,主機處理器可以快速識別失敗的傳輸,并采取適當?shù)男袆?,如重復測量命令,短暫地打開 HTU31D 集成加熱元件,發(fā)出復位,或提醒用戶測量系統(tǒng)可能出現(xiàn)故障。

傳輸序列的另一個特點是,當發(fā)生某種覆蓋需求時,主機可以在其正常完成之前停止響應序列。在正常事務處理中,HTU31D 期望在第一個數(shù)據(jù)字節(jié)后有一個確認 (ack),在數(shù)據(jù)序列的最后有一個最后的不確認 (nack) 和停止序列(見圖 2)。當不需要 CRC 數(shù)據(jù)或濕度數(shù)據(jù)時,或者急需設備復位或加熱器激活等新命令時,開發(fā)人員可以使用此功能停止進一步傳輸。在這里,主機可以發(fā)出最后的 ack/stop 序列來立即終止來自傳感器的數(shù)據(jù)傳輸,而不是在數(shù)據(jù)或 CRC 字節(jié)之后發(fā)送預期的 ack。

TE 的 HTU31D 提供了一個直接的電氣和功能接口,但采用任何高敏感度的傳感器都需要仔細的物理設計,以避免因與板上其他設備的電氣或熱相互作用而產(chǎn)生測量偽影。同樣,在實現(xiàn)命令序列協(xié)議或值轉(zhuǎn)換等式方面時出錯也會拖延不斷演進的產(chǎn)品中的濕度和溫度傳感功能的評估和原型設計。MikroElektronika 提供的擴展板和相關軟件允許開發(fā)人員繞過潛在實現(xiàn)問題,并能立即開始設計和開發(fā)。

4. 快速原型設計和加速開發(fā)

MikroElektronika MIKROE-4306 基于 HTU31D 的 Temp & Hum 14 Click 擴展板完整實現(xiàn)了傳感器電氣接口(圖 3,左),它安裝在一塊尺寸為 28.6 x 25.4 mm 的電路板上(圖 3,右)。

既要準又要小 溫濕度傳感難題怎么破?


圖 3:除了作為定制開發(fā)的參考設計原理圖(左)外,MikroElektronika Temp & Hum 14 Click 板(右)還為基于 HTU31D 傳感器的測量解決方案的即時評估和快速原型設計提供了一個平臺。(圖片來源:MikroElektronika)

與MikroElektronika 和其他供應商的其他 mikroBUS Click 擴展板一樣,MikroElektronika Temp & Hum 14 Click 板旨在插入到主機處理器板(如 MikroElektronika Fusion 開發(fā)板)中,并與MikroElektronika 的開源 mikroSDK 軟件開發(fā)框架一起使用。

MikroElektronika 為 mikroSDK 環(huán)境補充了軟件包,這些軟件包為特定的 Click 板和開發(fā)板提供了驅(qū)動程序和電路板支持。對于 Temp & Hum 14 Click 板,MikroElektronika 為其Fusion 和其他 MikroElektronika 板系列提供 Temp-Hum 14 Click 軟件包的綁定。

Temp-Hum 14 Click 軟件包支持使用HTU31D 專用功能庫進行開發(fā),該功能庫可通過應用編程接口 (API) 訪問。隨附的示例應用程序演示了 HTU31D 傳感器的操作,使用了一組簡單的 API 函數(shù),具體包括:

  • temphum14_set_conversion,執(zhí)行前面提到的轉(zhuǎn)換序列

  • temphum14_get_temp_and_hum,執(zhí)行傳感器的 T 和 RH 數(shù)據(jù)序列

  • temphum14_get_diagnostic,從 HTU31D 的片上診斷寄存器讀取錯誤狀態(tài)

  • 該示例應用程序代碼演示了系統(tǒng)初始化、應用初始化和應用任務的執(zhí)行。列表 1 顯示了旨在在 MikroElektronika Fusion for KINETIS v8 MIKROE-3515 開發(fā)板上運行的軟件包的一個片段,該開發(fā)板基于 NXP的 MK64FN1M0VDC12 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 示例應用程序代碼片段演示了初始化和執(zhí)行一個簡單任務的基本設計模式,以便從 HTU31D 傳感器獲得溫度和相對濕度測量值。(代碼來源:MikroElektronika)
    軟件包中包含的示例應用展示了使用 TE HTU31D 傳感器實現(xiàn)軟件應用程序的基本設計模式。如列表 1 所示,主例程首先調(diào)用系統(tǒng)初始化函數(shù) (system_init()) 來設置包括 HTU31D 傳感器在內(nèi)的低層驅(qū)動程序,并調(diào)用函數(shù) (application_init()) 來初始化應用資源。在這種情況下,application_init()在執(zhí)行傳感器復位和函數(shù)調(diào)用 (temphum14_get_diagnostic()) 以檢索傳感器的診斷信息并顯示診斷信息 (display_diagnostic()) 之前,會用傳感器對象的實例來初始化系統(tǒng)的I2C 驅(qū)動程序。

    在短暫的初始化階段之后,樣本應用程序進入了一個無盡的循環(huán),每隔三秒就會調(diào)用一個應用程序任務。在列表 1 所示的示例代碼中,應用任務請求以 0.020% RH 和 0.040°C 分辨率在如前所述的HTU31D 基準工作模式下進行轉(zhuǎn)換。在這種基準模式下,HTU31D 只需要 1 ms 來測量相對濕度,1.6 ms 來測量溫度。在調(diào)用 API 函數(shù) temphum14_get_temp_and_hum() 之前,示例應用程序會使用 10 ms 的延遲 (delay_ms(10)) 來拉長等待時間,以獲取溫度和濕度值。由于該庫執(zhí)行了將 HTU31D 的原始值轉(zhuǎn)換為物理溫度和濕度測量值所需的轉(zhuǎn)換,因此可以直接使用所產(chǎn)生的測量值,在這種情況下,只需記錄結果。

    利用這個硬件平臺和相關的軟件環(huán)境,開發(fā)人員可以快速評估并開發(fā) HTU31D 傳感器應用原型,以獲得各種分辨率的精確相對濕度和溫度測量值。如需進行定制硬件開發(fā),MikroElektronika Temp & Hum 14 Click 板可作為完整的參考設計使用,同時包括完整的原理圖和物理設計。如需進行定制軟件開發(fā),Temp-Hum 14 Click 軟件包提供了一個基本的模板,可以構建更全面的應用程序。

    結語

    濕度和溫度對結構和設備的完整性以及人類的健康和福祉起著至關重要的作用。然而,對濕度和溫度的管理是否合適有賴于測量的精度與普遍的測量方式的結合,由于傳統(tǒng)傳感器方案的限制,這些很難輕易實現(xiàn)。

    TE Connectivity Measurement Specialties 的濕度和溫度傳感器提供了獨特的精度、穩(wěn)定性、尺寸和易用性組合,可滿足消費、工業(yè)和醫(yī)療應用中新出現(xiàn)的測量要求。

    參考文獻

    1. 環(huán)境濕度低會影響皮膚屏障功能和對流感感染的先天性抵抗力

    2. 高濕度導致模擬咳嗽空間中的傳染性流感病毒活性喪失

    3. 溫度和濕度對 SARS-CoV-2 和其他包膜病毒穩(wěn)定性的影響

    (作者: Stephen Evanczuk,文章來源: 得捷電子DigiKey微信公眾號)



關鍵詞: 傳感器

評論


相關推薦

技術專區(qū)

關閉