Utilizzare un minuscolo sensore di umidità e temperatura per raccogliere efficacemente dati ambientali critici

Di Stephen Evanczuk

Contributo di Editori nordamericani di DigiKey

Dato l'effetto della temperatura e dell'umidità sull'integrità strutturale degli edifici e dei sistemi elettronici, la capacità di ottenere misurazioni accurate e affidabili di questi parametri è fondamentale per una vasta gamma di applicazioni consumer, industriali e medicali. Gli effetti dell'umidità e della temperatura sulla salute sono problematici: alcuni studi dimostrano che le variazioni di questi parametri hanno effetti che vanno dal disagio all'infezione tramite virus sospesi nell'aria.

La necessità di rilevare la temperatura e l'umidità in una varietà di applicazioni è tale che per soddisfare la domanda, i progettisti hanno bisogno di una soluzione economica, di formato compatto e facile da implementare. Per una batteria di lunga durata in luoghi remoti o altrimenti difficili da raggiungere, le soluzioni devono anche consumare pochissima energia, il tutto mantenendo la necessaria precisione e stabilità.

Questo articolo discute l'impatto della temperatura e dell'umidità ambientale su infrastrutture, sistemi elettronici e salute umana. Quindi introduce e mostra come applicare un sensore miniaturizzato di umidità e temperatura di TE Connectivity Measurement Specialties per soddisfare più facilmente i requisiti di misurazione critica in una vasta gamma di applicazioni.

L'importanza di una misurazione accurata dell'umidità e della temperatura

La capacità di monitorare e regolare accuratamente i livelli di umidità e temperatura gioca un ruolo chiave in una vasta gamma di settori, tra cui i sistemi di riscaldamento, ventilazione e condizionamento dell'aria (HVAC), le apparecchiature a pressione positiva continua delle vie aeree (CPAP) per l'apnea del sonno e persino il generale benessere umano.

Il termine "umidità relativa" (RH) esprime il contenuto d'acqua dell'aria come una percentuale della quantità massima di acqua che l'aria può contenere a una data temperatura. Come la temperatura, livelli di umidità troppo alti o troppo bassi possono essere poco adatti per gli esseri umani e persino dannosi per le strutture, così come per le apparecchiature meccaniche ed elettroniche.

Alti livelli di umidità negli edifici possono portare alla corrosione, alla formazione di muffe e funghi e al cedimento del cemento e di altri materiali. Nelle apparecchiature elettroniche, alti livelli di umidità possono provocare cortocircuiti a causa della condensa, in particolare quando le apparecchiature sono trasferite in un ambiente umido da uno più freddo.

Bassi livelli di umidità possono causare il restringimento dei materiali, danni ai prodotti di carta e l'accumulo di elettricità statica. Con l'aumento dell'accumulo, la scarica elettrostatica risultante può causare danni ai dispositivi elettronici e accendere incendi in ambienti con alti livelli di composti organici volatili (VOC) trasportati dall'aria. Di conseguenza, i sensori RH giocano un ruolo importante nel fornire un ambiente sicuro e sano negli edifici. Sempre più spesso, preoccupazioni simili sorgono nella promozione della salute e del benessere umano.

Gli esseri umani avvertono di più le temperature difficili da sopportare piuttosto che i livelli di umidità, ma i livelli di umidità eccessivamente bassi o alti hanno un impatto sulla salute. L'alta o bassa umidità può esacerbare i sintomi di chi soffre di asma e allergie e compromettere la qualità del sonno anche per individui altrimenti sani. A livelli di umidità molto bassi, i tessuti umani si seccano causando irritazioni agli occhi o alle vie nasali. I produttori di CPAP in genere si affidano a sensori di umidità per garantire che le loro apparecchiature forniscano aria adeguatamente umida ai pazienti.

La necessità di misurare e controllare i livelli di umidità gioca un ruolo più ampio nella salute pubblica. I ricercatori hanno scoperto che i livelli di umidità non devono raggiungere estremi di secchezza o umidità per avere un ruolo nella fisiologia umana. Normalmente, l'umidità nelle vie nasali aiuta ad espellere i virus sospesi nell'aria (virus sospesi in goccioline microscopiche). Quando queste sono secche, gli agenti patogeni sospesi nell'aria possono penetrare più profondamente nel sistema respiratorio e causare più facilmente l'infezione [1]. A causa di questi e altri fattori fisiologici, l'infettività del virus influenzale sospeso nell'aria è significativamente più alta a livelli di umidità relativa inferiori al 40% (Figura 1) [2]. Studi più recenti suggeriscono che la RH tra il 40% e il 60% gioca anche un ruolo nel ridurre l'infezione da COVID-19 e persino nell'indebolire il virus SARS-CoV-2 causa del COVID-19 [3].

Grafico della relazione tra bassi livelli di RH e maggiore infettività dei virus sospesi nell'ariaFigura 1: Una ricerca che mostra una relazione tra bassi livelli di RH e maggiore infettività dei virus sospesi nell'aria continua a determinare la crescente domanda di soluzioni di misurazione più accurate. (Immagine per gentile concessione di TE Connectivity Measurement Specialties)

Anche se la misurazione accurata dell'umidità e della temperatura è critica in così tante applicazioni diverse, i requisiti di progettazione corrispondenti hanno limitato la capacità degli sviluppatori di costruire facilmente soluzioni efficaci. Oltre alla necessità di un'elevata precisione con una deriva a lungo termine molto bassa, molte applicazioni richiedono sensori che offrano una misurazione rapida e un funzionamento a bassa potenza in un ingombro minimo, consentendo un posizionamento più facile del sensore nel punto di misurazione ideale, che potrebbe essere in un igrostato HVAC, un'unità di controllo dell'umidità CPAP o un sistema di monitoraggio ambientale di precisione. Il sensore digitale di umidità e temperatura HTU31D di TE Connectivity soddisfa i requisiti di una serie crescente di applicazioni che dipendono da dati accurati.

Una soluzione per requisiti di misurazione critici

Caratterizzato da un ingombro ridotto e da un'elevata precisione, HTU31D è ottimizzato per applicazioni che vanno dai prodotti consumer ai sistemi di monitoraggio medicale e professionale. Viene fornito in un contenitore a 6 pin che misura 2,5 x 2,5 x 0,9 mm, è completamente calibrato e non richiede ulteriori calibrazioni sul campo. Grazie al suo ingombro compatto, gli sviluppatori possono collocare il sensore in posizioni che erano troppo anguste per le soluzioni di rilevamento precedenti e collegare un HTU31D posizionato a distanza attraverso la sua interfaccia seriale I²C al controller host utilizzando un buffer I²C o traslatori di livello facilmente reperibili.

HTU31D misura la RH da 0 a 100% con una precisione tipica di ±2%, un'isteresi di ±0,7% RH e una deriva tipica a lungo termine inferiore allo 0,25% RH/anno. L'intervallo di misurazione della temperatura del dispositivo va da -40 a 125 °C con una precisione tipica di ±0,2 °C e una deriva tipica a lungo termine di 0,04 °C/anno. Per mantenere la sua affidabilità, il sensore integra un elemento riscaldante per eliminare la condensa ad alti livelli di umidità, così come la diagnostica interna per rilevare errori di misurazione, errori dell'elemento riscaldante ed errori della memoria interna.

Nella sua modalità di base per la misurazione dell'umidità e della temperatura, il sensore ha una risoluzione di 0,020% RH e 0,040 °C, con tempi di conversione di 1 ms e 1,6 ms, rispettivamente. Per i requisiti più esigenti, il dispositivo fornisce modalità operative che permettono agli sviluppatori di aumentare la risoluzione al prezzo di un maggiore tempo di conversione. Nella modalità di risoluzione massima per ogni sensore, HTU31D può fornire 0,007% RH con un tempo di conversione di 7,8 ms e 0,012 °C con un tempo di conversione di 12,1 ms.

