j-fremont / thermostat

0 stars 0 forks source link

Le capteur DHT11 renvoie nan #3

Open j-fremont opened 4 years ago

j-fremont commented 4 years ago

Pour debugger avec la librairie DHT, il faut en théorie ajouter la ligne suivante au sketch (voir DHT.h), mais cela ne fonctionne pas.

#define DHT_DEBUG

On force en mettant des lignes en commentaires dans DHT.h.

/* Setup debug printing macros. */
//#ifdef DHT_DEBUG
  #define DEBUG_PRINT(...) { DEBUG_PRINTER.print(__VA_ARGS__); }
  #define DEBUG_PRINTLN(...) { DEBUG_PRINTER.println(__VA_ARGS__); }
//#else
//  #define DEBUG_PRINT(...) {} /**< Debug Print Placeholder if Debug is disabled */
//  #define DEBUG_PRINTLN(...) {} /**< Debug Print Line Placeholder if Debug is disabled */
//#endif
j-fremont commented 4 years ago

Apparemment, le problème du nan vient du timeout trop court pour la réception du front haut du DHT11 quand il signale qu'il est prêt à envoyer des données ("DHT timeout waiting for start signal high pulse"). On augmente ce timeout (de 1000 à 3000) dans DHT.cpp.

DHT::DHT(uint8_t pin, uint8_t type, uint8_t count) {
...
#ifdef __AVR
...
#endif
  _maxcycles = microsecondsToClockCycles(3000); // 1 millisecond timeout for reading pulses from DHT sensor.
}
j-fremont commented 4 years ago

Le problème venait en fait d'une breadboard défectueuse qui déteriorait le signal sur la broche DATA du DHT11.