Utiliser un capteur d'humidité et de température miniature pour collecter efficacement des données environnementales essentielles

Par Stephen Evanczuk

Avec la contribution de Rédacteurs nord-américains de DigiKey

Compte tenu de l'impact de la température et de l'humidité sur l'intégrité structurelle des bâtiments et des systèmes électroniques, la capacité à obtenir des mesures précises et fiables de ces paramètres est fondamentale pour la conception d'un large éventail d'applications grand public, industrielles et médicales. Les effets de l'humidité et de la température sur la santé sont particulièrement préoccupants, des études montrant que les variations de ces paramètres ont des effets s'étendant de l'inconfort à l'infection via des virus aérosolisés.

Les besoins en matière de détection de la température et de l'humidité dans une variété d'applications sont devenus tels que pour répondre à la demande, les concepteurs ont besoin d'une solution rentable, compacte et facile à déployer. Pour une longue durée de vie des batteries dans les emplacements éloignés ou difficiles d'accès, les solutions doivent également consommer très peu d'énergie, tout en maintenant la précision et la stabilité nécessaires.

Cet article traite de l'impact de la température et de l'humidité environnementales sur les infrastructures, les systèmes électroniques et la santé humaine. Il présente ensuite un capteur d'humidité et de température miniature de TE Connectivity Measurement Specialties et montre comment il peut être utilisé pour aider les concepteurs à répondre aux exigences de mesures critiques dans une variété d'applications.

L'importance d'une mesure précise de l'humidité et de la température

La capacité à surveiller et à ajuster avec précision les niveaux d'humidité et de température joue un rôle clé dans un grand nombre de domaines, notamment les systèmes de chauffage, ventilation et climatisation (CVC), les équipements de ventilation spontanée en pression positive continue (CPAP) pour l'apnée du sommeil, et même le bien-être humain de base.

Le terme familier d'humidité relative (HR) exprime la teneur en eau de l'air en pourcentage de la quantité maximum d'eau que l'air peut contenir à une température donnée. Tout comme la température, des niveaux d'humidité trop élevés ou trop bas peuvent être inconfortables pour les humains et même causer des dommages aux structures et aux équipements mécaniques et électroniques.

Un taux d'humidité élevé dans les bâtiments peut entraîner corrosion, développement de moisissures et dégradation du béton et d'autres matériaux. Dans les équipements électroniques, un taux d'humidité élevé peut provoquer des courts-circuits dus à la condensation, en particulier lorsque l'équipement est déplacé d'un endroit frais à un environnement humide.

Un faible taux d'humidité peut entraîner la rétraction des matériaux, la détérioration des produits en papier et l'accumulation d'électricité statique. Si l'accumulation augmente, les décharges électrostatiques qui en résultent peuvent endommager les dispositifs électroniques et déclencher des incendies dans des environnements présentant des niveaux élevés de composés organiques volatils (COV) en suspension dans l'air. Par conséquent, les capteurs d'humidité relative jouent un rôle important pour garantir un environnement sûr et sain dans les bâtiments. De plus en plus, des préoccupations similaires se posent pour favoriser la santé et le bien-être de l'homme.

Les humains remarquent généralement les températures inconfortables plutôt que les niveaux d'humidité, mais les niveaux d'humidité excessivement bas ou élevés sont connus pour avoir un impact sur la santé. Un taux d'humidité élevé ou faible peut exacerber les symptômes des personnes souffrant d'asthme et d'allergies, et réduire la qualité du sommeil, même chez les personnes en bonne santé. À des taux d'humidité très bas, les tissus humains se dessèchent, provoquant une irritation des yeux ou des voies nasales. Les fabricants CPAP s'appuient généralement sur des capteurs d'humidité pour s'assurer que leurs dispositifs fournissent un air suffisamment humide aux utilisateurs.