Per alcune applicazioni come i prodotti alimentati a batteria, il basso consumo di corrente del dispositivo è una caratteristica altrettanto importante. Nella modalità di risoluzione di base quando misura RH e temperatura ogni secondo, il dispositivo richiede tipicamente solo 1,04 μA. Durante i periodi non attivi, il dispositivo può essere messo in modalità di sospensione, dove consuma tipicamente 0,13 μA. Naturalmente, un breve uso del riscaldatore interno per rimuovere la condensa o testare il funzionamento del sensore di temperatura comporta un aumento altrettanto breve ma significativo della corrente.

Interfacce hardware e software semplici

Il sensore digitale di umidità e temperatura HTU31D fornisce interfacce semplici per l'integrazione hardware e software nei progetti degli sviluppatori. Insieme alla tensione di alimentazione da 3 a 5,5 V (VDD) e ai pin di terra (GND), l'interfaccia hardware del dispositivo include i pin per le linee standard I²C Serial Data (SDA) e Serial Clock (SCL). I due pin rimanenti includono un pin di reset (RST) e un pin di indirizzo (IC_ADD). Quando IC_ADD è legato a GND o VDD, il dispositivo risponde all'indirizzo I²C 0x40 o 0x41, rispettivamente, permettendo a due dispositivi HTU31D di condividere lo stesso bus I²C senza conflitti.

Un processore host invia comandi e legge i risultati usando transazioni seriali I²C di base. I comandi utilizzano una sequenza di due byte composta dall'indirizzo I²C, seguita da un byte di comando con bit individuali impostati per specificare le funzioni supportate, tra cui la misurazione combinata di temperatura e umidità, la misurazione della sola umidità, il reset, l'accensione o lo spegnimento del riscaldatore, il numero di serie del dispositivo e la diagnostica.

Per eseguire una misura combinata di temperatura e RH (T + RH), ad esempio, l'host invierà il byte di indirizzo e un byte contenente il bit di comando di conversione e i bit che specificano la risoluzione desiderata per le misurazioni di temperatura e RH. Il dispositivo supporta un semplice metodo di polling, quindi dopo aver trasmesso la sequenza di comando di conversione a due byte, il processore host aspetterebbe per il tempo dipendente dalla risoluzione specificata nella scheda tecnica prima di emettere una sequenza a due byte con il byte di indirizzo (0x40 o 0x41), seguito dal byte di comando di lettura T + RH (0x0) (Figura 2, riga in alto). HTU31D risponderebbe trasmettendo i byte superiori e inferiori dei valori grezzi per ogni misurazione di temperatura e umidità richiesta (Figura 2, due righe in basso). I valori grezzi sono convertiti nei corrispondenti valori fisici di temperatura e umidità usando una coppia di equazioni fornite nella scheda tecnica HTU31D.

Schema del sensore digitale di umidità e temperatura HTU31D di TE Connectivity (fare clic per ingrandire)Figura 2: Il sensore digitale di umidità e temperatura HTU31D fornisce un'interfaccia semplice per ottenere rapidamente misurazioni di temperatura e RH. (Immagine per gentile concessione di TE Connectivity Measurement Specialties)

Come mostrato nella Figura 2, HTU31D segue ogni sequenza di dati a 16 bit con un byte contenente il valore di controllo a ridondanza ciclica (CRC) dei dati generato dal dispositivo. Questo checksum CRC-8 permette di rilevare errori di bit individuali o errori di doppio bit in qualsiasi punto della trasmissione dati oppure gruppi di errori di bit all'interno di una finestra di 8 bit. Confrontando questo valore CRC trasmesso con il valore CRC calcolato dai dati ricevuti, il processore host può identificare rapidamente un errore di trasmissione e prendere l'azione appropriata, come ripetere il comando di misurazione, accendere brevemente l'elemento di riscaldamento integrato HTU31D, emettere un reset o avvisare l'utente di un possibile guasto nel sistema di misurazione.

Un'altra caratteristica della sequenza di trasmissione permette all'host di interrompere la sequenza di risposta prima del suo normale completamento quando si verifica un'altra necessità prioritaria. In una transazione normale, HTU31D si aspetta un riconoscimento (ack) dopo il primo byte di dati con una sequenza finale di non riconoscimento (nack) e stop proprio alla fine della sequenza di dati (sempre Figura 2). Gli sviluppatori possono utilizzare questa funzione per interrompere ulteriori trasmissioni quando i dati CRC o i dati di umidità non sono richiesti o quando un nuovo comando come il reset del dispositivo o l'attivazione del riscaldatore è richiesto urgentemente. Qui, invece di inviare il previsto ack dopo un byte di dati o CRC, l'host può emettere la sequenza finale nack/stop per terminare immediatamente la trasmissione dei dati dal sensore.

HTU31D di TE offre un'interfaccia elettrica e funzionale semplice, ma l'impiego di qualsiasi sensore altamente sensibile richiede un'attenta progettazione fisica per evitare artefatti di misurazione derivanti dall'interazione elettrica o termica con altri dispositivi presenti. Allo stesso modo, gli errori nell'implementazione del protocollo della sequenza di comandi o delle equazioni di conversione dei valori possono ritardare la valutazione e la prototipazione di una funzione di rilevamento di umidità e temperatura in un prodotto in evoluzione. Una scheda aggiuntiva e il software associato di MikroElektronika permettono agli sviluppatori di aggirare i potenziali problemi di implementazione e iniziare immediatamente la progettazione e lo sviluppo.

Prototipazione rapida e sviluppo accelerato

La scheda add-on MIKROE-4306 di MikroElektronika (click board Temp & Hum 14 basata su HTU31D) fornisce un'implementazione completa dell'interfaccia elettrica del sensore (Figura 3, sinistra), montata su una scheda che misura 28,6 x 25,4 mm (Figura 3, destra).

Immagine della click board Temp & Hum 14 di MikroElektronika e schema di progettazione (fare clic per ingrandire)Figura 3: Oltre a servire come schema di progetto di riferimento (a sinistra) per lo sviluppo personalizzato, la click board Temp & Hum 14 di MikroElektronika (a destra) offre una piattaforma per la valutazione immediata e la prototipazione rapida di soluzioni di misurazione basate sul sensore HTU31D. (Immagine per gentile concessione di MikroElektronika)

Come con altre schede add-on mikroBUS Click di MikroElektronika e di altri fornitori, la click board Temp & Hum 14 di MikroElektronika è progettata per l'inserimento in una scheda processore host come una scheda di sviluppo MikroElektronika Fusion e per essere utilizzata con il framework di sviluppo software open-source mikroSDK di MikroElektronika.

MikroElektronika integra l'ambiente mikroSDK con pacchetti software che forniscono driver e supporto per specifiche click board e schede di sviluppo. Per la click board Temp & Hum 14, MikroElektronika fornisce i binding del pacchetto software Temp-Hum 14 Click per la scheda Fusion e altre famiglie di schede.

Il pacchetto software Temp-Hum 14 Click supporta lo sviluppo utilizzando una libreria di funzioni specifiche per HTU31D, accessibile tramite un'interfaccia di programmazione delle applicazioni (API). Un'applicazione campione dimostra il funzionamento del sensore HTU31D utilizzando un semplice set di funzioni API, tra cui:

  • temphum14_set_conversion, che esegue la sequenza di conversione menzionata prima
  • temphum14_get_temp_and_hum, che esegue la sequenza di dati T + RH del sensore
  • temphum14_get_diagnostic, che legge lo stato di errore dal registro diagnostico su chip di HTU31D

Il codice dell'applicazione di esempio dimostra l'inizializzazione del sistema, l'inizializzazione dell'applicazione e l'esecuzione di un'attività dell'applicazione. Il listato 1 mostra un frammento del pacchetto software progettato per funzionare sulla scheda di sviluppo MikroElektronika Fusion for KINETIS v8 MIKROE-3515, basata sul microcontroller Arm®Cortex®-M4 Kinetis K60 MK64FN1M0VDC12 di NXP.

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

Listato 1: Questo snippet dall'applicazione campione di MikroElektronika dimostra i modelli di progettazione di base per inizializzare ed eseguire una semplice attività per ottenere le misurazioni di temperatura e RH dal sensore HTU31D. (Codice per gentile concessione di MikroElektronika)

L'applicazione campione inclusa nel pacchetto software dimostra i modelli di progettazione di base per implementare un'applicazione software utilizzando il sensore HTU31D di TE. Come illustrato nel Listato 1, la routine principale inizia chiamando una funzione di inizializzazione del sistema (system_init()) per impostare i driver di basso livello compreso il sensore HTU31D e chiamando una funzione (application_init()) per inizializzare le risorse dell'applicazione. In questo caso, application_init() inizializza il driver I²C del sistema con un'istanza di un oggetto sensore prima di eseguire un reset del sensore e una chiamata di funzione (temphum14_get_diagnostic()) per recuperare la diagnostica del sensore e visualizzare le informazioni diagnostiche (display_diagnostic()).

Dopo la breve fase di inizializzazione, l'applicazione di esempio entra in un ciclo infinito che chiama un'attività dell'applicazione ogni tre secondi. Nel codice di esempio mostrato nel Listato 1, l'attività dell'applicazione richiede una conversione con una risoluzione di 0,020% RH e 0,040 °C, la modalità operativa di base di HTU31D, come notato in precedenza. In questa modalità di base, HTU31D necessita soltanto di 1 ms per misurare la RH e 1,6 ms per misurare la temperatura. L'applicazione di esempio include il tempo di attesa, utilizzando un ritardo di 10 ms (delay_ms(10)) prima di chiamare la funzione API temphum14_get_temp_and_hum() per recuperare i valori di temperatura e umidità. Poiché la libreria esegue la trasformazione necessaria per convertire i valori grezzi da HTU31D in valori fisici di misurazione della temperatura e dell'umidità, i valori risultanti possono essere utilizzati direttamente, in questo caso semplicemente registrando i risultati.

Utilizzando questa piattaforma hardware e l'ambiente software associato, gli sviluppatori possono valutare rapidamente e prototipare le applicazioni del sensore HTU31D per ottenere misurazioni accurate di RH e temperatura a svariate risoluzioni. Per lo sviluppo di hardware personalizzato, la click board Temp & Hum 14 di MikroElektronika funge da progetto di riferimento completo di schemi e design fisico. Per lo sviluppo di software personalizzato, il pacchetto software Temp-Hum 14 Click fornisce un modello di base per creare applicazioni più complete.

Conclusione

L'umidità e la temperatura rivestono un ruolo cruciale nell'integrità delle strutture e delle apparecchiature, così come nella salute e nel benessere dell'uomo. Tuttavia, una gestione adeguata dell'umidità e della temperatura dipende da una combinazione di precisione della misurazione e di misurazione pervasiva, cosa difficile da realizzare a causa delle limitazioni nelle soluzioni di sensori convenzionali.

Un sensore di umidità e temperatura di TE Connectivity Measurement Specialties offre una combinazione unica di precisione, stabilità, dimensioni e facilità d'uso necessaria per soddisfare i requisiti di misurazione emergenti nelle applicazioni consumer, industriali e medicali.

Riferimenti

  1. Una bassa umidità ambientale compromette la funzione di barriera e la resistenza innata contro l'infezione influenzale
  2. L'alta umidità comporta una perdita del virus dell'influenza infettiva - dati simulati della tosse
  3. L'effetto della temperatura e dell'umidità sulla stabilità di SARS-CoV-2 e di altri virus inviluppati
DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk ha più di 20 anni di esperienza come autore sull'industria elettronica e ha scritto su una vasta gamma di argomenti tra cui hardware, software, sistemi e applicazioni, incluso l'IoT. Ha ricevuto un Ph.D. in neuroscienze sulle reti neuronali e ha lavorato nel settore aerospaziale su sistemi di sicurezza ampiamente distribuiti e sui metodi di accelerazione algoritmica. Attualmente, quando non scrive articoli su tecnologia e ingegneria, lavora su applicazioni di deep learning per i sistemi di riconoscimento e di raccomandazione.

Informazioni su questo editore

Editori nordamericani di DigiKey