Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "DHT.h"
- #define DHTPIN 2
- //#define DHTTYPE DHT11 // DHT 11
- #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
- //#define DHTTYPE DHT21 // DHT 21 (AM2301)
- DHT dht(DHTPIN, DHTTYPE);
- int TimeToMeasure(int intIncrements);
- float GetMeasurement(boolean blnIsFirstMeasurement=false);
- boolean blnIsFirstMeasure=false;
- unsigned long ulFirstMeasurementPreviewMillis=0;
- unsigned long ulMeasurementPreviewMillis=0;
- float flMeasurements[10];
- int intNumberOfSamples=10;
- byte btNowMeasure=0;
- float flAverage=-200;
- void setup() {
- Serial.begin(9600);
- Serial.println(F("DHTxx test!"));
- dht.begin();
- GetMeasurement(true);
- }
- void loop() {
- float flAVR=0;
- flAVR=GetMeasurement();
- if(flAVR!=float(-200))
- {
- Serial.println(flAVR);
- }
- }
- float GetMeasurement(boolean blnIsFirstMeasurement=false)
- {
- unsigned long ulTime=millis()-ulMeasurementPreviewMillis;
- byte btCount=-1;
- float flSum=0;
- boolean blnGiveTheMeasure=false;
- if(blnIsFirstMeasurement==true)
- {
- ulFirstMeasurementPreviewMillis=0;
- blnIsFirstMeasure=true;
- }
- if (blnIsFirstMeasure==true)
- {
- if(millis()>2000)
- {
- blnIsFirstMeasure=false;
- }
- }
- else
- {
- if(ulTime<0){ulMeasurementPreviewMillis=millis();}
- if(ulTime>=TimeToMeasure(intNumberOfSamples))
- {
- btNowMeasure++;
- flMeasurements[btNowMeasure-1]=dht.readTemperature();
- if (isnan(flMeasurements[btNowMeasure-1]))
- {
- do
- {
- flMeasurements[btNowMeasure-1]=dht.readTemperature();
- }while(isnan(flMeasurements[btNowMeasure-1]==false));
- }
- if(btNowMeasure==byte(intNumberOfSamples))
- {
- ulMeasurementPreviewMillis=millis();
- for(btCount=0;btCount<byte(intNumberOfSamples);btCount++)
- {
- flSum=flSum+flMeasurements[btCount];
- flAverage=flSum/intNumberOfSamples;
- }
- btNowMeasure=0;
- btCount=0;
- }
- ulMeasurementPreviewMillis=millis();
- }
- }
- if(flAverage!=-200 && btCount==0){}else{flAverage=-200;}
- return flAverage;
- }
- int TimeToMeasure(int intIncrements)
- {
- int intTime=0;
- if(intIncrements==10){intTime=6000;}
- if(intIncrements==9){intTime=6666;}
- if(intIncrements==8){intTime=7500;}
- if(intIncrements==7){intTime=8571;}
- if(intIncrements==6){intTime=10000;}
- return intTime;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement