Skip to content

Commit 56809a4

Browse files
committed
Merge branch 'develop'
2 parents 6a83743 + 5bc1821 commit 56809a4

17 files changed

+431
-271
lines changed

examples/BASIC/BASIC.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ static void sendDataToAg() {
331331
stateMachine.displayHandle(AgStateMachineWiFiOkServerConnecting);
332332

333333
delay(1500);
334-
if (apiClient.sendPing(wifiConnector.RSSI(), measurements.bootCount)) {
334+
if (apiClient.sendPing(wifiConnector.RSSI(), measurements.bootCount())) {
335335
stateMachine.displayHandle(AgStateMachineWiFiOkServerConnected);
336336
} else {
337337
stateMachine.displayHandle(AgStateMachineWiFiOkServerConnectFailed);
@@ -518,7 +518,8 @@ static void updatePm(void) {
518518

519519
static void sendDataToServer(void) {
520520
/** Increment bootcount when send measurements data is scheduled */
521-
measurements.bootCount++;
521+
int bootCount = measurements.bootCount() + 1;
522+
measurements.setBootCount(bootCount);
522523

523524
/** Ignore send data to server if postToAirGradient disabled */
524525
if (configuration.isPostDataToAirGradient() == false ||

examples/BASIC/OpenMetrics.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ String OpenMetrics::getPayload(void) {
8181

8282
if (config.hasSensorPMS1) {
8383
pm01 = measure.get(Measurements::PM01);
84-
pm25 = measure.get(Measurements::PM25);
84+
float correctedPm = measure.getCorrectedPM25(*ag, config, false, 1);
85+
pm25 = round(correctedPm);
8586
pm10 = measure.get(Measurements::PM10);
8687
pm03PCount = measure.get(Measurements::PM03_PC);
8788
}

examples/DiyProIndoorV3_3/DiyProIndoorV3_3.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ static void sendDataToAg() {
388388
stateMachine.displayHandle(AgStateMachineWiFiOkServerConnecting);
389389

390390
delay(1500);
391-
if (apiClient.sendPing(wifiConnector.RSSI(), measurements.bootCount)) {
391+
if (apiClient.sendPing(wifiConnector.RSSI(), measurements.bootCount())) {
392392
stateMachine.displayHandle(AgStateMachineWiFiOkServerConnected);
393393
} else {
394394
stateMachine.displayHandle(AgStateMachineWiFiOkServerConnectFailed);
@@ -570,7 +570,8 @@ static void updatePm(void) {
570570

571571
static void sendDataToServer(void) {
572572
/** Increment bootcount when send measurements data is scheduled */
573-
measurements.bootCount++;
573+
int bootCount = measurements.bootCount() + 1;
574+
measurements.setBootCount(bootCount);
574575

575576
/** Ignore send data to server if postToAirGradient disabled */
576577
if (configuration.isPostDataToAirGradient() == false ||

examples/DiyProIndoorV3_3/OpenMetrics.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ String OpenMetrics::getPayload(void) {
8181

8282
if (config.hasSensorPMS1) {
8383
pm01 = measure.get(Measurements::PM01);
84-
pm25 = measure.get(Measurements::PM25);
84+
float correctedPm = measure.getCorrectedPM25(*ag, config, false, 1);
85+
pm25 = round(correctedPm);
8586
pm10 = measure.get(Measurements::PM10);
8687
pm03PCount = measure.get(Measurements::PM03_PC);
8788
}

examples/DiyProIndoorV4_2/DiyProIndoorV4_2.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ static void sendDataToAg() {
411411
stateMachine.displayHandle(AgStateMachineWiFiOkServerConnecting);
412412

413413
delay(1500);
414-
if (apiClient.sendPing(wifiConnector.RSSI(), measurements.bootCount)) {
414+
if (apiClient.sendPing(wifiConnector.RSSI(), measurements.bootCount())) {
415415
stateMachine.displayHandle(AgStateMachineWiFiOkServerConnected);
416416
} else {
417417
stateMachine.displayHandle(AgStateMachineWiFiOkServerConnectFailed);
@@ -611,7 +611,8 @@ static void updatePm(void) {
611611

612612
static void sendDataToServer(void) {
613613
/** Increment bootcount when send measurements data is scheduled */
614-
measurements.bootCount++;
614+
int bootCount = measurements.bootCount() + 1;
615+
measurements.setBootCount(bootCount);
615616

616617
/** Ignore send data to server if postToAirGradient disabled */
617618
if (configuration.isPostDataToAirGradient() == false ||

examples/DiyProIndoorV4_2/OpenMetrics.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ String OpenMetrics::getPayload(void) {
8181

8282
if (config.hasSensorPMS1) {
8383
pm01 = measure.get(Measurements::PM01);
84-
pm25 = measure.get(Measurements::PM25);
84+
float correctedPm = measure.getCorrectedPM25(*ag, config, false, 1);
85+
pm25 = round(correctedPm);
8586
pm10 = measure.get(Measurements::PM10);
8687
pm03PCount = measure.get(Measurements::PM03_PC);
8788
}

examples/OneOpenAir/OneOpenAir.ino

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,21 @@ CC BY-SA 4.0 Attribution-ShareAlike 4.0 International License
3636
3737
*/
3838

39-
#include <HardwareSerial.h>
40-
#include "AirGradient.h"
41-
#include "OtaHandler.h"
4239
#include "AgApiClient.h"
4340
#include "AgConfigure.h"
4441
#include "AgSchedule.h"
4542
#include "AgStateMachine.h"
4643
#include "AgWiFiConnector.h"
44+
#include "AirGradient.h"
4745
#include "EEPROM.h"
4846
#include "ESPmDNS.h"
4947
#include "LocalServer.h"
5048
#include "MqttClient.h"
5149
#include "OpenMetrics.h"
50+
#include "OtaHandler.h"
5251
#include "WebServer.h"
52+
#include "esp32c3/rom/rtc.h"
53+
#include <HardwareSerial.h>
5354
#include <WebServer.h>
5455
#include <WiFi.h>
5556

@@ -111,9 +112,8 @@ static void wdgFeedUpdate(void);
111112
static void ledBarEnabledUpdate(void);
112113
static bool sgp41Init(void);
113114
static void firmwareCheckForUpdate(void);
114-
static void otaHandlerCallback(OtaState state, String mesasge);
115-
static void displayExecuteOta(OtaState state, String msg,
116-
int processing);
115+
static void otaHandlerCallback(OtaHandler::OtaState state, String mesasge);
116+
static void displayExecuteOta(OtaHandler::OtaState state, String msg, int processing);
117117
static int calculateMaxPeriod(int updateInterval);
118118
static void setMeasurementMaxPeriod();
119119

@@ -136,6 +136,10 @@ void setup() {
136136
/** Print device ID into log */
137137
Serial.println("Serial nr: " + ag->deviceId());
138138

139+
// Set reason why esp is reset
140+
esp_reset_reason_t reason = esp_reset_reason();
141+
measurements.setResetReason(reason);
142+
139143
/** Initialize local configure */
140144
configuration.begin();
141145

@@ -514,29 +518,27 @@ static void firmwareCheckForUpdate(void) {
514518
Serial.println();
515519
}
516520

517-
static void otaHandlerCallback(OtaState state, String mesasge) {
518-
Serial.println("OTA message: " + mesasge);
521+
static void otaHandlerCallback(OtaHandler::OtaState state, String message) {
522+
Serial.println("OTA message: " + message);
519523
switch (state) {
520-
case OtaState::OTA_STATE_BEGIN:
524+
case OtaHandler::OTA_STATE_BEGIN:
521525
displayExecuteOta(state, fwNewVersion, 0);
522526
break;
523-
case OtaState::OTA_STATE_FAIL:
527+
case OtaHandler::OTA_STATE_FAIL:
524528
displayExecuteOta(state, "", 0);
525529
break;
526-
case OtaState::OTA_STATE_PROCESSING:
527-
displayExecuteOta(state, "", mesasge.toInt());
528-
break;
529-
case OtaState::OTA_STATE_SUCCESS:
530-
displayExecuteOta(state, "", mesasge.toInt());
530+
case OtaHandler::OTA_STATE_PROCESSING:
531+
case OtaHandler::OTA_STATE_SUCCESS:
532+
displayExecuteOta(state, "", message.toInt());
531533
break;
532534
default:
533535
break;
534536
}
535537
}
536538

537-
static void displayExecuteOta(OtaState state, String msg, int processing) {
539+
static void displayExecuteOta(OtaHandler::OtaState state, String msg, int processing) {
538540
switch (state) {
539-
case OtaState::OTA_STATE_BEGIN: {
541+
case OtaHandler::OTA_STATE_BEGIN: {
540542
if (ag->isOne()) {
541543
oledDisplay.showFirmwareUpdateVersion(msg);
542544
} else {
@@ -545,7 +547,7 @@ static void displayExecuteOta(OtaState state, String msg, int processing) {
545547
delay(2500);
546548
break;
547549
}
548-
case OtaState::OTA_STATE_FAIL: {
550+
case OtaHandler::OTA_STATE_FAIL: {
549551
if (ag->isOne()) {
550552
oledDisplay.showFirmwareUpdateFailed();
551553
} else {
@@ -555,7 +557,7 @@ static void displayExecuteOta(OtaState state, String msg, int processing) {
555557
delay(2500);
556558
break;
557559
}
558-
case OtaState::OTA_STATE_SKIP: {
560+
case OtaHandler::OTA_STATE_SKIP: {
559561
if (ag->isOne()) {
560562
oledDisplay.showFirmwareUpdateSkipped();
561563
} else {
@@ -565,7 +567,7 @@ static void displayExecuteOta(OtaState state, String msg, int processing) {
565567
delay(2500);
566568
break;
567569
}
568-
case OtaState::OTA_STATE_UP_TO_DATE: {
570+
case OtaHandler::OTA_STATE_UP_TO_DATE: {
569571
if (ag->isOne()) {
570572
oledDisplay.showFirmwareUpdateUpToDate();
571573
} else {
@@ -575,7 +577,7 @@ static void displayExecuteOta(OtaState state, String msg, int processing) {
575577
delay(2500);
576578
break;
577579
}
578-
case OtaState::OTA_STATE_PROCESSING: {
580+
case OtaHandler::OTA_STATE_PROCESSING: {
579581
if (ag->isOne()) {
580582
oledDisplay.showFirmwareUpdateProgress(processing);
581583
} else {
@@ -584,7 +586,7 @@ static void displayExecuteOta(OtaState state, String msg, int processing) {
584586

585587
break;
586588
}
587-
case OtaState::OTA_STATE_SUCCESS: {
589+
case OtaHandler::OTA_STATE_SUCCESS: {
588590
int i = 6;
589591
while(i != 0) {
590592
i = i - 1;
@@ -634,7 +636,7 @@ static void sendDataToAg() {
634636
"task_led", 2048, NULL, 5, NULL);
635637

636638
delay(1500);
637-
if (apiClient.sendPing(wifiConnector.RSSI(), measurements.bootCount)) {
639+
if (apiClient.sendPing(wifiConnector.RSSI(), measurements.bootCount())) {
638640
if (ag->isOne()) {
639641
stateMachine.displayHandle(AgStateMachineWiFiOkServerConnected);
640642
}
@@ -1135,7 +1137,8 @@ static void updatePm(void) {
11351137

11361138
static void sendDataToServer(void) {
11371139
/** Increment bootcount when send measurements data is scheduled */
1138-
measurements.bootCount++;
1140+
int bootCount = measurements.bootCount() + 1;
1141+
measurements.setBootCount(bootCount);
11391142

11401143
/** Ignore send data to server if postToAirGradient disabled */
11411144
if (configuration.isPostDataToAirGradient() == false || configuration.isOfflineMode()) {
@@ -1149,6 +1152,9 @@ static void sendDataToServer(void) {
11491152
"Online mode and isPostToAirGradient = true: watchdog reset");
11501153
Serial.println();
11511154
}
1155+
1156+
/** Log current free heap size */
1157+
Serial.printf("Free heap: %u\n", ESP.getFreeHeap());
11521158
}
11531159

11541160
static void tempHumUpdate(void) {

examples/OneOpenAir/OpenMetrics.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ String OpenMetrics::getPayload(void) {
8181
measure.getFloat(Measurements::Humidity, 2)) /
8282
2.0f;
8383
pm01 = (measure.get(Measurements::PM01, 1) + measure.get(Measurements::PM01, 2)) / 2.0f;
84-
pm25 = (measure.get(Measurements::PM25, 1) + measure.get(Measurements::PM25, 2)) / 2.0f;
84+
float correctedPm25_1 = measure.getCorrectedPM25(*ag, config, false, 1);
85+
float correctedPm25_2 = measure.getCorrectedPM25(*ag, config, false, 2);
86+
float correctedPm25 = (correctedPm25_1 + correctedPm25_2) / 2.0f;
87+
pm25 = round(correctedPm25);
8588
pm10 = (measure.get(Measurements::PM10, 1) + measure.get(Measurements::PM10, 2)) / 2.0f;
8689
pm03PCount =
8790
(measure.get(Measurements::PM03_PC, 1) + measure.get(Measurements::PM03_PC, 2)) / 2.0f;
@@ -94,7 +97,8 @@ String OpenMetrics::getPayload(void) {
9497

9598
if (config.hasSensorPMS1) {
9699
pm01 = measure.get(Measurements::PM01);
97-
pm25 = measure.get(Measurements::PM25);
100+
float correctedPm = measure.getCorrectedPM25(*ag, config, false, 1);
101+
pm25 = round(correctedPm);
98102
pm10 = measure.get(Measurements::PM10);
99103
pm03PCount = measure.get(Measurements::PM03_PC);
100104
}
@@ -103,15 +107,17 @@ String OpenMetrics::getPayload(void) {
103107
_temp = measure.getFloat(Measurements::Temperature, 1);
104108
_hum = measure.getFloat(Measurements::Humidity, 1);
105109
pm01 = measure.get(Measurements::PM01, 1);
106-
pm25 = measure.get(Measurements::PM25, 1);
110+
float correctedPm = measure.getCorrectedPM25(*ag, config, false, 1);
111+
pm25 = round(correctedPm);
107112
pm10 = measure.get(Measurements::PM10, 1);
108113
pm03PCount = measure.get(Measurements::PM03_PC, 1);
109114
}
110115
if (config.hasSensorPMS2) {
111116
_temp = measure.getFloat(Measurements::Temperature, 2);
112117
_hum = measure.getFloat(Measurements::Humidity, 2);
113118
pm01 = measure.get(Measurements::PM01, 2);
114-
pm25 = measure.get(Measurements::PM25, 2);
119+
float correctedPm = measure.getCorrectedPM25(*ag, config, false, 2);
120+
pm25 = round(correctedPm);
115121
pm10 = measure.get(Measurements::PM10, 2);
116122
pm03PCount = measure.get(Measurements::PM03_PC, 2);
117123
}

0 commit comments

Comments
 (0)