La nécessité de mesurer et de contrôler les taux d'humidité joue un rôle plus large dans la santé publique. Les chercheurs ont découvert que le taux d'humidité ne doit pas nécessairement atteindre des niveaux extrêmes pour jouer un rôle dans la physiologie humaine. Normalement, l'humidité des voies nasales aide à expulser les virus aérosolisés (virus en suspension dans des gouttelettes microscopiques). Lorsque les voies nasales sont sèches, les agents pathogènes aérosolisés peuvent pénétrer plus profondément dans le système respiratoire et provoquer plus facilement une infection [1]. En raison de ces facteurs et d'autres facteurs physiologiques, l'infectivité du virus aérosolisé de la grippe est nettement plus élevée à des taux d'humidité inférieurs à 40 % (Figure 1) [2]. Des études plus récentes suggèrent qu'une humidité relative entre 40 % et 60 % joue également un rôle dans la réduction de l'infection par la COVID-19, et même dans la dégradation du virus SARS-CoV-2 qui cause la COVID-19 [3].

Graphique de la relation entre les faibles niveaux d'humidité relative et l'augmentation de l'infectivité des virus aérosolisésFigure 1 : La recherche montrant une relation entre de faibles niveaux d'humidité relative et l'infectivité accrue des virus aérosolisés suscite une demande croissante en matière de solutions de mesure plus précises. (Source de l'image : TE Connectivity Measurement Specialties)

Bien que la mesure précise de l'humidité et de la température soit essentielle dans de nombreuses applications différentes, les exigences de conception correspondantes ont limité la capacité des développeurs à élaborer facilement des solutions efficaces. Outre la nécessité d'une haute précision et d'une très faible dérive à long terme, de nombreuses applications requièrent des capteurs offrant une mesure rapide et un fonctionnement basse consommation dans une empreinte minimale, permettant de placer plus facilement le capteur au point de mesure idéal, qu'il s'agisse d'un régulateur d'humidité CVC, d'une unité de contrôle de l'humidité CPAP ou d'un système de surveillance environnementale de précision. Le capteur d'humidité et de température numérique HTU31D de TE Connectivity répond aux exigences d'une liste croissante d'applications qui dépendent de données précises.

Une solution pour les exigences de mesures critiques

Affichant une empreinte compacte et une haute précision, le HTU31D est optimisé pour les applications s'étendant des produits grand public aux systèmes de surveillance médicaux et professionnels. Il se présente sous la forme d'un boîtier à 6 broches mesurant 2,5 millimètres (mm) x 2,5 mm x 0,9 mm, et il est entièrement étalonné et ne requiert aucun étalonnage supplémentaire sur le terrain. Grâce à son faible encombrement, les développeurs peuvent placer le capteur dans des endroits qui auraient été trop petits pour les solutions de détection précédentes, et connecter un HTU31D placé à distance à son contrôleur hôte via son interface série I²C, en utilisant des tampons I²C ou des dispositifs de décalage de niveau déjà disponibles.

Le HTU31D mesure l'humidité relative de 0 à 100 % avec une précision typique de ±2 %, une hystérésis de ±0,7 % d'humidité relative et une dérive typique à long terme inférieure à 0,25 % d'humidité relative par an. La plage de mesure de température du dispositif s'étend de -40°C à +125°C avec une précision typique de ±0,2°C et une dérive typique à long terme de 0,04°C/an. Pour aider à maintenir sa fiabilité, le capteur intègre un élément chauffant pour éliminer la condensation en conditions d'humidité élevée, ainsi que des diagnostics internes pour détecter les erreurs de mesure, les erreurs de l'élément chauffant et les erreurs de mémoire interne.

Dans son mode de référence pour la mesure de l'humidité et de la température, le capteur offre une résolution de 0,020 % HR et de 0,040°C, avec des temps de conversion de 1 milliseconde (ms) et de 1,6 ms, respectivement. Pour des exigences supérieures, le dispositif offre des modes de fonctionnement permettant aux développeurs d'augmenter la résolution au prix d'un temps de conversion accru. En mode de résolution maximum pour chaque capteur, le HTU31D peut fournir 0,007 % HR avec un temps de conversion de 7,8 ms et 0,012°C avec un temps de conversion de 12,1 ms.

