//DHT 22 Temperature and Relative Humidity Reading Function //Definitions #define DHTTYPE DHT22 //1 const int DHTPIN = 15; //2 //Libraries & Objects #include //3 DHT dht(DHTPIN, DHTTYPE); //4 //Variable Declaration/Initialization float dht22AirTem = 0; //5 float dht22AirTemSum = 0; String dht22Temperature = ""; float dht22RelHum = 0; float dht22RelHumSum = 0; String dht22Humidity = ""; void setup() { delay(5000); //6 Serial.begin(115200); //7 Serial.println("Measurement is starting ..."); } void loop() { Serial.println("Measuring ..."); measureDHTTemHum(5); //8 Serial.println("Temperature: " + dht22Temperature + " °C"); //9 Serial.println("Relative Humidity: " + dht22Humidity + " %"); Serial.println("=============================="); delay(2000); //10 } void measureDHTTemHum (byte AveragingNumber) //11 { delay(1000); //12 dht.begin(); //13 dht22AirTemSum = 0; //14 dht22RelHumSum = 0; dht22Temperature = ""; dht22Humidity = ""; for (byte i = 0; i < AveragingNumber; i++) //15 { do { //16 dht22AirTem = dht.readTemperature(); //17 dht22RelHum = dht.readHumidity(); if (!isnan(dht22AirTem) && !isnan(dht22RelHum)) //18 { dht22AirTemSum += dht22AirTem; //19 dht22RelHumSum += dht22RelHum; } else delay(2000); //20 } while (isnan(dht22AirTem) || isnan(dht22RelHum)); //21 if (i < (AveragingNumber - 1)) //22 delay(2000); } dht22AirTem = dht22AirTemSum / AveragingNumber; //23 if(dht22AirTem<10) //24 dht22Temperature = '0'; dht22Temperature = dht22Temperature + dht22AirTem; //25 dht22RelHum = dht22RelHumSum / AveragingNumber; if(dht22RelHum<10) dht22Humidity = '0'; dht22Humidity = dht22Humidity + dht22RelHum; }