Använd en liten fuktighets- och temperaturgivare för att samla in viktig miljöinformation på ett effektivt sätt

Av Stephen Evanczuk

Bidraget med av DigiKeys nordamerikanska redaktörer

Med tanke på den påverkan temperatur och luftfuktighet har på den strukturella integriteten hos byggnader och elektroniska system, är förmågan att hämta exakta och tillförlitliga mätningar av dessa parametrar grundläggande vid konstruktioner för en stor mängd konsumenttillämpningar samt tillämpningar inom industri och medicin. Hälsoeffekterna av luftfuktighet och temperatur är särskilt angelägna, då studier har visat att variationer i dessa parametrar ger olika effekter alltifrån obehag till infektion via virus i aerosolform.

Behovet att känna av temperatur och luftfuktighet i en mängd olika tillämpningar har medfört att konstruktörer behöver en prisvärd lösning med litet format som är lätt att distribuera, för att möta efterfrågan. Lösningarna måste även ha mycket låg strömförbrukning, för att ge lång batteritid på avlägsna eller på annat sätt svåråtkomliga platser, samtidigt som den nödvändiga noggrannheten och stabiliteten bibehålls.

Artikeln diskuterar effekterna av omgivningstemperatur och luftfuktighet på infrastruktur, elektroniska system och människors hälsa. Därefter introduceras och förevisas tillämpningen av en fuktighets- och temperaturgivare i miniatyrformat från TE Connectivity Measurement Specialties som konstruktörer kan använda för att lättare uppfylla kraven på kritisk mätning inom en stor mängd tillämpningar.

Betydelsen av noggrann mätning av luftfuktighet och temperatur

Förmågan att noggrant övervaka och justera nivåer för fuktighet och temperatur har en nyckelroll inom en stor mängd områden, inklusive system för värme-, ventilation och luftbehandling, utrustning för kontinuerligt positivt luftvägstryck (CPAP) för sömnapné och även för grundläggande mänskligt välbefinnande.

Den välbekanta termen, relativ luftfuktighet (RH), uttrycker vattenhalten i luft som en procentandel av den maximala mängd vatten som luft vid en given temperatur kan innehålla. På samma sätt som för temperatur, kan för höga eller för låga luftfuktighetsnivåer vara obekväma för människor och till och med skadliga för strukturer, likväl som för mekanisk och elektronisk utrustning.

Höga luftfuktighetsnivåer i byggnader kan leda till korrosion, mögel och mögeltillväxt samt nedbrytning av betong och andra material. I elektronisk utrustning kan höga luftfuktighetsnivåer leda till kortslutning på grund av kondens, särskilt om utrustningen transporteras från en svalare plats till en fuktig miljö.

Låga luftfuktighetsnivåer kan medföra att material krymper, pappersprodukter skadas och att statisk elektricitet byggs upp. Med ökad uppbyggnad kan den resulterande elektrostatiska urladdningen orsaka skador på elektroniska enheter och även antända bränder i miljöer med stora halter av luftburna flyktiga organiska ämnen (VOC:er). Följaktligen har givare för relativ luftfuktighet en viktig roll för att skapa en säker, hälsosam miljö i byggnader. Liknande bekymmer uppstår i allt högre grad när det gäller främjandet av människors hälsa och välbefinnande.

Människor märker vanligtvis av obehagliga temperaturer snarare än fuktighetsnivåer, men det är välkänt att alltför låga eller för höga luftfuktighetsnivåer påverkar hälsan. Hög eller låg luftfuktighet kan förvärra symtomen för astmatiker och allergiker och resultera i en lägre sömnkvalitet även för i övrigt friska individer. Vid mycket låg luftfuktighet torkar mänsklig vävnad ut och orsakar irritation i ögonen och näsans passager. Tillverkare av CPAP-utrustning förlitar sig vanligtvis på luftfuktighetsgivare för att garantera att deras utrustning förser användarna med lagom fuktig luft.

Behovet av mätning och kontroll av luftfuktighetsnivåer spelar en bredare roll för folkhälsan. Forskare har funnit att fuktighetsnivåerna inte behöver vara extremt torra eller fuktiga för att påverka den mänskliga fysiologin. I normala fall, gör fukt i näsans passager det lättare att mota bort virus i aerosolform (virus som finns i mikroskopiska droppar). När näsans passager är torra kan patogener i aerosolform tränga djupare ner i andningsorganen och på så vis lättare orsaka infektion [1]. På grund av dessa och andra fysiologiska faktorer är infektionsförmågan hos influensavirus i aerosolform betydligt högre vid luftfuktighetsnivåer under 40 % RH (figur 1) [2]. Nyare studier tyder på att en RH mellan 40 och 60 % också spelar en roll för att minska infektion med COVID-19 eller till och bryta ned viruset SARS-CoV-2 som orsakar COVID-19 [3].

Diagram över sambandet mellan låga nivåer av relativ luftfuktighet och ökad ineffektivitet hos virus i aerosolform Figur 1: Forskning som visar ett samband mellan låga nivåer av relativ luftfuktighet och ökad ineffektivitet hos virus i aerosolform fortsätter att driva på den växande efterfrågan på mer exakta lösningar för mätning. (Bildkälla: TE Connectivity Measurement Specialties)

Även om en noggrann mätning av luftfuktighet och temperatur är avgörande i så många olika tillämpningar, har motsvarande konstruktionskrav begränsat utvecklarnas förmåga att enkelt bygga effektiva lösningar. Förutom behovet av hög noggrannhet med mycket låg avdrift under lång tid, kräver många tillämpningar givare som ger snabb mätning och strömsnål drift, med ett minimalt format, för att möjliggöra enklare placering av givaren vid den idealiska mätpunkten oavsett om det råkar vara en luftfuktare i ett luftbehandlingssystem, en kontrollenhet för fukt i en CPAP-utrustning eller ett noggrant miljöövervakningssystem. Den digitala fuktighets- och temperaturgivaren HTU31D från TE Connectivity uppfyller kraven på en växande lista av tillämpningar som är beroende av exakt information.

En lösning för kritiska mätkrav

Med sitt lilla format och höga noggrannhet är HTU31D optimerad för tillämpningar som sträcker sig från konsumentprodukter till medicinska och professionella övervakningssystem. Den levereras i en kapsling med sex stift med måtten 2,5 x 2,5 x 0,9 millimeter (mm), är fullständigt kalibrerad och kräver ingen ytterligare fältkalibrering. Tack vare det lilla formatet kan konstruktörerna placera givaren på platser som är för små för tidigare givarlösningar och ansluta en HTU31D placerad på avstånd till sin värdstyrenhet via det seriella gränssnittet I²C med lättillgängliga I²C-buffertar ellernivåväxlare .

HTU31D mäter RH från 0 till 100 % med en typisk noggrannhet på ± 2 %, ± 0,7 % hysteres för RH och en typisk avdrift under lång tid som är mindre än 0,25 % RH/år. Enhetens mätområde för temperatur är -40 till 125 °C med en typisk noggrannhet på ± 0,2 °C och en typisk avvikelse under längre tid på 0,04 °C/år. För att bibehålla tillförlitligheten har givaren ett inbyggt värmeelement för att eliminera kondens vid höga fuktighetsnivåer, samt intern diagnostik för att upptäcka mätfel, fel i värmeelementet och interna minnesfel.

I basläget för mätning av fuktighet och temperatur har givaren en upplösning på 0,020 % RH och 0,040 °C, med omvandlingstider på 1 millisekund (ms) respektive 1,6 ms. För högre krav har enheten driftlägen som låter konstruktörerna öka upplösningen på bekostnad av en ökad omvandlingstid. I maximalt upplösningsläge för respektive givare kan HTU31D ge 0,007 % RH med en omvandlingstid på 7,8 ms och 0,012 °C med en omvandlingstid på 12,1 ms.

