@@ -21,7 +21,7 @@ void DHT::begin(void) {
21
21
_lastreadtime = 0 ;
22
22
}
23
23
24
- // boolean S == Scale. True == Farenheit ; False == Celcius
24
+ // boolean S == Scale. True == Fahrenheit ; False == Celcius
25
25
float DHT::readTemperature (bool S) {
26
26
float f = NAN;
27
27
@@ -78,18 +78,34 @@ float DHT::readHumidity(void) {
78
78
return f;
79
79
}
80
80
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) {
82
83
// Adapted from equation at: https://github.com/adafruit/DHT-sensor-library/issues/9 and
83
84
// 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
+ }
93
109
}
94
110
95
111
boolean DHT::read (void ) {
0 commit comments