Skip to content
This repository has been archived by the owner on Dec 8, 2019. It is now read-only.

Enhancements to Celsius support #43

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 21 additions & 9 deletions bruh_mqtt_multisensor_github/bruh_mqtt_multisensor_github.ino
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ float diffLDR = 25;

float diffTEMP = 0.2;
float tempValue;
#define TEMP_IS_FAHRENHEIT true //to use celsius set to false

float diffHUM = 1;
float humValue;
Expand Down Expand Up @@ -368,21 +369,32 @@ void sendState() {
* http://www.wpc.ncep.noaa.gov/html/heatindex_equation.shtml
*/
float calculateHeatIndex(float humidity, float temp) {
#if TEMP_IS_FAHRENHEIT==false
//In the case that we're using Celcius in this, convert to F before calculating heat index.
float thisTemp = (temp * (9.0/5.0)) + 32.0; //Convert C to F
#else
float thisTemp = temp;
#endif

float heatIndex= 0;
if (temp >= 80) {
heatIndex = -42.379 + 2.04901523*temp + 10.14333127*humidity;
heatIndex = heatIndex - .22475541*temp*humidity - .00683783*temp*temp;
heatIndex = heatIndex - .05481717*humidity*humidity + .00122874*temp*temp*humidity;
heatIndex = heatIndex + .00085282*temp*humidity*humidity - .00000199*temp*temp*humidity*humidity;
heatIndex = -42.379 + 2.04901523*thisTemp + 10.14333127*humidity;
heatIndex = heatIndex - .22475541*thisTemp*humidity - .00683783*thisTemp*thisTemp;
heatIndex = heatIndex - .05481717*humidity*humidity + .00122874*thisTemp*thisTemp*humidity;
heatIndex = heatIndex + .00085282*thisTemp*humidity*humidity - .00000199*thisTemp*thisTemp*humidity*humidity;
} else {
heatIndex = 0.5 * (temp + 61.0 + ((temp - 68.0)*1.2) + (humidity * 0.094));
heatIndex = 0.5 * (thisTemp + 61.0 + ((thisTemp - 68.0)*1.2) + (humidity * 0.094));
}

if (humidity < 13 && 80 <= temp <= 112) {
float adjustment = ((13-humidity)/4) * sqrt((17-abs(temp-95.))/17);
if (humidity < 13 && 80 <= thisTemp && thisTemp <= 112) {
float adjustment = ((13.0-humidity)/4.0) * sqrt((17.0-abs(thisTemp-95.0))/17.0);
heatIndex = heatIndex - adjustment;
}


#if TEMP_IS_FAHRENHEIT==false
heatIndex = (heatIndex - 32.0) * (5.0/9.0); //Convert back to C.
#endif

return heatIndex;
}

Expand Down Expand Up @@ -446,7 +458,7 @@ void loop() {

if (!inFade) {

float newTempValue = dht.readTemperature(true); //to use celsius remove the true text inside the parentheses
float newTempValue = dht.readTemperature(TEMP_IS_FAHRENHEIT);
float newHumValue = dht.readHumidity();

//PIR CODE
Expand Down