För vissa tillämpningar såsom batteridrivna produkter är enhetens låga strömförbrukning en lika viktig egenskap. Vid arbete i sin baslinjeupplösning och utförande av en luftfuktighets- och temperaturmätning per sekund, krävs normalt endast 1,04 mikroampere (μA). Under icke-aktiva perioder kan enheten placeras i viloläge där den vanligtvis förbrukar 0,13 μA. Naturligtvis resulterar en kort användning av det inbyggda värmeelementet för att avlägsna kondens eller en test av temperaturgivarens funktion en lika kort men betydande ökning av strömförbrukningen.

Enkla hård- och mjukvarugränssnitt

Fuktighets- och temperaturgivaren HTU31D har enkla gränssnitt för integration av hård- och mjukvara i utvecklarens konstruktioner. Tillsammans med 3 till 5,5 volt matningsspänning (V.DD ) och jordstift (GND), innehåller enhetens hårdvarugränssnitt stift för anslutning av I²C standard Serial Data (SDA) och Serial Clock (SCL). De återstående två stiften inkluderar ett återställningsstift (RST) och ett adresseringsstift (IC_ADD). När IC_ADD är kopplad till GND eller VDD, svarar enheten på I²C-adress 0x40 eller 0x41, vilket medför att två HTU31D-enheter kan på dela samma I²C-buss utan konflikter.

En värdprocessor skickar kommandon och läser resultaten med hjälp av grundläggande I²C-serietransaktioner. Kommandona använder en sekvens med två bytes som består av I²C-adressen, följt av en byte med ett kommando med enskilda bitar inställda för att ange de funktioner som stöds, inklusive kombinerad temperatur- och fuktighetsmätning, endast fuktighetsmätning, återställning, värmeelement på eller av, enhetens serienummer och diagnostik.

För att exempelvis utföra en kombinerad mätning av temperatur och fuktighet (T och RH), skulle värden skicka adressbyten och en byte innehållande en bit för omvandlingskommandot och bitar som anger önskad upplösning för mätningarna av temperatur och fuktighet. Enheten har stöd för en enkel avsökningsmetod, så efter att ha sänt kommandosekvensen med två bytes, skulle värdprocessorn vänta under den upplösningsberoende varaktighet som anges i databladet innan den utfärdar en sekvens med två bytes med adressbyten (0x40 eller 0x41) följt av bytes för läskommando för temperatur och fuktighet (0x0) (figur 2, översta raden). HTU31D svarar genom att sända den övre och undre byten av de råa värdena för respektive begärd temperatur- och fuktighetsmätning (figur 2, de nedre två raderna). De råa värdena omvandlas till motsvarande fysiska temperatur- och fuktighetsvärde med hjälp av ett par ekvationer som tillhandahålls i databladet för HTU31D.

Diagram över den digitala temperatur- och fuktighetsgivaren HTU31D från TE Connectivity (klicka för förstoring) Figur 2: Den digitala temperatur- och fuktighetsgivaren HTU31D har ett enkelt gränssnitt för att snabbt hämta mätningar av temperatur och fuktighet. (Bildkälla: TE Connectivity Measurement Specialties)

Som visas i figur 2 följs varje 16-bitars datasekvens i HTU31D med en byte som innehåller informationens CRC-värde (cyklisk redundanskontroll) som genereras av enheten. Denna kontrollsumma enligt CRC-8 gör det möjligt att upptäcka fel i enskilda bitar eller fel i dubbelbitar var som helst i dataöverföringen, eller kluster av bitfel i ett fönster med 8 bitar. Genom att jämföra det överförda CRC-värdet med det CRC-värde som beräknas från den mottagna informationen kan värdprocessorn snabbt identifiera en misslyckad överföring och vidta lämplig åtgärd, såsom att upprepa mätkommandot, slå på det inbyggda värmeelementet i HTU31D en kort stund, utfärda en återställning, eller varna användaren om ett eventuellt fel i mätsystemet.

En annan funktion i överföringssekvensen gör det möjligt för värden att stoppa svarssekvensen före dess normala slutförande när något tvingande behov uppstår. I en normal transaktion förväntar sig HTU31D en bekräftelse (ack) efter den första databyten med en slutlig ingen bekräftelse (nack) och en stoppsekvens i slutet av datasekvensen (se figur 2 igen). Utvecklare kan använda funktionen för att stoppa ytterligare överföring när CRC-data eller fuktighetsdata inte krävs, eller när ett nytt kommando såsom enhetsåterställning eller aktivering av värmeelementet snabbt behövs. Här, kan värden utfärda den slutliga nack/stopp-sekvensen för att omedelbart avsluta givarens dataöverföring, i stället för att skicka en förväntad ack efter en data- eller CRC-byte.

HTU31D från TE har ett lättanvänt elektriskt och funktionellt gränssnitt, men användning av en mycket känslig givare kräver en noggrann fysisk konstruktion för att undvika att felaktigheter uppstår i mätningen på grund av elektrisk eller termisk interaktion med andra enheter på kortet. På samma sätt kan fel vid implementeringen av protokollet för kommandosekvensen eller ekvationerna vid värdeomvandlingen fördröja utvärdering och prototyptillverkning av en funktion för fuktighets- och temperaturavkänning i en produkt under utveckling. Ett tilläggskort och tillhörande programvara frånMikroElektronika gör det möjligt för utvecklare att kringgå potentiella implementeringsproblem och påbörja en omedelbar konstruktion och utveckling.

Snabb prototyptillverkning och påskyndad utveckling

Det HTU31D-baserade tilläggskortet Temp & Hum 14 Click MIKROE-4306 från MikroElektronika, tillhandahåller en komplett implementation av givarens elektriska gränssnitt (figur 3, vänster), monterar på ett kort med måtten 28,6 x 25,4 mm (figur 3, höger).

Bild och designschema på tilläggskortet Temp & Hum 14 Click från MikroElektronika (klicka för att förstora) Figur 3: Förutom att fungera som schema för en referenskonstruktion (vänster) för anpassad utveckling, erbjuder tilläggskortet Temp & Hum 14 Click från MikroElektronika (höger) en plattform för omedelbar utvärdering och snabb prototyptillverkning av mätlösningar baserade på givaren HTU31D. (Bildkälla: MikroElektronika)

Som med andra mikroBUS Click-tilläggskort från MikroElektronika och andra leverantörer, är kortet Temp & Hum 14 Click från MikroElektronika utformat för att anslutas till ett värdprocessorkort, t.ex. utvecklingskortet Fusion från Mikroelektronika, och användas med MikroElektronikasmikroSDK ramverk med öppen källkod för programutveckling.

MikroElektronika kompletterar mikroSDK-miljön med mjukvarupaket som tillhandahåller drivrutiner och stöd för specifika Click-kort och utvecklingskort. För kortet Temp & Hum 14 Click tillhandahåller MikroElektronika bindningar för sittTemp-Hum 14 Click mjukvarupaket för Fusion och andra kortfamiljer från MikroElektronika.

Programpaketet Temp-Hum 14 Click har stöd för utveckling med hjälp av ett HTU31D-specifikt funktionsbibliotek som är tillgängligt via ett gränssnitt för applikationsprogrammering (API). Ett medföljande tillämpningsexempel visar hur givaren HTU31D kan användas med en enkel uppsättning API-funktioner inklusive:

  • temphum14_set_conversion, som utför den omvandlingssekvens som nämnts tidigare
  • temphum14_get_temp_and_hum, som utför givarens datasekvens för temperatur och luftfuktighet
  • temphum14_get_diagnostic, som läser felstatus från HTU31D:s diagnostiska register i kretsen

Koden för tillämpningsexemplet demonstrerar initialisering av systemet, initialisering av tillämpningen och utförande av en uppgift i tillämpningen. Lista 1 visar ett utdrag ur programvarupaketet som är utformat för att köras på MikroElektronikas Fusion för utvecklingskortet KINETIS v8MIKROE-3515, som baseras påNXP:sMK64FN1M0VDC12Arm® Cortex®-M4 Kinetis K60 mikrokontroller.

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

Lista 1: Detta utdrag från MikroElektronikas tillämpningsexempel visar de grundläggande konstruktionsmönstren för att initialisera och utföra en enkel uppgift för att hämta temperatur- och fuktighetsmätningar från givaren HTU31D. (Bildkälla: MikroElektronika)

Det tillämpningsexempel som ingår i programvarupaketet visar de grundläggande konstruktionsmönstren för implementering av en programvarutillämpning med givaren TE HTU31D. Som visas i lista 1 börjar huvudrutinen med att anropa en funktion för initialisering av systemet (system_init ()) för att konfigurera drivrutiner på låg nivå inklusive givaren HTU31D och sedan anropa en funktion (application_init ()) för att initialisera tillämpningsresurser. I detta fall initialiserar application_init () systemets I²C-drivrutin med en instans för ett givarobjekt innan en återställning av givaren utförs och ett funktionsanrop (temphum14_get_diagnostic ()) sker för att hämta sensorns diagnostik och visa diagnostisk information (display_diagnostic ()).

Efter den korta initialiseringsfasen går tillämpningsexemplet in i en oändlig slinga som anropar en tillämpningsuppgift var tredje sekund. I kodexemplet som visas i lista 1 begär tillämpningsuppgiften en omvandling med en upplösning på 0,020 % RH och 0,040 °C, vid HTU31D:s baslinjedriftläge som tidigare nämnts. I detta baslinjeläge behöver HTU31D bara 1 ms för att mäta den relativa luftfuktigheten och 1,6 ms för att mäta temperatur. Tillämpningsexemplet fyller ut väntetiden med en 10 ms fördröjning (delay_ms (10)) innan den anropar API-funktionen temphum14_get_temp_and_hum () för att hämta värdena för temperatur och fuktighet. Eftersom biblioteket utför den omvandling som krävs för att konvertera de råa värdena från HTU31D till fysiska mätvärden för temperatur och luftfuktighet, kan de resulterande mätvärdena användas direkt - genom att helt enkelt logga resultaten som i det här fallet.

Med hjälp av denna hårdvaruplattform och tillhörande mjukvarumiljö kan utvecklare snabbt utvärdera och skapa prototyper för tillämpningar med givaren HTU31D för att få exakta mätningar av luftfuktighet och temperatur vid en mängd olika upplösningar. För anpassad hårdvaruutveckling fungerar kortet Temp & Hum 14 Click från MikroElektronika som en komplett referensdesign inklusive fullständiga scheman och fysisk design. För anpassad mjukvaruutveckling ger programvarupaketet Temp-Hum 14 Click en grundläggande mall för att skapa mer omfattande tillämpningar.

Slutsats

Fuktighet och temperatur spelar en avgörande roll för integriteten hos strukturer och utrustning, liksom för människors hälsa och välbefinnande. Lämplig hantering av fuktighet och temperatur beror dock på en kombination av mätningarnas noggrannhet och genomgripande mätning som har varit svår att uppnå på grund av begränsningar i konventionella givarlösningar.

En fuktighets- och temperaturgivare från TE Connectivity Measuring Specialties erbjuder den unika kombination av noggrannhet, stabilitet, storlek och användarvänlighet som krävs för att uppfylla nya krav på mätning i konsumenttillämpningar och tillämpningar inom industri och medicin.

Referenser

  1. Låg omgivande luftfuktighet försämrar barriärfunktionen och den medfödda motståndskraften mot influensainfektion
  2. Hög luftfuktighet leder till förlust av infektiöst influensavirus i simulerade hostningar
  3. Effekten av temperatur och fuktighet på stabiliteten hos SARS-CoV-2 och andra inkapslade virus
DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Om skribenten

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk har arbetat i mer än 20 år med att skriva för och om elektronikbranschen inom många olika områden som maskinvara, programvara, system och applikationer – inklusive sakernas internet. Han har en kandidatexameni neurovetenskap om artificiella neuronnät och har arbetat inom rymdfartsindustrin med mycket distribuerade säkra system och metoder för acceleration av algoritmer. När han inte skriver artiklar om teknik och konstruktion arbetar han med applikationer för djupinlärning för igenkänningssystem och rekommendationssystem.

Om utgivaren

DigiKeys nordamerikanska redaktörer