@@ -21,7 +21,7 @@ void DHT::begin(void) {
2121 _lastreadtime = 0 ;
2222}
2323
24- // boolean S == Scale. True == Farenheit ; False == Celcius
24+ // boolean S == Scale. True == Fahrenheit ; False == Celcius
2525float DHT::readTemperature (bool S) {
2626 float f = NAN;
2727
@@ -78,18 +78,34 @@ float DHT::readHumidity(void) {
7878 return f;
7979}
8080
81- float DHT::computeHeatIndex (float tempFahrenheit, float percentHumidity) {
81+ // boolean isFahrenheit: True == Fahrenheit; False == Celcius
82+ float DHT::computeHeatIndex (float temperature, float percentHumidity, bool isFahrenheit) {
8283 // Adapted from equation at: https://github.com/adafruit/DHT-sensor-library/issues/9 and
8384 // Wikipedia: http://en.wikipedia.org/wiki/Heat_index
84- return -42.379 +
85- 2.04901523 * tempFahrenheit +
86- 10.14333127 * percentHumidity +
87- -0.22475541 * tempFahrenheit*percentHumidity +
88- -0.00683783 * pow (tempFahrenheit, 2 ) +
89- -0.05481717 * pow (percentHumidity, 2 ) +
90- 0.00122874 * pow (tempFahrenheit, 2 ) * percentHumidity +
91- 0.00085282 * tempFahrenheit*pow (percentHumidity, 2 ) +
92- -0.00000199 * pow (tempFahrenheit, 2 ) * pow (percentHumidity, 2 );
85+ if (!isFahrenheit) {
86+ // Celsius heat index calculation.
87+ return -8.784695 +
88+ 1.61139411 * temperature +
89+ 2.338549 * percentHumidity +
90+ -0.14611605 * temperature*percentHumidity +
91+ -0.01230809 * pow (temperature, 2 ) +
92+ -0.01642482 * pow (percentHumidity, 2 ) +
93+ 0.00221173 * pow (temperature, 2 ) * percentHumidity +
94+ 0.00072546 * temperature*pow (percentHumidity, 2 ) +
95+ -0.00000358 * pow (temperature, 2 ) * pow (percentHumidity, 2 );
96+ }
97+ else {
98+ // Fahrenheit heat index calculation.
99+ return -42.379 +
100+ 2.04901523 * temperature +
101+ 10.14333127 * percentHumidity +
102+ -0.22475541 * temperature*percentHumidity +
103+ -0.00683783 * pow (temperature, 2 ) +
104+ -0.05481717 * pow (percentHumidity, 2 ) +
105+ 0.00122874 * pow (temperature, 2 ) * percentHumidity +
106+ 0.00085282 * temperature*pow (percentHumidity, 2 ) +
107+ -0.00000199 * pow (temperature, 2 ) * pow (percentHumidity, 2 );
108+ }
93109}
94110
95111boolean DHT::read (void ) {
0 commit comments