Go Down

Topic: Comment faire une moyenne de 2 capteurs d'humidité (Capteur DHT22) ? (Read 1 time) previous topic - next topic

EdwinR

Dans mon projet de BAC, je dois faire la moyenne de 2 capteurs d'humidité (dans mon cas 2 capteurs DHT22). Je ne sais pas comment m'y prendre..
A noter que je ne suis pas bon en programmation !


J'ai des pistes comme :

float DHTMoy = (DHTPIN + DHTPIN1)/2;

float DHTMoy = (h1+h2)/2 = H;


Pour l'instant voici mon code :

Code: [Select]
#include "DHT.h"
#define DHTPIN 8
#define DHTPIN1 9
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#define Brumi 10
#define Alarme 11

void setup()
{
 Serial.begin(9600);
 Serial.println("Mesures :");
 Serial.println("         ");
 dht.begin();
}

void loop()
{
 delay(2000);
 
 float h = dht.readHumidity();
 float t = dht.readTemperature();
 
 if (isnan(h) || isnan(t))
 {
   Serial.println("Failed to read from DHT sensor!");
   return;
 }
 
 Serial.println("Humidite : ");
 Serial.print(h);
 Serial.println(" % ");
 Serial.println("Température : ");
 Serial.print(t);
 Serial.println(" *C ");
 Serial.println("--------");


// --------BRUMISATEUR-------- :
// Si l'humidité est inférieure à 50%, le brumisateur s'enclenche.
if (h<50)
{

  digitalWrite(Brumi,HIGH);

}

// Si l'humidité est comprise entre 50% et 70%, le brumisateur s'éteint.
else if (50<h<70)
{

  digitalWrite(Brumi,LOW);

}


// --------ALARME-------- :
// Si l'humidité est supérieure à 70% ou inférieure à 50%, l'alarme s'enclenche.
if (h>70 || h<50)
{

  digitalWrite(Alarme,HIGH);

}

// Si l'humidité est comprise entre 50% et 70%, l'alarme s'éteint.
if (50<h<70)
{

  digitalWrite(Alarme,LOW);

}


}

Scoob

Salut,
 je tu suggère de déplacer ton message dans la partie général du fofo Francophone et non pas dans le sous-fofo "réalisation et projets finis" qui, comme son nom l'indique est fait pour les choses finis
Concernant ton problème, et en suposant que tu fasse le necessaire pour le problème que je viens de cité, voyons voir...

Code: [Select]
float DHTMoy = (DHTPIN + DHTPIN1)/2;

 :o DHTPIN & DHTPIN1 sont #define avec respectivement 8 & 9... pourquoi pas, mais la valeur risque de ne pas bouger des masses :smiley-lol:

Code: [Select]
float DHTMoy = (h1+h2)/2 = H;

 8) h1 est suposer être la valeur lu par le 1er capteur et h2 par le second qu'on additionne ensemble et qu'on divise le résulta par 2... une moyenne donc des deux valeurs. Sa me parle! Mais = H as la suite est en trop! C'est pas H qui prendra la valeur moyenne mais bien DHTMoy.

En lisant ton code en diagonal, je tombe sur cette ligne: else if (50<h<70) et le même plus bas sans le else. Ca marche cette syntaxe!? :o :o
En même temps je lis if (h>70 || h<50) qui fait apriori le même type de comparaison..?! Et celle-ci (la syntaxe) m'est familière.

Go Up