@@ -20,7 +20,7 @@ void DHT::begin(void) {
20
20
_lastreadtime = 0 ;
21
21
}
22
22
23
- // boolean S == Scale. True == Farenheit ; False == Celcius
23
+ // boolean S == Scale. True == Fahrenheit ; False == Celcius
24
24
float DHT::readTemperature (bool S) {
25
25
float f;
26
26
@@ -76,18 +76,30 @@ float DHT::readHumidity(void) {
76
76
return NAN;
77
77
}
78
78
79
- float DHT::computeHeatIndex (float tempFahrenheit, float percentHumidity) {
79
+ // boolean isFahrenheit: True == Fahrenheit; False == Celcius
80
+ float DHT::computeHeatIndex (float temperature, float percentHumidity, bool isFahrenheit) {
80
81
// Adapted from equation at: https://github.com/adafruit/DHT-sensor-library/issues/9 and
81
82
// Wikipedia: http://en.wikipedia.org/wiki/Heat_index
83
+ if (!isFahrenheit) {
84
+ return -8.784695 +
85
+ 1.61139411 * temperature +
86
+ 2.338549 * percentHumidity +
87
+ -0.14611605 * temperature*percentHumidity +
88
+ -0.01230809 * pow (temperature, 2 ) +
89
+ -0.01642482 * pow (percentHumidity, 2 ) +
90
+ 0.00221173 * pow (temperature, 2 ) * percentHumidity +
91
+ 0.00072546 * temperature*pow (percentHumidity, 2 ) +
92
+ -0.00000358 * pow (temperature, 2 ) * pow (percentHumidity, 2 );
93
+ }
82
94
return -42.379 +
83
- 2.04901523 * tempFahrenheit +
95
+ 2.04901523 * temperature +
84
96
10.14333127 * percentHumidity +
85
- -0.22475541 * tempFahrenheit *percentHumidity +
86
- -0.00683783 * pow (tempFahrenheit , 2 ) +
97
+ -0.22475541 * temperature *percentHumidity +
98
+ -0.00683783 * pow (temperature , 2 ) +
87
99
-0.05481717 * pow (percentHumidity, 2 ) +
88
- 0.00122874 * pow (tempFahrenheit , 2 ) * percentHumidity +
89
- 0.00085282 * tempFahrenheit *pow (percentHumidity, 2 ) +
90
- -0.00000199 * pow (tempFahrenheit , 2 ) * pow (percentHumidity, 2 );
100
+ 0.00122874 * pow (temperature , 2 ) * percentHumidity +
101
+ 0.00085282 * temperature *pow (percentHumidity, 2 ) +
102
+ -0.00000199 * pow (temperature , 2 ) * pow (percentHumidity, 2 );
91
103
}
92
104
93
105
0 commit comments