From 5de3a34dd02ee8bce3bdbc24a2f1bcf47e1603f1 Mon Sep 17 00:00:00 2001 From: Phat Nguyen Date: Thu, 29 Feb 2024 10:22:05 +0700 Subject: [PATCH 1/3] Add mDNS attribute --- examples/ONE_I-9PSL/ONE_I-9PSL.ino | 3 +++ examples/Open_Air/Open_Air.ino | 5 ++++- src/AirGradient.cpp | 4 ++++ src/AirGradient.h | 7 +++++++ src/Main/BoardDef.cpp | 13 +++++++++++++ src/Main/BoardDef.h | 1 + 6 files changed, 32 insertions(+), 1 deletion(-) diff --git a/examples/ONE_I-9PSL/ONE_I-9PSL.ino b/examples/ONE_I-9PSL/ONE_I-9PSL.ino index 86942ba..1169b0f 100644 --- a/examples/ONE_I-9PSL/ONE_I-9PSL.ino +++ b/examples/ONE_I-9PSL/ONE_I-9PSL.ino @@ -930,6 +930,9 @@ static void webServerInit(void) { webServer.on("/measures/current", HTTP_GET, webServerMeasureCurrentGet); webServer.begin(); MDNS.addService("http", "tcp", 80); + MDNS.addServiceTxt("http", "_tcp", "board", ag.getBoardName()); + MDNS.addServiceTxt("http", "_tcp", "serialno", getDevId()); + MDNS.addServiceTxt("http", "_tcp", "fw_ver", ag.getVersion()); if (xTaskCreate(webServerHandler, "webserver", 1024 * 4, NULL, 5, NULL) != pdTRUE) { diff --git a/examples/Open_Air/Open_Air.ino b/examples/Open_Air/Open_Air.ino index 7b30c54..5bda9ba 100644 --- a/examples/Open_Air/Open_Air.ino +++ b/examples/Open_Air/Open_Air.ino @@ -1330,6 +1330,9 @@ static void webServerInit(void) { webServer.on("/measures/current", HTTP_GET, webServerMeasureCurrentGet); webServer.begin(); MDNS.addService("http", "tcp", 80); + MDNS.addServiceTxt("http", "_tcp", "board", ag.getBoardName()); + MDNS.addServiceTxt("http", "_tcp", "serialno", getDevId()); + MDNS.addServiceTxt("http", "_tcp", "fw_ver", ag.getVersion()); if (xTaskCreate(webServerHandler, "webserver", 1024 * 4, NULL, 5, NULL) != pdTRUE) { @@ -1491,7 +1494,7 @@ static void factoryConfigReset(void) { ms = (uint32_t)(millis() - factoryBtnPressTime); if (ms > 10000) { ag.statusLed.setOff(); - + /** Stop MQTT task first */ if (mqttTask) { vTaskDelete(mqttTask); diff --git a/src/AirGradient.cpp b/src/AirGradient.cpp index 44d7305..d5969fa 100644 --- a/src/AirGradient.cpp +++ b/src/AirGradient.cpp @@ -40,3 +40,7 @@ BoardType AirGradient::getBoardType(void) { return boardType; } double AirGradient::round2(double value) { return (int)(value * 100 + 0.5) / 100.0; } + +String AirGradient::getBoardName(void) { + return String(getBoardDefName(boardType)); +} diff --git a/src/AirGradient.h b/src/AirGradient.h index 376f43d..01a451d 100644 --- a/src/AirGradient.h +++ b/src/AirGradient.h @@ -107,6 +107,13 @@ public: */ String getVersion(void); + /** + * @brief Get the Board Name object + * + * @return String + */ + String getBoardName(void); + /** * @brief Round double value with for 2 decimal * diff --git a/src/Main/BoardDef.cpp b/src/Main/BoardDef.cpp index 23fe603..738c2e9 100644 --- a/src/Main/BoardDef.cpp +++ b/src/Main/BoardDef.cpp @@ -335,6 +335,19 @@ const BoardDef *getBoardDef(BoardType def) { return &bsps[def]; } +/** + * @brief Get the Board Name + * + * @param type BoarType + * @return const char* + */ +const char *getBoardDefName(BoardType type) { + if (type >= _BOARD_MAX) { + return NULL; + } + return bsps[type].name; +} + #if defined(ESP8266) #define bspPrintf(c, ...) \ if (_debug != nullptr) { \ diff --git a/src/Main/BoardDef.h b/src/Main/BoardDef.h index 172d11e..1498f7d 100644 --- a/src/Main/BoardDef.h +++ b/src/Main/BoardDef.h @@ -83,6 +83,7 @@ struct BoardDef { }; const BoardDef *getBoardDef(BoardType def); +const char *getBoardDefName(BoardType type); void printBoardDef(Stream *_debug); #endif /** _AIR_GRADIENT_BOARD_DEF_H_ */ From 66c53daed6c041b925ed7310727480698a666536 Mon Sep 17 00:00:00 2001 From: Phat Nguyen Date: Thu, 29 Feb 2024 10:39:17 +0700 Subject: [PATCH 2/3] Implement relative humidity correction --- src/PMS/PMS5003T.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PMS/PMS5003T.cpp b/src/PMS/PMS5003T.cpp index ee0c709..2fb99fb 100644 --- a/src/PMS/PMS5003T.cpp +++ b/src/PMS/PMS5003T.cpp @@ -198,7 +198,8 @@ float PMS5003T::getTemperature(void) { */ float PMS5003T::getRelativeHumidity(void) { float temp = pmsData.AMB_HUM; - return temp / 10.0f; + temp = temp / 10.0f; + return temp * 1.259 + 7.34; } /** From 8ff8b7929e63202144cd185717fbaa7c3f6d6f33 Mon Sep 17 00:00:00 2001 From: Phat Nguyen Date: Thu, 29 Feb 2024 10:49:38 +0700 Subject: [PATCH 3/3] Update correction relative humdity formula --- src/PMS/PMS5003T.cpp | 9 ++++++--- src/PMS/PMS5003T.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/PMS/PMS5003T.cpp b/src/PMS/PMS5003T.cpp index 2fb99fb..57040a5 100644 --- a/src/PMS/PMS5003T.cpp +++ b/src/PMS/PMS5003T.cpp @@ -197,9 +197,8 @@ float PMS5003T::getTemperature(void) { * @return float Percent (%) */ float PMS5003T::getRelativeHumidity(void) { - float temp = pmsData.AMB_HUM; - temp = temp / 10.0f; - return temp * 1.259 + 7.34; + float hum = pmsData.AMB_HUM; + return correctionRelativeHumidity(hum / 10.0f); } /** @@ -235,3 +234,7 @@ void PMS5003T::end(void) { #endif AgLog("De-initialize"); } + +float PMS5003T::correctionRelativeHumidity(float inHum) { + return inHum * 1.259 + 7.34; +} diff --git a/src/PMS/PMS5003T.h b/src/PMS/PMS5003T.h index e1394ef..a93cd40 100644 --- a/src/PMS/PMS5003T.h +++ b/src/PMS/PMS5003T.h @@ -47,6 +47,7 @@ private: PMS::DATA pmsData; bool isBegin(void); float correctionTemperature(float inTemp); + float correctionRelativeHumidity(float inHum); }; #endif /** _PMS5003T_H_ */