Connecter 2 capteurs DHT22

Bonjour à tous,
Je suis en classe de première générale et pour un travail en enseignement scientifique je dois réaliser un montage arduino. Je dois connecter 2 capteurs de températures Dht22 à la même carte arduino uno r3. J'ai réussi à connecter un capteur et à faire le programme, tout marche très bien. Mais je n'arrive pas à faire le programme pour que les 2 capteurs de températures relève des températures. Si vous pourriez m'aider à faire le programme pour que je puisse relever les températures des 2 capteurs sur mon ordinateur ça m'aiderais vraiment beaucoup (sachant que le travail est à faire pour demain :sob:)
Merci pour votre aide.

Tu as réussi avec un capteur.
Donc, tu as pris une bibliothèque et tu as déclaré un objet DHT22 que tu as nommé..........ah mince, tu n'as pas joint le code, c'est ballot, comment on va pouvoir faire pour t'aider ?

Tu déclares un autre objet DHT22 avec un nom différent, et pi, c'est tout.
Tu interroges chaque objet avec le nom que tu lui as donné.

Il serait bon que tu lises entièrement le message épinglé Les bonnes pratiques du Forum Francophone

PS publication du code :
Avant de copier le code sur ce forum il faut l'indenter dans l'IDE : faire CTRL T.
Puis le copier sur le forum et le placer entre balises code :

Voila le programme actuel :
#include <DHT.h>;

#define DHT22_PIN 2
#define DHTTYPE DHT22
DHT dht(DHT22_PIN, DHTTYPE);

float temp;

void setup() {
Serial.begin(9600);
dht.begin();
}

void loop() {
temp = dht.readTemperature();
Serial.print(temp);
Serial.println(" °C");
delay(1000);
}

programme 1

Salut @pandalulu
Quelques points qui me semblent importants :

  • Tu n'as pas du lire les bonnes pratiques du forum francophone comme demandé par @68tjs : Il y est précisé de ne pas poster d'image de texte car c'est illisible en particulier sur smartphone. Édite ton post avec l'icône de crayon en bas à droite pour supprimer l'image et mettre directement ton code entre les balises <code/> -> Les bonnes pratiques du Forum Francophone

  • @68tjs t'as également fourni une solution pour ton problème :
    Il te suffit de déclarer deux instances de la classe DHT, dont tu pouras obtenir les valeurs respective avec leurs noms et readTemperature() (ou toutes autres fonctions de la bibliothèques). Par exemple (tapé ici, non testé) :

#include <DHT.h>;

// première instance pour le premier capteur :
DHT dhtC1(2, DHT22);
// seconde instance pour le deuxième capteur :
DHT dhtC2(3, DHT22); // sur une autre pin de la carte, bien entendu !

float tempC1;
float tempC2;

void setup() {
  Serial.begin(115200); // ici mieux veux mettre 115200 bauds... Voir le troisième point.
  // on initialise le premier capteur...
  dhtC1.begin();
  // puis le second !
  dhtC2.begin();
}

void loop() {
  // premier capteur DHT
  tempC1 = dhtC1.readTemperature();
  Serial.print("Température du capteur DHT N°1 : ");
  Serial.print(tempC1);
  Serial.println(" °C");
  // second capteur DHT
  tempC2 = dhtC2.readTemperature();
  Serial.print("Température du capteur DHT N°2 : ");
  Serial.print(tempC2);
  Serial.println(" °C");
  // enfin, on attend 1 seconde.
  delay(1000);
}
  • troisième point : la vitesse de 9600 bauds que tu as choisie pour le moniteur série est très trèèès lente... Prends par exemple 115200 voir plus si tu veux... En prenant soin de sélectionner également cette vitesse dans ton IDE !

Bon code,
Cordialement
Pandaroux007

Equation logique :
code :
non indenté && non entre balises <CODE/> => Code non lu

+1... Je n'aurai pas dû répondre tant que @pandalulu n'avais pas mis les balises code... Désolé.

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