From d6766ef68bd460b605c7105966178c0af5916672 Mon Sep 17 00:00:00 2001 From: Phat Nguyen Date: Sun, 25 Aug 2024 08:37:25 +0700 Subject: [PATCH 1/5] Correct print log number format, fix #218 --- examples/OneOpenAir/OneOpenAir.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/OneOpenAir/OneOpenAir.ino b/examples/OneOpenAir/OneOpenAir.ino index 978c345..ff931ee 100644 --- a/examples/OneOpenAir/OneOpenAir.ino +++ b/examples/OneOpenAir/OneOpenAir.ino @@ -1081,7 +1081,7 @@ static void updatePm(void) { Serial.printf("[2] Relative Humidity: %d\r\n", measurements.hum_2); Serial.printf("[2] Temperature compensated in C: %0.2f\r\n", ag->pms5003t_1.temperatureCompensated(measurements.temp_2)); - Serial.printf("[2] Relative Humidity compensated: %d\r\n", + Serial.printf("[2] Relative Humidity compensated: %0.2f\r\n", ag->pms5003t_1.humidityCompensated(measurements.hum_2)); } else { measurements.pm01_2 = utils::getInvalidPMS(); From a9654506f58a485ca1c3b425db402a35f01192fe Mon Sep 17 00:00:00 2001 From: Phat Nguyen Date: Sun, 25 Aug 2024 20:40:45 +0700 Subject: [PATCH 2/5] Update log format, #218 --- examples/OneOpenAir/OneOpenAir.ino | 2 +- platformio.ini | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/examples/OneOpenAir/OneOpenAir.ino b/examples/OneOpenAir/OneOpenAir.ino index ff931ee..6a2d3fa 100644 --- a/examples/OneOpenAir/OneOpenAir.ino +++ b/examples/OneOpenAir/OneOpenAir.ino @@ -1051,7 +1051,7 @@ static void updatePm(void) { Serial.printf("[1] Relative Humidity: %d\r\n", measurements.hum_1); Serial.printf("[1] Temperature compensated in C: %0.2f\r\n", ag->pms5003t_1.temperatureCompensated(measurements.temp_1)); - Serial.printf("[1] Relative Humidity compensated: %f\r\n", + Serial.printf("[1] Relative Humidity compensated: %0.2f\r\n", ag->pms5003t_1.humidityCompensated(measurements.hum_1)); } else { measurements.pm01_1 = utils::getInvalidPMS(); diff --git a/platformio.ini b/platformio.ini index 09e2b02..675814b 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,7 +12,10 @@ platform = espressif32 board = esp32-c3-devkitm-1 framework = arduino -build_flags = !echo '-D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_MODE=1 -D GIT_VERSION=\\"'$(git describe --tags --always --dirty)'\\"' +build_flags = + -DARDUINO_USB_CDC_ON_BOOT=1 + -DARDUINO_USB_MODE=1 + -DGIT_VERSION=\"3.1.4\" board_build.partitions = partitions.csv monitor_speed = 115200 lib_deps = From 54ed83cb89e9184f4ea36be51e89537f8d62503e Mon Sep 17 00:00:00 2001 From: Phat Nguyen Date: Sun, 25 Aug 2024 20:56:30 +0700 Subject: [PATCH 3/5] Revert las misstake commit changed. --- platformio.ini | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/platformio.ini b/platformio.ini index 675814b..09e2b02 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,10 +12,7 @@ platform = espressif32 board = esp32-c3-devkitm-1 framework = arduino -build_flags = - -DARDUINO_USB_CDC_ON_BOOT=1 - -DARDUINO_USB_MODE=1 - -DGIT_VERSION=\"3.1.4\" +build_flags = !echo '-D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_MODE=1 -D GIT_VERSION=\\"'$(git describe --tags --always --dirty)'\\"' board_build.partitions = partitions.csv monitor_speed = 115200 lib_deps = From 28d27ee8fdaa905516828e54df612b7ee9d9a3b5 Mon Sep 17 00:00:00 2001 From: Phat Nguyen Date: Fri, 30 Aug 2024 19:17:58 +0700 Subject: [PATCH 4/5] Rename `temperatureCompensated` to `compensateTemp` and `humidityCompensated` to `compensateHum` --- examples/OneOpenAir/OneOpenAir.ino | 8 ++++---- examples/OneOpenAir/OpenMetrics.cpp | 4 ++-- src/AgValue.cpp | 28 ++++++++++++++-------------- src/PMS/PMS5003TBase.cpp | 4 ++-- src/PMS/PMS5003TBase.h | 4 ++-- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/examples/OneOpenAir/OneOpenAir.ino b/examples/OneOpenAir/OneOpenAir.ino index b49deec..456cdda 100644 --- a/examples/OneOpenAir/OneOpenAir.ino +++ b/examples/OneOpenAir/OneOpenAir.ino @@ -1054,9 +1054,9 @@ static void updatePm(void) { Serial.printf("[1] Temperature in C: %0.2f\r\n", measurements.temp_1); Serial.printf("[1] Relative Humidity: %d\r\n", measurements.hum_1); Serial.printf("[1] Temperature compensated in C: %0.2f\r\n", - ag->pms5003t_1.temperatureCompensated(measurements.temp_1)); + ag->pms5003t_1.compensateTemp(measurements.temp_1)); Serial.printf("[1] Relative Humidity compensated: %0.2f\r\n", - ag->pms5003t_1.humidityCompensated(measurements.hum_1)); + ag->pms5003t_1.compensateHum(measurements.hum_1)); ag->pms5003t_1.resetFailCount(); } else { @@ -1097,9 +1097,9 @@ static void updatePm(void) { Serial.printf("[2] Temperature in C: %0.2f\r\n", measurements.temp_2); Serial.printf("[2] Relative Humidity: %d\r\n", measurements.hum_2); Serial.printf("[2] Temperature compensated in C: %0.2f\r\n", - ag->pms5003t_1.temperatureCompensated(measurements.temp_2)); + ag->pms5003t_1.compensateTemp(measurements.temp_2)); Serial.printf("[2] Relative Humidity compensated: %0.2f\r\n", - ag->pms5003t_1.humidityCompensated(measurements.hum_2)); + ag->pms5003t_1.compensateHum(measurements.hum_2)); ag->pms5003t_2.resetFailCount(); } else { diff --git a/examples/OneOpenAir/OpenMetrics.cpp b/examples/OneOpenAir/OpenMetrics.cpp index ada9871..cacba90 100644 --- a/examples/OneOpenAir/OpenMetrics.cpp +++ b/examples/OneOpenAir/OpenMetrics.cpp @@ -118,8 +118,8 @@ String OpenMetrics::getPayload(void) { atmpCompensated = _temp; ahumCompensated = _hum; } else { - atmpCompensated = ag->pms5003t_1.temperatureCompensated(_temp); - ahumCompensated = ag->pms5003t_1.humidityCompensated(_hum); + atmpCompensated = ag->pms5003t_1.compensateTemp(_temp); + ahumCompensated = ag->pms5003t_1.compensateHum(_hum); } if (config.hasSensorPMS1 || config.hasSensorPMS2) { diff --git a/src/AgValue.cpp b/src/AgValue.cpp index 015a788..ce6e238 100644 --- a/src/AgValue.cpp +++ b/src/AgValue.cpp @@ -76,7 +76,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, if (utils::isValidTemperature(this->temp_1) && utils::isValidTemperature(this->temp_1)) { root["atmp"] = ag->round2((this->temp_1 + this->temp_2) / 2.0f); if (localServer) { - val = ag->pms5003t_2.temperatureCompensated((this->temp_1 + this->temp_2) / 2.0f); + val = ag->pms5003t_2.compensateTemp((this->temp_1 + this->temp_2) / 2.0f); if (utils::isValidTemperature(val)) { root["atmpCompensated"] = ag->round2(val); } @@ -85,7 +85,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, if (utils::isValidHumidity(this->hum_1) && utils::isValidHumidity(this->hum_1)) { root["rhum"] = ag->round2((this->hum_1 + this->hum_2) / 2.0f); if (localServer) { - val = ag->pms5003t_2.humidityCompensated((this->hum_1 + this->hum_2) / 2.0f); + val = ag->pms5003t_2.compensateHum((this->hum_1 + this->hum_2) / 2.0f); if (utils::isValidHumidity(val)) { root["rhumCompensated"] = (int)val; } @@ -117,7 +117,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["atmp"] = ag->round2(this->temp_1); if (localServer) { - val = ag->pms5003t_1.temperatureCompensated(this->temp_1); + val = ag->pms5003t_1.compensateTemp(this->temp_1); if (utils::isValidTemperature(val)) { root["atmpCompensated"] = ag->round2(val); } @@ -127,7 +127,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["rhum"] = this->hum_1; if (localServer) { - val = ag->pms5003t_1.humidityCompensated(this->hum_1); + val = ag->pms5003t_1.compensateHum(this->hum_1); if (utils::isValidHumidity(val)) { root["rhumCompensated"] = (int)val; } @@ -154,7 +154,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["atmp"] = ag->round2(this->temp_2); if (localServer) { - val = ag->pms5003t_2.temperatureCompensated(this->temp_2); + val = ag->pms5003t_2.compensateTemp(this->temp_2); if (utils::isValidTemperature(val)) { root["atmpCompensated"] = ag->round2(val); } @@ -164,7 +164,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["rhum"] = this->hum_2; if (localServer) { - val = ag->pms5003t_2.humidityCompensated(this->hum_2); + val = ag->pms5003t_2.compensateHum(this->hum_2); if (utils::isValidHumidity(val)) { root["rhumCompensated"] = (int)val; } @@ -192,7 +192,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["atmp"] = ag->round2(this->temp_1); if (localServer) { - val = ag->pms5003t_1.temperatureCompensated(this->temp_1); + val = ag->pms5003t_1.compensateTemp(this->temp_1); if (utils::isValidTemperature(val)) { root["atmpCompensated"] = ag->round2(val); } @@ -201,7 +201,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, if (utils::isValidHumidity(this->hum_1)) { root["rhum"] = this->hum_1; if(localServer) { - val = ag->pms5003t_1.humidityCompensated(this->hum_1); + val = ag->pms5003t_1.compensateHum(this->hum_1); if(utils::isValidHumidity(val)) { root["rhumCompensated"] = (int)val; } @@ -225,7 +225,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["atmp"] = ag->round2(this->temp_2); if (localServer) { - val = ag->pms5003t_1.temperatureCompensated(this->temp_2); + val = ag->pms5003t_1.compensateTemp(this->temp_2); if (utils::isValidTemperature(val)) { root["atmpCompensated"] = ag->round2(val); } @@ -235,7 +235,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["rhum"] = this->hum_2; if(localServer) { - val = ag->pms5003t_1.humidityCompensated(this->hum_2); + val = ag->pms5003t_1.compensateHum(this->hum_2); if(utils::isValidHumidity(val)) { root["rhumCompensated"] = (int)val; } @@ -262,7 +262,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["channels"]["1"]["atmp"] = ag->round2(this->temp_1); if (localServer) { - val = ag->pms5003t_1.temperatureCompensated(this->temp_1); + val = ag->pms5003t_1.compensateTemp(this->temp_1); if (utils::isValidTemperature(val)) { root["channels"]["1"]["atmpCompensated"] = ag->round2(val); } @@ -272,7 +272,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["channels"]["1"]["rhum"] = this->hum_1; if (localServer) { - val = ag->pms5003t_1.humidityCompensated(this->hum_1); + val = ag->pms5003t_1.compensateHum(this->hum_1); if (utils::isValidHumidity(val)) { root["channels"]["1"]["rhumCompensated"] = (int)val; } @@ -298,7 +298,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["channels"]["2"]["atmp"] = ag->round2(this->temp_2); if (localServer) { - val = ag->pms5003t_1.temperatureCompensated(this->temp_2); + val = ag->pms5003t_1.compensateTemp(this->temp_2); if (utils::isValidTemperature(val)) { root["channels"]["2"]["atmpCompensated"] = ag->round2(val); } @@ -308,7 +308,7 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, root["channels"]["2"]["rhum"] = this->hum_2; if (localServer) { - val = ag->pms5003t_1.humidityCompensated(this->hum_2); + val = ag->pms5003t_1.compensateHum(this->hum_2); if (utils::isValidHumidity(val)) { root["channels"]["2"]["rhumCompensated"] = (int)val; } diff --git a/src/PMS/PMS5003TBase.cpp b/src/PMS/PMS5003TBase.cpp index 7d7fdbe..ec5dd39 100644 --- a/src/PMS/PMS5003TBase.cpp +++ b/src/PMS/PMS5003TBase.cpp @@ -4,14 +4,14 @@ PMS5003TBase::PMS5003TBase() {} PMS5003TBase::~PMS5003TBase() {} -float PMS5003TBase::temperatureCompensated(float temp) { +float PMS5003TBase::compensateTemp(float temp) { if (temp < 10.0f) { return temp * 1.327f - 6.738f; } return temp * 1.181f - 5.113f; } -float PMS5003TBase::humidityCompensated(float hum) { +float PMS5003TBase::compensateHum(float hum) { hum = hum * 1.259f + 7.34f; if (hum > 100.0f) { diff --git a/src/PMS/PMS5003TBase.h b/src/PMS/PMS5003TBase.h index 0b50449..f5ce142 100644 --- a/src/PMS/PMS5003TBase.h +++ b/src/PMS/PMS5003TBase.h @@ -8,8 +8,8 @@ private: public: PMS5003TBase(); ~PMS5003TBase(); - float temperatureCompensated(float temp); - float humidityCompensated(float hum); + float compensateTemp(float temp); + float compensateHum(float hum); }; #endif From 244b7814a6b64018f8abee2e30e0dd84d3a771dc Mon Sep 17 00:00:00 2001 From: Phat Nguyen Date: Fri, 30 Aug 2024 19:20:08 +0700 Subject: [PATCH 5/5] add link to formula documents --- src/PMS/PMS5003TBase.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/PMS/PMS5003TBase.cpp b/src/PMS/PMS5003TBase.cpp index ec5dd39..ae9fbd0 100644 --- a/src/PMS/PMS5003TBase.cpp +++ b/src/PMS/PMS5003TBase.cpp @@ -4,6 +4,14 @@ PMS5003TBase::PMS5003TBase() {} PMS5003TBase::~PMS5003TBase() {} +/** + * @brief Compensate the temperature + * + * Reference formula: https://www.airgradient.com/documentation/correction-algorithms/ + * + * @param temp + * @return * float + */ float PMS5003TBase::compensateTemp(float temp) { if (temp < 10.0f) { return temp * 1.327f - 6.738f; @@ -11,6 +19,14 @@ float PMS5003TBase::compensateTemp(float temp) { return temp * 1.181f - 5.113f; } +/** + * @brief Compensate the humidity + * + * Reference formula: https://www.airgradient.com/documentation/correction-algorithms/ + * + * @param temp + * @return * float + */ float PMS5003TBase::compensateHum(float hum) { hum = hum * 1.259f + 7.34f;