Fatal error: DHT.h: No such file or directory

Bonjour,

En tant que débutant sur Arduino, j'ai actuellement un problème avec mon programme. J'essaye de lire les données envoyées par un capteur de Température-Humidité type DHT11.

J'ai correctement installé la bibliothèque spécialement conçue pour les capteurs DHT:

J'ai vérifié que dans le dossier "librairies" Arduino il y avait bien celle-ci et j'ai vérifié que l'IDE Arduino le visualise bien.

Mais quand j'essaie de télécharger le programme, c'est ce qu'il me dit:

Voilà le programe Arduino que j'utilise:

#include "DHT.h"

// for DHT11, 
//      VCC: 5V or 3V
//      GND: GND
//      DATA: 2
int pinDHT11 = 2;
SimpleDHT11 dht11;

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

void loop() {
  // start working...
  Serial.println("=================================");
  Serial.println("Sample DHT11...");
  
  // read with raw sample data.
  byte temperature = 0;
  byte humidity = 0;
  byte data[40] = {0};
  if (dht11.read(pinDHT11, &temperature, &humidity, data)) {
    Serial.print("Read DHT11 failed");
    return;
  }
  
  Serial.print("Sample RAW Bits: ");
  for (int i = 0; i < 40; i++) {
    Serial.print((int)data[i]);
    if (i > 0 && ((i + 1) % 4) == 0) {
      Serial.print(' ');
    }
  }
  Serial.println("");
  
  Serial.print("Sample OK: ");
  Serial.print((int)temperature); Serial.print(" *C, ");
  Serial.print((int)humidity); Serial.println(" %");
  
  // DHT11 sampling rate is 1HZ.
  delay(1000);
}

Je pense que ma bibliothèque est bien installée, mais j'ai l'impression que Arduino IDE ne la reconnaît pas ou ne la trouve pas.
J'espère que vous pourrez m'aider.

Bonne journée.

Florent.

Bonjour,

Les includes qui résident dans les directory system doivent être entre <>

#include <DHT.h>

Il n'est pas certain que ce soit ça car les compilateurs peuvent aussi chercher les includes entre "" aussi dans les directory system

Bonjour kamill,

En effet, même après avoir remplacé les " par <DHT.h>, le problème persiste.

Tu as installé la librairie comment? Si tu l'as installée en dézippant dans le répertoire, il faut redémarrer l'IDE pour que ce soit pris en compte.

J'ai utilisé 2 méthodes pour voir si les deux ne marchaient pas ou une seule:

  1. J'ai tout d'abord installé la librairie via le Gestionnaires de librairies Arduino IDE= Le problème est apparu.

  2. J'ai donc ensuite essayer la méthode manuel et même après redémarrage de l'IDE= Le problème persiste.

Ben la je ne sais plus ou chercher.

Il y a quand même deux choses qui me pose question (mais qui n'expliquent pas le problème)

  • chez moi cette librairie se nomme DHT-sensor-library-master et non DHT_sensor_library
  • la class SimpleDHT11 que tu utilises dans ton programme ne fait pas partie de cette librairie

Est ce que tu as essayé de compiler un des exemples de la librairie?

kamill:

  • la class SimpleDHT11 que tu utilises dans ton programme ne fait pas partie de cette librairie

Est ce que tu as essayé de compiler un des exemples de la librairie?

Je viens d'essayer de compiler un exemple mais toujours le même problème avec exactement le même message qui porte sur DHT.h

Je met la copie du code de l'exemple:

// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

#include "DHT.h"

#define DHTPIN 2     // what digital pin we're connected to

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors.  This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("DHTxx test!");

  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.print(" *F\t");
  Serial.print("Heat index: ");
  Serial.print(hic);
  Serial.print(" *C ");
  Serial.print(hif);
  Serial.println(" *F");
}

Je viens d'essayer chez moi, cet exemple se compile sans problème (IDE 1.8.3 sous windows 7)

Il y a peut être un problème dans l'installation de l'IDE, tu devrais essayer de le réinstaller.

Ok je teste ça le plus rapidement possible. :wink:

Ok je viens de tester l'exemple et le programme que j'ai crée sous différentes versions de l'Arduino IDE:

-Arduino 1.8.3
-Arduino 1.8.5

Le problème persiste toujours, même après avoir retélécharger la librairie comme vous avec le nom Master:

J'ai donc testé l'exemple et mon programme avec l'Arduino Editor Web et voilà ce que cela donne:

-Pour l'EXEMPLE ça marche:

-Pour le programme que j'ai crée:

Les erreurs suivantes dans la console noir sont maintenant différentes:

arduino-builder/arduino-builder -compile -core-api-version 10611 -build-path /tmp/507578806/build -hardware arduino-builder/hardware -hardware arduino-builder/packages/cores -tools arduino-builder/tools -tools arduino-builder/packages/tools -built-in-libraries arduino-builder/latest -libraries /tmp/507578806/pinned -libraries /tmp/507578806/custom -fqbn arduino:avr:uno -build-cache /tmp -logger humantags -verbose=false -logger humantags /tmp/507578806/sketch_oct4a

Multiple libraries were found for "DHT.h"

Used: /tmp/507578806/custom/DHT-sensor-library

Not used: /home/admin/builder/arduino-builder/latest/NanoPlayBoard-0.1.1

Not used: /home/admin/builder/arduino-builder/latest/DHT sensor library-1.3.0

/tmp/507578806/sketch_oct4a/sketch_oct4a.ino: In function 'void loop()':

/tmp/507578806/sketch_oct4a/sketch_oct4a.ino:23:7: error: 'dht11' was not declared in this scope

if (dht11.read(pinDHT11, &temperature, &humidity, data)) {

^

exit status 1

Je vois que le nom d'utilisateur et par voie de conséquence le répertoire comporte des caractères accentués.
C'est peut être ça qui le stresse. Essaie de mettre ton programme (et son répertoire ) dans un autre répertoire, par exemple c:\tmp

Et voilà ce que ça donne:

kamill:
... par exemple c:\tmp

Apparemment, FlorentS est sous LInux, non ?

ChPr:
Apparemment, FlorentS est sous LInux, non ?

Le nom des répertoires sont des noms de répertoires windows.

Non je ne suis pas sous Linux mais bien sur Windows. :wink:

FlorentS:
Et voilà ce que ça donne:

Je n'ai plus d'idée :cry:

Des noms de répertoire commençant par "/home/..." m'on fait penser à Linux : Désolé.

Cordialement.

Pierre

C'est lorsque FlorentS a essayé la version WEB de l'IDE que les répertoires commençaient par /home

J'arrive peut-être un peu lourdement avec mes gros sabots, mais êtes-vous sûr d'avoir cette arborescence de répertoires :

  • Répertoire_Chapeau
  • libraries // en majuscules ou en minuscules : c'est là que doivent se trouver toutes vos librairies personnelles et là où vos sketchs iront les chercher
  • Vos_Sketch // c'et un répertoire ou non où se trouvent tous vos sketchs.

Cordialement.

Pierre

Bonsoir Pierre,

En effet, j'ai bien cette arborescence de répertoires :

Bonne soirée.

Florent