Formule de calcul humidité absolue

Bonjour

Je souhaite calculer l'humidité absolue avec des mesures issues d'un capteur DHT22.
J'ai trouvé une formule
Absolute Humidity (grams/m3) = 6.112 × e[1] × rh × 2.1674
(273.15+T)
voir le lien : How to convert relative humidity to absolute humidity | carnotcycle

mais je n'arrive pas mettre en forme la formule dans le programme, apparemment l'exposant ?

Un "matheu" pourrait il m'aider s'il vous plait ??

Merci.


  1. (17.67 × T)/(T+243.5) ↩︎

1 Like

Bonjour,

Tout simplement en utilisant la fonction 'exp()'.

Bonjour,

Voilà:

 float ah = 6.112 * exp((17.67 * T) / (T + 243.5)) * rh * 2.1674 / (273.15 + T);

Inutile d'être matheu il suffit juste de ce servir d'un moteur de recherche.

Forme générale :
Moteur : Qwant
Question : "C puissance"
Première réponce : pow(a,b) élève "a" à la puissance "b".

La réponse de Kamill juste ici n'est utilisable qu'avec "e" qui représente le nombre d'Euler des exponentielles.

Note : inutile de faire include <math.h> comme indiqué dans la réponce. Dans le cadre de l'IDE arduino c'est fait automatiquement (dans include <Arduino.h> qui n'est pas affiché à l'écran, tout comme la fonction init() qui positionne les microcontroleur à la sauce arduino).

IMPECCABLE, merci beaucoup.

J'avais bien essayé la fonction pow, mais j'avais une erreur ou bien un résultat foireux, certainement une parenthèse mal placée.

J'ai vu que pas mal de personnes avait des problèmes avec cette conversion, j'espère que ça va les aider pour leurs recherche.

Encore merci.

Bonjour ,
Pour information , j'ai réussit à faire tourner un bout de programme pour convertir humidité relative ( en % ) en humidité absolue ( gramme /m3 ) à partir de la température ( en degrés ) . Comme j'ai mis beucoup de temps à trouver la solution je partage .
J'ai vérifié les résultats avec des convertisseurs en ligne et les erreurs sont minimes:

float Temperature = 19.00 ; // en degres celsius
float Humidite_Relative =70 ; // en %
float Humidite_Absolue ; // en grammes /M3
// the setup routine runs once when you press reset:
void setup()
{
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);

}
// the loop routine runs over and over again forever:
void loop()
{
// --------------- Calcul de l'humidité absolue
Humidite_Absolue = ( 6.112 * Humidite_Relative * 2.1674 * pow(2.718281828 ,( ( 17.67 * Temperature ) / ( Temperature + 243.5 ) ) ) / ( 273.15 + Temperature ) );
Serial.print( Temperature );
Serial.print( " Degrés et " );
Serial.print( Humidite_Relative );
Serial.print( " % d'humidité relative " );
Serial.print( " ===> Donne une humidité absolue de : ");
Serial.print( Humidite_Absolue );
Serial.print( " gr /M3 " );
Serial.println( " ----------------------------- ");

delay( 1000 ) ;
}

1 Like

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.