DHT11

Bonjour,

J’ai une erreur de syntaxe sur un code, je ne vois pas ce qu’il me manque. Seriez-vous m’aider ?
Je ne compte pas utiliser un LCD, je vais adapter mon futur code (Afficheur 7 Segments ) pour avoir l’info du DHT 11

#include <DHT.h>
#define DHTPIN 13
#define DHTTYPE DHT11,
DHT dht (DHTPIN,DHTTYPE);

void setup(){
  
  //lcd.begin(16,2);
  dht.begin();
}


void loop(){
  float temperature = dht.readTemperature();
  float humidite = dht.readHumidity();

//  if(isnan(temperature) || isnan(humidite)){
//  }
//
//  else{
//    lcd.setCursor(0,0);
//    lcd.print("Temp: ");
//    lcd.print(temperature);
//    lcd.print("C");
//    lcd.setCursor(0,1);
//    lcd.print("Humi: ");
//    lcd.print(humidite);
//    lcd.print("%");
//  }
//  delay(1000);
}
#define DHTTYPE DHT11,
// vire cette virgule

J'ai enlever la " , " et le " ; ", mais ça ne change rien.

Le message d'erreur est :

Non utilisé : C:\Users******\Documents\Arduino\libraries\DHT11 exit status 1 Erreur de compilation pour la carte Arduino/Genuino Uno

#define DHTTYPE DHT11
DHT dht (DHTPIN,DHTTYPE)

Le point virgule était correct

Voilà le code modifier pour mes besoin. Et toujours le même type d’erreur…

Non utilisé : C:\Users*****\Documents\Arduino\libraries\DHT11
exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

#include <DHT.h>
#define DHTPIN 13
#define DHTTYPE DHT11
DHT dht (DHTPIN,DHTTYPE);

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

void loop(){
  float temperature = dht.readTemperature();
  float humidite = dht.readHumidity();

if (isnan(temperature)){
  Serial.println("capteur...");
}
else
{
  Serial.print("température");
  Serial.print(temperature);
  Serial.print("C°");
  delay(1000);
}

}

J'ai l'impression que ta bibliothèque est mal installée: essaye de l'effacer et de la réinstaller, avec le gestionnaire de bibliothèques de l'IDE.

J'ai effacé la librairie et remise par la suite, tout est ok dans la compilation, je dois juste modifier un peu mon câblage.

Je n'ai aucune valeur dans mon moniteur. Il n'y a plus aucunes erreurs de syntaxe. Ci-joint mon câblage. Voyez-vous une erreur ??

  Serial.begin();

Avec le baudrate c'est mieux 9600 ou 115200 ou ... à ta convenance :

 Serial.begin(115200);

Je dois laisser 9600, car ça m'affiche des caractères spéciaux....

Il faut que ce chiffre soit le même que celui que tu sélectionnes en bas de la console. Donc tu peux mettre 115200 dans le code et choisir cette valeur dans la console. D'une manière générale, autant conserver ce réglage par la suite.

CE que j'obtient

⸮Read failcapteur... Temp 0.00C° humi 0.00%Read failcapteur... Temp 0.00C°

Visiblement tu as modifié ton code par rapport à la version du premier message. Ton message d'erreur vient d'ici :

if (isnan(temperature)){
 Serial.println("capteur...");
}

Peut-être un mauvais câblage du capteur?

J'ai posté plus haut une image du câblage.

Oui, on trouve ce type de schéma sur Internet (au besoin teste ce qui est sur ce lien), mais es-tu sûr de l'avoir correctement réalisé ? Sinon, je ne vois rien qui empêche de fonctionner...

Pour compléter , tu as juste le composant (comme ton schéma) ou un module avec un PCB et ton composant dessus (avec souvent une led, une ou deux résistances etc) ?

J'ai eu un module donc le sens des broches était différente du capteur (exemple avec un DHT22) :

DHT22 seul : VCC DATA GND Module complet : VCC GND DATA

On peut vite faire des erreurs ...

BrUnO14200: On peut vite faire des erreurs ...

Effectivement, tu as bien raison, les pins ne sont pas comme sur mon schema et j'ai déjà une résistance de 10K.

Par contre je n'ai toujours rien comme donnée. J'ai essayé avec un autre capteur du même type ( même pins) et rien du tout :-(

Il y a des bibliothèques qui gèrent les DHT11/DHT22 comme des bouses.

Cherche la bibliothèque écrite par Rob Tilaart : celle là c'est certain qu'elle fonctionne correctement. Ensuite si tu dois racheter un DHT prend un DHT22 (ou AM2302) il est nettement plus précis.

Cela n'empêche pas de rechercher des erreurs de câblage :confused: