mirror of
https://github.com/adafruit/DHT-sensor-library.git
synced 2023-10-23 22:20:38 +03:00
heat index with refinements from NWS for lower values
This commit is contained in:
parent
428e115b57
commit
f681b8e861
16
DHT.cpp
16
DHT.cpp
@ -175,9 +175,12 @@ float DHT::computeHeatIndex(bool isFahrenheit) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Compute Heat Index
|
* @brief Compute Heat Index (based on Robert G. Steadman tables)
|
||||||
* Using both Rothfusz and Steadman's equations
|
* Using Rothfusz equations with refinements by the NWS
|
||||||
* (http://www.wpc.ncep.noaa.gov/html/heatindex_equation.shtml)
|
* (http://www.wpc.ncep.noaa.gov/html/heatindex_equation.shtml)
|
||||||
|
* and NWS algorithm that respects lower values of temperature
|
||||||
|
* and humidity
|
||||||
|
* (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3801457/)
|
||||||
* @param temperature
|
* @param temperature
|
||||||
* temperature in selected scale
|
* temperature in selected scale
|
||||||
* @param percentHumidity
|
* @param percentHumidity
|
||||||
@ -193,6 +196,15 @@ float DHT::computeHeatIndex(float temperature, float percentHumidity,
|
|||||||
if (!isFahrenheit)
|
if (!isFahrenheit)
|
||||||
temperature = convertCtoF(temperature);
|
temperature = convertCtoF(temperature);
|
||||||
|
|
||||||
|
if(temperature <= 40) {
|
||||||
|
return isFahrenheit ? temperature : convertFtoC(temperature);
|
||||||
|
}
|
||||||
|
|
||||||
|
float varA = -10.3 + 1.1 * temperature + 0.047 * percentHumidity;
|
||||||
|
if (varA < 79) {
|
||||||
|
return isFahrenheit ? varA : convertFtoC(varA);
|
||||||
|
}
|
||||||
|
|
||||||
hi = 0.5 * (temperature + 61.0 + ((temperature - 68.0) * 1.2) +
|
hi = 0.5 * (temperature + 61.0 + ((temperature - 68.0) * 1.2) +
|
||||||
(percentHumidity * 0.094));
|
(percentHumidity * 0.094));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user