From 9463b7b93c919f9063063d93557b604ebff41410 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 15 Mar 2022 09:26:12 -0400 Subject: [PATCH] added getAbsoluteHumidity from Adafruit sgp30test --- stempayload/Payload_OK_SGP30/Payload_OK_SGP30.ino | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/stempayload/Payload_OK_SGP30/Payload_OK_SGP30.ino b/stempayload/Payload_OK_SGP30/Payload_OK_SGP30.ino index 1ee1d456..65e6e9a3 100644 --- a/stempayload/Payload_OK_SGP30/Payload_OK_SGP30.ino +++ b/stempayload/Payload_OK_SGP30/Payload_OK_SGP30.ino @@ -28,6 +28,7 @@ void blink_setup(); void blink(int length); int read_analog(); void led_set(int ledPin, bool state); +uint32_t getAbsoluteHumidity(float temperature, float humidity); int first_time = true; int first_read = true; @@ -423,3 +424,10 @@ int read_analog() #endif return(sensorValue); } + +uint32_t getAbsoluteHumidity(float temperature, float humidity) { + // approximation formula from Sensirion SGP30 Driver Integration chapter 3.15 + const float absoluteHumidity = 216.7f * ((humidity / 100.0f) * 6.112f * exp((17.62f * temperature) / (243.12f + temperature)) / (273.15f + temperature)); // [g/m^3] + const uint32_t absoluteHumidityScaled = static_cast(1000.0f * absoluteHumidity); // [mg/m^3] + return absoluteHumidityScaled; +}