materiels:capteurs:humidite:humidite

Ceci est une ancienne révision du document !


Sommaire Matériels

Capteurs - Humidité

[Mise à jour le 31/1/2020]

L'humidité relative de l'air, ou degré hygrométrique, couramment noté φ, correspond au rapport de la pression partielle de la vapeur d'eau contenue dans l'air sur la pression de vapeur saturante (ou tension de vapeur) à la même température. Elle est donc une mesure du rapport entre le contenu en vapeur d'eau de l'air et sa capacité maximale à en contenir dans ces conditions. Ce rapport changera si on change la température ou la pression bien que l'humidité absolue de l'air n'ait pas changé. Elle est mesurée à l'aide d'un hygromètre.Wikipédia


Ce module, basé sur le capteur HIH4030, mesure l'humidité relative et délivre une tension en sortie qui peut être raccordée sur une entrée analogique d'un microcontrôleur.
  • Caractéristiques
    • Alimentation: 5 Vcc (4 à 5,8 Vcc)
    • Consommation: 200 µA
    • Plage de mesure: 0 à 100% HR
    • Précision: ± 3,5% HR
    • Temps de réponse: 5 s
    • Sortie analogique linéaire
    • Température de service: -40°C à +85°C
    • Dimensions: 19 x 7,6 mm

  • Documentation
    • Fichier Acrobat Reader à télécharger ici
  • Modèles
    • Sans correction de l'influence de la température : VOUT=(VSUPPLY)(0.0062(sensor RH) + 0.16), typical at 25 ºC
    • Avec correction : RH = (Sensor RH)/(1.0546 – 0.00216T), T in ºC

  • Aide pour la simulation de la chaîne de mesure
    • Les équations de la chaîne de mesure sont téléchargeables ici
    • Le modèle à simuler est téléchargeable ici

  • Programmation d'une carte Arduino Uno R3
    • Bibliothèques à télécharger ici et à installer dans l'IDE.
      • Installation : dézipper le répertoire à télécharger sur Github et le copier dans C:\Documents\Arduino\libraries.
    • Connexion à un shield Tinkerkit v2 monté sur une Arduino Uno.
    • Traitement à réaliser : RH=f(N)
    • Exemple 1 (sans correction de l'influence de la température ambiante)
HIH4030.cpp
// Library Inclusions
#include <SparkFun_HIH4030.h>
 
// Analog IO Pin Connected to OUT
#define HIH4030_OUT A0
 
// Supply Voltage - Typically 5 V
#define HIH4030_SUPPLY 5
 
// Library Variables
HIH4030 sensorSpecs(HIH4030_OUT, HIH4030_SUPPLY);
 
void setup(void){
  Serial.begin(9600);               // Serial Port
}
 
void loop(void){
  Serial.print("Sensor Voltage = ");
  Serial.print(sensorSpecs.vout());
  Serial.println(" V");
  Serial.print("Relative Humidity = ");
  Serial.print(sensorSpecs.getSensorRH());
  Serial.println(" %");
  Serial.println("");               // Return Space Between Readings
  delay(5000);                      // Slow Down Serial Output
}
  • Exemple 2 : mesure de RH avec correction de l'influence de la température ambiante

Arduino Examples → Examples from Custom Libraries → SparkFun_HIH4030_Library → HIH4030_HumiditySensor_Example.ino

Le répertoire du projet de l'exemple 1 pour l'IDE VSCode est téléchargeable ici

  • Programmation d'une carte FEZ avec l'IDE Visual Studio Community

A venir


Il est pertinent de connaître la nature du sol avant de se lancer dans la plantation : sol drainé, sol humide ou sol sec.

Les différents végétaux n'ont pas les mêmes besoins en eau. Certains préfèrent un sol humide tandis que d'autres évoluent plus harmonieusement dans un sol riche en sable. ooreka

Ce module capteur d'humidité compatible Grove permet de connaître la concentration d'eau dans la terre par exemple. Le capteur délivre une valeur analogique en fonction de la teneur en eau.
Applications: contrôle d'humidité pour plante, détecteur d'eau etc.
  • Caractéristiques
    • Alimentation: 3,3 ou 5 Vcc
    • Consommation: 35 mA maxi
    • Dimensions: 60 x 20 x 13 mm

  • Modèle
    • Fichier Excel à télécharger ici

  • Aide pour la simulation de la chaîne de mesure
    • Les équations de la chaîne de mesure sont téléchargeables ici
    • Le modèle à simuler est téléchargeable ici
  • Programmation d'une carte Arduino Uno R3
    • Bibliothèques à installer dans l'IDE : aucune
    • Connexion à un shield Tinkerkit v2.
    • Traitement à réaliser : RH=f(N)
    • Un premier exemple
moisture.cpp
// ------------------------------------------
// Capteur : humidité terre
// Arduino : Uno
// Date : 3/2019
// Fichier : moisture.ino
// Auteur : Philippe Mariano
// ------------------------------------------
#include <math.h>
#include <stdio.h>
 
// Variables
// remarque : float codé sur 4 octets
float k = 776;
int N = 0; // image de l'humidité
 
void setup()
{
    Serial.begin(9600);
}
 
void loop()
{
    // Lire
    N = analogRead(A0);
    // Traiter
    float RH = 20 - 25 * log(1 - N / k); // RH=f(N)
    // Ecrire
    Serial.print("RH");
    Serial.print(N);
    Serial.print("=");
    Serial.print(RH);
    Serial.print("\n");
    delay(2000);
}

Le projet pour l'IDE VSCode de l'exemple ci-dessus est téléchargeable ici
  • materiels/capteurs/humidite/humidite.1656349409.txt.gz
  • Dernière modification : 2022/06/27 19:03
  • de phil