Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding a simple Dew Point function to Adafruit DHT library #216

Open
TeddyMcSnuggins opened this issue Sep 29, 2024 · 2 comments
Open

Adding a simple Dew Point function to Adafruit DHT library #216

TeddyMcSnuggins opened this issue Sep 29, 2024 · 2 comments

Comments

@TeddyMcSnuggins
Copy link

Hi. I am an astronomer/astrophotographer. I am currently building a control board for my Celestron telescope and one of the metrics I want to collect is the Dew Point. I will use this in deciding the power level I will supply to my Dew Heater on the telescope. I have found a simple Dew Point calculation, which would be great to be able to reference from a DHT sensor. The calculation can be found at https://iridl.ldeo.columbia.edu/dochelp/QA/Basic/dewpoint.html.

Would this be something that you would consider adding to the current library? I have provided my code below for your reference. This was tested on the following:

  • Arduino board: *ARDUINO/UNO R3
  • Arduino IDE version (found in Arduino -> About Arduino menu): 1.8.19
  • Adafruit DHT11 and DHT22 sensors

DHT.h
float computeDewPointSimple(float temperature, float percentHumidity,
bool isFahrenheit = true);

DHT.cpp
/*!

  • @brief Compute Dew Point - Simple Method

  •  			Using formula was proposed in a 2005 article by Mark G. Lawrence in the Bulletin of the American Meteorological Society:
    
  •  			(https://iridl.ldeo.columbia.edu/dochelp/QA/Basic/dewpoint.html)
    
  • @param temperature

  •      temperature in selected scale
    
  • @param percentHumidity

  •      humidity in percent
    
  • @param isFahrenheit

  •  			true if fahrenheit, false if celcius
    
  • @return float dew point
    */
    float DHT::computeDewPointSimple(float temperature, float percentHumidity,
    bool isFahrenheit) {

    float hi;

if (!isFahrenheit)
temperature = convertCtoF(temperature);

hi = temperature-((100 - percentHumidity) / 5);

return isFahrenheit ? hi : convertFtoC(hi);

}

There is a more complex function that gives greater accuracy, which is detailed on the web page provided above, but I have yet compiled that function.

Kind regards
Teddy

@TeddyMcSnuggins
Copy link
Author

Hi. I have enhanced the code to now include both the simple method documented above and the more complex, but more accurate function as well.

I have attached the revised code base for your consideration. I have renamed the files as .txt so that they are accepted by the upload facility.

Many thanks
Teddy
DHT.cpp.txt
DHT.h.txt
keywords.txt

@TeddyMcSnuggins
Copy link
Author

Sorry, I should have added that I have tested both functions using DHT11 and DHT22 sensors, and verified the results using online Dew Point calculators.

Teddy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant