DHT22 ogni tanto letture a zero

Buongiorno,
nel mio sketch utilizzo un sensore DTH22 per misurare temperatura (e umidità).
Lo interrogo ogni minuto circa.
Qeusto il codice che uso (semplifico):

#include "DHT.h"
#define DHTPIN D4     
#define DHTTYPE DHT22   
DHT dht(DHTPIN, DHTTYPE); 


// struttura dati lettore
 struct dht_dati{
    String temperature;
    String humidity;
};



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





void loop() {
	delay(nn)
      reader_dht();
	if (lettura.temperature=xxx) {
	.....
	}
  }
  


void reader_dht(){
    lettura.humidity = dht.readHumidity();
    lettura.temperature = dht.readTemperature();
}

Ecco il problema:
casualmente (ho osservato il funzionamento per una giornata per capire se c'erano concause) il DTH22 rimanda letture a zero.
Questo accade per un numero di volte variabile tra 2 e anche una decina.
Poi tutto riprende a funzionare.

Cosa posso fare?
Come posso fare a stabilire che la lettura della temperatura è andata "male"?
Non posso semplicemente verificare se viene ritornato 0 (zero)... la temperatura potrebbe essere realmente zero...

Grazie.

Simone

Non posso semplicemente verificare se viene ritornato 0 (zero)... la temperatura potrebbe essere realmente zero...

Dipende.........
Se fai letture ogni minuto e la precedente era 10º ..................

Provo a riformulare la domanda:

  • può accedere che un DTH22 non renda una lettura?
  • vi è mai accaduto?
  • quale workaround potrebbe essere utile? (tipo mettere dei delay, cicli di più letture ecc ecc)

Grazie.

come sensore ha un tempo di intervallo tra le letture di 1 secondo se non ricordo male per cui se lo interroghi ogni minuto non hai bisogno di ulteriori delay, al limite potresti provare a mettere 4 o 5 letture (a 1 secondo una dall'altra) e fare la media...magari escludendol le misure che danno differenze superiori a 1-2 gradi una dall'altra