diff --git a/examples/ONE/ONE.ino b/examples/ONE/ONE.ino index a11f0dd..6eeb557 100644 --- a/examples/ONE/ONE.ino +++ b/examples/ONE/ONE.ino @@ -669,6 +669,7 @@ static int dispSmState = APP_SM_NORMAL; /** Save LED SM */ static int tvocIndex = -1; static int tvocRawIndex = -1; static int noxIndex = -1; +static int noxRawIndex = -1; static int co2Ppm = -1; static int pm25 = -1; static int pm01 = -1; @@ -736,7 +737,7 @@ void setup() { u8g2.begin(); /** Show boot display */ - Serial.println("Firmware Version: "+ag.getVersion()); + Serial.println("Firmware Version: " + ag.getVersion()); displayShowText("One V9", "FW Ver: " + ag.getVersion(), ""); delay(DISPLAY_DELAY_SHOW_CONTENT_MS); @@ -1016,7 +1017,7 @@ void webServerMetricsGet(void) { add_metric_point("", String(tvocIndex)); } if (tvocRawIndex >= 0) { - add_metric("tvoc_raw_index", + add_metric("tvoc_raw", "The raw input value to the Total Volatile Organic Compounds " "(TVOC) index as measured by the AirGradient SGP sensor", "gauge"); @@ -1029,6 +1030,13 @@ void webServerMetricsGet(void) { "gauge"); add_metric_point("", String(noxIndex)); } + if (noxRawIndex >= 0) { + add_metric("nox_raw", + "The raw input value to the Nitrous Oxide (NOx) index as " + "measured by the AirGradient SGP sensor", + "gauge"); + add_metric_point("", String(noxRawIndex)); + } } if (hasSensorSHT) { @@ -1118,6 +1126,9 @@ static String getServerSyncData(bool localServer) { if (noxIndex >= 0) { root["nox_index"] = noxIndex; } + if(noxRawIndex >= 0) { + root["nox_raw"] = noxRawIndex; + } } if (hasSensorSHT) { if (temp > -1001) { @@ -2179,11 +2190,13 @@ static void tvocUpdate(void) { tvocIndex = ag.sgp41.getTvocIndex(); tvocRawIndex = ag.sgp41.getTvocRaw(); noxIndex = ag.sgp41.getNoxIndex(); + noxRawIndex = ag.sgp41.getNoxRaw(); Serial.println(); Serial.printf(" TVOC index: %d\r\n", tvocIndex); Serial.printf("TVOC raw index: %d\r\n", tvocRawIndex); Serial.printf(" NOx index: %d\r\n", noxIndex); + Serial.printf(" NOx raw index: %d\r\n", noxRawIndex); } /** diff --git a/examples/Open_Air/Open_Air.ino b/examples/Open_Air/Open_Air.ino index bd1ca03..715b23d 100644 --- a/examples/Open_Air/Open_Air.ino +++ b/examples/Open_Air/Open_Air.ino @@ -666,6 +666,7 @@ WebServer webServer; int tvocIndex = -1; int tvocRawIndex = -1; int noxIndex = -1; +int noxRawIndex = -1; int co2Ppm = 0; int pm25_1 = -1; @@ -1019,11 +1020,13 @@ static void tvocUpdate(void) { tvocIndex = ag.sgp41.getTvocIndex(); tvocRawIndex = ag.sgp41.getTvocRaw(); noxIndex = ag.sgp41.getNoxIndex(); + noxRawIndex = ag.sgp41.getNoxRaw(); Serial.println(); Serial.printf(" TVOC index: %d\r\n", tvocIndex); Serial.printf("TVOC raw index: %d\r\n", tvocRawIndex); Serial.printf(" NOx index: %d\r\n", noxIndex); + Serial.printf(" NOx raw index: %d\r\n", noxRawIndex); } /** @@ -1412,6 +1415,9 @@ static String getServerSyncData(bool localServer) { if (noxIndex >= 0) { root["nox_index"] = noxIndex; } + if(noxRawIndex >= 0) { + root["nox_raw"] = noxRawIndex; + } } } diff --git a/src/Sgp41/Sgp41.cpp b/src/Sgp41/Sgp41.cpp index ea3d4ae..ae3e805 100644 --- a/src/Sgp41/Sgp41.cpp +++ b/src/Sgp41/Sgp41.cpp @@ -121,6 +121,7 @@ void Sgp41::_handle(void) { vTaskDelay(pdMS_TO_TICKS(1000)); if (getRawSignal(srawVoc, srawNox)) { tvocRaw = srawVoc; + noxRaw = srawNox; nox = noxAlgorithm()->process(srawNox); tvoc = vocAlgorithm()->process(srawVoc); AgLog("Polling SGP41 success: tvoc: %d, nox: %d", tvoc, nox); @@ -249,3 +250,10 @@ bool Sgp41::_noxConditioning(void) { * @return int */ int Sgp41::getTvocRaw(void) { return tvocRaw; } + +/** + * @brief Get NOX raw value + * + * @return int + */ +int Sgp41::getNoxRaw(void) { return noxRaw; } diff --git a/src/Sgp41/Sgp41.h b/src/Sgp41/Sgp41.h index 594346e..db0065e 100644 --- a/src/Sgp41/Sgp41.h +++ b/src/Sgp41/Sgp41.h @@ -24,6 +24,7 @@ public: int getTvocIndex(void); int getNoxIndex(void); int getTvocRaw(void); + int getNoxRaw(void); private: bool onConditioning = true; @@ -39,6 +40,7 @@ private: int tvoc = 0; int tvocRaw; int nox = 0; + int noxRaw; #if defined(ESP8266) uint32_t conditioningPeriod; uint8_t conditioningCount;