From 391186dd59d80b2e687fe83c13dc92a6ee64af25 Mon Sep 17 00:00:00 2001 From: samuelbles07 Date: Fri, 6 Dec 2024 20:00:43 +0700 Subject: [PATCH] PM2.5 correction --- examples/OneOpenAir/OneOpenAir.ino | 2 +- src/AgValue.cpp | 13 +++++++------ src/AgValue.h | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/examples/OneOpenAir/OneOpenAir.ino b/examples/OneOpenAir/OneOpenAir.ino index e81fae6..b5b8046 100644 --- a/examples/OneOpenAir/OneOpenAir.ino +++ b/examples/OneOpenAir/OneOpenAir.ino @@ -1194,7 +1194,7 @@ int calculateMaxPeriod(int updateInterval) { } void offlineStorageUpdate() { - if (measurements.saveLocalStorage(*ag)) { + if (measurements.saveLocalStorage(*ag, configuration)) { // blue ag->ledBar.setColor(0, 0, 255, 0); ag->ledBar.show(); diff --git a/src/AgValue.cpp b/src/AgValue.cpp index f14edfd..4779e5f 100644 --- a/src/AgValue.cpp +++ b/src/AgValue.cpp @@ -1077,7 +1077,7 @@ bool Measurements::resetLocalStorage() { return true; } -bool Measurements::saveLocalStorage(AirGradient &ag) { +bool Measurements::saveLocalStorage(AirGradient &ag, Configuration &config) { int spiffUsed = ((float)SPIFFS.usedBytes() / (float)SPIFFS.totalBytes()) * 100.0; Serial.printf("%d | %d\n", SPIFFS.totalBytes(), SPIFFS.usedBytes()); Serial.printf("SPIFF used %d%%\n", spiffUsed); @@ -1100,13 +1100,14 @@ bool Measurements::saveLocalStorage(AirGradient &ag) { return false; } + float pm25 = getCorrectedPM25(ag, config, true); + // Save new measurements file.printf("%s,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%d,%d,%d\n", ag.getCurrentTime().c_str(), - ag.round2(_pm_03_pc[0].update.avg), ag.round2(_pm_01[0].update.avg), - ag.round2(_pm_25[0].update.avg), ag.round2(_pm_10[0].update.avg), - ag.round2(_temperature[0].update.avg), ag.round2(_humidity[0].update.avg), - (int)round(_co2.update.avg), (int)round(_tvoc.update.avg), - (int)round(_nox.update.avg)); + ag.round2(_pm_03_pc[0].update.avg), ag.round2(_pm_01[0].update.avg), ag.round2(pm25), + ag.round2(_pm_10[0].update.avg), ag.round2(_temperature[0].update.avg), + ag.round2(_humidity[0].update.avg), (int)round(_co2.update.avg), + (int)round(_tvoc.update.avg), (int)round(_nox.update.avg)); Serial.println("Success save measurements to local storage"); return true; diff --git a/src/AgValue.h b/src/AgValue.h index a9c147a..861ae18 100644 --- a/src/AgValue.h +++ b/src/AgValue.h @@ -143,7 +143,7 @@ public: Configuration &config); bool resetLocalStorage(); - bool saveLocalStorage(AirGradient &ag); + bool saveLocalStorage(AirGradient &ag, Configuration &config); char *getLocalStorage(); /**