@@ -20,7 +20,7 @@ void DHT::begin(void) {
2020 _lastreadtime = 0 ;
2121}
2222
23- // boolean S == Scale. True == Farenheit ; False == Celcius
23+ // boolean S == Scale. True == Fahrenheit ; False == Celcius
2424float DHT::readTemperature (bool S) {
2525 float f;
2626
@@ -76,18 +76,30 @@ float DHT::readHumidity(void) {
7676 return NAN;
7777}
7878
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) {
8081 // Adapted from equation at: https://github.com/adafruit/DHT-sensor-library/issues/9 and
8182 // 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+ }
8294 return -42.379 +
83- 2.04901523 * tempFahrenheit +
95+ 2.04901523 * temperature +
8496 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 ) +
8799 -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 );
91103}
92104
93105
0 commit comments