Ma maigre contribution
je precise , je suis loin d'être un expert ...
Je n'ai pas trouvé de code pour l’utilisation de plusieurs capteurs DHT22 , j'ai donc adapté ce code :
/*
Objet : Mesure temperature et hygrometrie avec plusieurs capteurs dht22
*/
#include "DHT.h" // ajout de la bibliothèque DHT
#define DHTTYPE DHT22 // type de sonde
// Numero de pin du premier capteur
int FisrtDHT = 6;
// Nombre de capteur
const int nSensors = 4;
DHT dht(FisrtDHT, DHTTYPE); // instanciation objet dht
void setup() {
Serial.begin(9600); // ouverture connexion serie
Serial.println("Test Capteur DHT22 ----------------------"); //
dht.begin();
}
void loop() {
// Numero de PIN du premier capteur
int FirsrtPinDHT = 4;
int CourantPinDHT ;
// Boucle
for (int i=0; i<nSensors; i++)
{
CourantPinDHT=FirsrtPinDHT+i;
DHT dht(CourantPinDHT, DHTTYPE); // instanciation objet dht
delay(2000); // attente de 2 secondes avant de refaire une mesure
float h = dht.readHumidity(); // lecture humidité et affectation a une variable de type float
float t = dht.readTemperature(); // lecture température et affectation a une variable de type float
// test si retour sonde dht2 ok ou pas ...
if (isnan(t) || isnan(h))
{
Serial.print("------------------- Capteur n°" );
Serial.print(i+1);
Serial.println(" -------------------");
Serial.print("Pin n°" );
Serial.println(CourantPinDHT);
Serial.println("Erreur de lecture sonde dht22");
delay(1000); // attente
}
else
{
//affichage des donnees sur la console serie
Serial.print("------------------- Capteur n°" );
Serial.print(i+1);
Serial.println(" -------------------");
Serial.print("Pin n°" );
Serial.println(CourantPinDHT);
Serial.print("Humidite : " );
Serial.print(h);
Serial.print( " %\t ");
Serial.print(" Temperature : " );
Serial.print(t);
Serial.println(" C ");
}
}
}