Pour certaines applications, comme les produits alimentés par batterie, la faible consommation de courant du dispositif est une caractéristique tout aussi importante. En fonctionnant dans son mode de résolution de référence et en effectuant une mesure d'humidité relative et de température par seconde, le dispositif ne requiert typiquement que 1,04 microampère (μA). Pendant les périodes non actives, le dispositif peut être placé en mode veille dans lequel il consomme typiquement 0,13 μA. Bien entendu, une brève utilisation de l'élément chauffant interne pour éliminer la condensation ou tester le fonctionnement du capteur de température entraîne une augmentation tout aussi brève mais significative du courant.

Interfaces matérielles et logicielles simples

Le capteur d'humidité et de température numérique HTU31D fournit des interfaces simples pour l'intégration matérielle et logicielle dans les conceptions des développeurs. Outre les broches de masse (GND) et de tension d'alimentation (VDD) de 3 volts (V) à 5,5 V, l'interface matérielle du dispositif inclut des broches pour les lignes d'horloge série (SCL) et de données série (SDA) standard I²C. Les deux broches restantes comprennent une broche de réinitialisation (RST) et une broche d'adresse (IC_ADD). Quand IC_ADD est liée à GND ou VDD, le dispositif répond à l'adresse I²C 0x40 ou 0x41, respectivement, permettant à deux dispositifs HTU31D de partager le même bus I²C sans conflit.

Un processeur hôte envoie des commandes et lit les résultats via de simples transactions série I²C. Les commandes utilisent une séquence de deux octets composée de l'adresse I²C, suivie d'un octet de commande avec des bits individuels définis pour spécifier les fonctions prises en charge, notamment la mesure combinée de la température et de l'humidité, la mesure de l'humidité uniquement, la réinitialisation, l'activation ou la désactivation de l'élément chauffant, le numéro de série du dispositif et les diagnostics.

Pour effectuer une mesure combinée de la température et de l'humidité relative (T&HR), par exemple, l'hôte envoie l'octet d'adresse et un octet contenant le bit de commande de conversion et les bits spécifiant la résolution souhaitée pour les mesures de température et d'humidité relative. Le dispositif prend en charge une méthode d'interrogation simple, de sorte qu'après avoir transmis la séquence de commande de conversion de deux octets, le processeur hôte doit attendre la durée dépendant de la résolution spécifiée dans la fiche technique avant d'émettre une séquence de deux octets avec l'octet d'adresse (0x40 ou 0x41), suivi de l'octet de commande de lecture T&HR (0x0) (Figure 2, ligne du haut). Le HTU31D répond en transmettant les octets supérieurs et inférieurs des valeurs brutes pour chaque mesure de température et d'humidité demandée (Figure 2, deux lignes du bas). Les valeurs brutes sont converties en valeurs physiques correspondantes de température et d'humidité à l'aide de deux équations fournies dans la fiche technique du HTU31D.

Schéma du capteur d'humidité et de température numérique HTU31D de TE Connectivity (cliquez pour agrandir)Figure 2 : Le capteur d'humidité et de température numérique HTU31D fournit une interface simple pour obtenir rapidement des mesures de température et d'humidité relative. (Source de l'image : TE Connectivity Measurement Specialties)

Comme illustré à la Figure 2, le HTU31D fait suivre chaque séquence de données 16 bits d'un octet contenant la valeur de contrôle par redondance cyclique (CRC) des données générée par le dispositif. Cette somme de contrôle CRC-8 permet de détecter des erreurs de bits simples ou doubles n'importe où dans la transmission de données, ou des groupes d'erreurs de bits dans une fenêtre 8 bits. En comparant cette valeur CRC transmise à la valeur CRC calculée à partir des données reçues, le processeur hôte peut rapidement identifier un échec de transmission et prendre les mesures appropriées, comme répéter la commande de mesure, activer brièvement l'élément chauffant intégré HTU31D, émettre une réinitialisation ou avertir l'utilisateur d'une éventuelle défaillance du système de mesure.

Une autre fonctionnalité de la séquence de transmission permet à l'hôte d'arrêter la séquence de réponse avant son achèvement normal lorsqu'un besoin de niveau supérieur se présente. Dans une transaction normale, le HTU31D attend un acquittement (ack) après le premier octet de données, avec un acquittement négatif final (nack) et une séquence d'arrêt à la toute fin de la séquence de données (Figure 2). Les développeurs peuvent utiliser cette fonction pour arrêter toute transmission supplémentaire lorsque les données CRC ou les données d'humidité ne sont pas nécessaires, ou lorsqu'une nouvelle commande, telle que la réinitialisation du dispositif ou l'activation de l'élément chauffant, est requise de toute urgence. Dans ce cas, plutôt que d'envoyer l'ack attendu après un octet de données ou CRC, l'hôte peut émettre la séquence finale nack/stop pour mettre immédiatement fin à la transmission des données du capteur.

Le HTU31D de TE offre une interface électrique et fonctionnelle simple, mais l'utilisation de tout capteur hautement sensible requiert une conception physique minutieuse pour éviter les artefacts de mesure résultant de l'interaction électrique ou thermique avec d'autres dispositifs embarqués. De même, des erreurs dans la mise en œuvre du protocole de séquence de commandes ou des équations de conversion de valeurs peuvent retarder l'évaluation et le prototypage d'une fonction de détection de l'humidité et de la température dans un produit en évolution. Une carte d'extension et le logiciel associé de MikroElektronika permettent aux développeurs de contourner les problèmes d'implémentation potentiels et de commencer immédiatement la conception et le développement.

Prototypage rapide et développement accéléré

La carte d'extension Temp & Hum 14 Click MIKROE-4306 basée sur le HTU31D de MikroElektronika fournit une implémentation complète de l'interface électrique du capteur (Figure 3, à gauche), montée sur une carte mesurant 28,6 mm x 25,4 mm (Figure 3, à droite).

Image de la carte Temp & Hum 14 Click de MikroElektronika et schéma de conception (cliquez pour agrandir)Figure 3 : En plus de servir de schéma de conception de référence (à gauche) pour le développement personnalisé, la carte Temp & Hum 14 Click de MikroElektronika (à droite) offre une plateforme pour l'évaluation immédiate et le prototypage rapide de solutions de mesure basées sur le capteur HTU31D. (Source de l'image : MikroElektronika)

Comme les autres cartes d'extension mikroBUS Click de MikroElektronika et d'autres fournisseurs, la carte Temp & Hum 14 Click de MikroElektronika est conçue pour être connectée à une carte processeur hôte telle qu'une carte de développement Fusion de MikroElektronika, et être utilisée avec l'infrastructure de développement logiciel open-source mikroSDK de MikroElektronika.

MikroElektronika complète l'environnement mikroSDK avec des progiciels qui fournissent des pilotes et une prise en charge pour des cartes Click et des cartes de développement spécifiques. Pour la carte Temp & Hum 14 Click, MikroElektronika fournit des liaisons de son progiciel Temp-Hum 14 Click pour sa carte Fusion et d'autres familles de cartes MikroElektronika.

Le progiciel Temp-Hum 14 Click prend en charge le développement à l'aide d'une bibliothèque de fonctions spécifiques au HTU31D, accessible via une interface de programmation (API). Une application d'exemple jointe démontre le fonctionnement du capteur HTU31D à l'aide d'un ensemble simple de fonctions API, notamment :

  • temphum14_set_conversion, qui exécute la séquence de conversion mentionnée précédemment
  • temphum14_get_temp_and_hum, qui exécute la séquence de données T&HR du capteur
  • temphum14_get_diagnostic, qui lit le statut des erreurs dans le registre de diagnostic intégré du HTU31D

Le code d'application d'exemple démontre l'initialisation du système, l'initialisation de l'application et l'exécution d'une tâche d'application. La Liste 1 montre un extrait du progiciel conçu pour fonctionner sur la carte de développement MikroElektronika Fusion pour KINETIS v8 MIKROE-3515, qui est basée sur le microcontrôleur Arm® Cortex®-M4 Kinetis K60 MK64FN1M0VDC12 de NXP.

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

Liste 1 : Cet extrait de l'application d'exemple de MikroElektronika démontre les modèles de conception de base pour initialiser et exécuter une tâche simple pour obtenir des mesures de température et d'humidité relative à partir du capteur HTU31D. (Source du code : MikroElektronika)

L'application d'exemple incluse dans le progiciel démontre les modèles de conception de base pour la mise en œuvre d'une application logicielle utilisant le capteur HTU31D de TE. Comme illustré dans la Liste 1, la routine principale commence par appeler une fonction d'initialisation du système (system_init()) pour configurer les pilotes de bas niveau, y compris le capteur HTU31D, et appeler une fonction (application_init()) pour initialiser les ressources de l'application. Dans ce cas, application_init() initialise le pilote I²C du système avec une instance d'un objet capteur avant d'effectuer une réinitialisation du capteur et un appel de fonction (temphum14_get_diagnostic()) pour récupérer les diagnostics du capteur et afficher les informations de diagnostic (display_diagnostic()).

Après la courte phase d'initialisation, l'application d'exemple entre dans une boucle sans fin qui appelle une tâche applicative toutes les trois secondes. Dans le code d'exemple présenté dans la Liste 1, la tâche applicative demande une conversion à une résolution de 0,020 % d'humidité relative et 0,040°C, le mode de fonctionnement de référence du HTU31D comme indiqué précédemment. Dans ce mode de référence, le HTU31D n'a besoin que de 1 ms pour mesurer l'humidité relative et de 1,6 ms pour mesurer la température. L'application d'exemple complète la durée d'attente, en utilisant un délai de 10 ms (delay_ms(10)) avant d'appeler la fonction API temphum14_get_temp_and_hum() pour récupérer les valeurs de température et d'humidité. Comme la bibliothèque effectue la transformation requise pour convertir les valeurs brutes du HTU31D en valeurs de mesure de température et d'humidité physiques, les valeurs de mesure résultantes peuvent être utilisées directement, en enregistrant simplement les résultats dans ce cas.

Grâce à cette plateforme matérielle et à l'environnement logiciel associé, les développeurs peuvent rapidement évaluer et prototyper les applications de capteur HTU31D pour obtenir des mesures précises de l'humidité relative et de la température à diverses résolutions. Pour le développement matériel personnalisé, la carte Temp & Hum 14 Click de MikroElektronika sert de conception de référence intégrale, avec la conception physique et les schémas complets. Pour le développement logiciel personnalisé, le progiciel Temp-Hum 14 Click fournit un modèle de base pour développer des applications plus étendues.

Conclusion

L'humidité et la température jouent un rôle essentiel dans l'intégrité des structures et des équipements, ainsi que dans la santé et le bien-être des personnes. Cependant, une gestion appropriée de l'humidité et de la température dépend d'une combinaison de précision des mesures et de mesures omniprésentes, ce qui est difficile à réaliser en raison des limites des solutions de capteurs conventionnelles.

Un capteur d'humidité et de température de TE Connectivity Measurement Specialties offre la combinaison unique de précision, de stabilité, de format et de facilité d'utilisation, requise pour répondre aux exigences de mesures émergentes dans les applications grand public, industrielles et médicales.

Références

  1. Low ambient humidity impairs barrier function and innate resistance against influenza infection
  2. High Humidity Leads to Loss of Infectious Influenza Virus from Simulated Coughs
  3. The effect of temperature and humidity on the stability of SARS-CoV-2 and other enveloped viruses
DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey