mirror of
https://github.com/airgradienthq/arduino.git
synced 2025-07-29 16:37:17 +02:00
First test, console
Working average from main only
This commit is contained in:
@ -261,6 +261,19 @@ void setup() {
|
||||
|
||||
// Update display and led bar after finishing setup to show dashboard
|
||||
updateDisplayAndLedBar();
|
||||
|
||||
// NOTE: This is just a temporary, will do a proper set maximum value based on schedule interval
|
||||
measurements.maxUpdate(Measurements::AgValueType::Temperature, 26);
|
||||
measurements.maxUpdate(Measurements::AgValueType::Humidity, 26);
|
||||
measurements.maxUpdate(Measurements::AgValueType::CO2, 13);
|
||||
measurements.maxUpdate(Measurements::AgValueType::TVOC, 53);
|
||||
measurements.maxUpdate(Measurements::AgValueType::TVOCRaw, 53);
|
||||
measurements.maxUpdate(Measurements::AgValueType::NOx, 53);
|
||||
measurements.maxUpdate(Measurements::AgValueType::NOxRaw, 53);
|
||||
measurements.maxUpdate(Measurements::AgValueType::PM25, 26);
|
||||
measurements.maxUpdate(Measurements::AgValueType::PM01, 26);
|
||||
measurements.maxUpdate(Measurements::AgValueType::PM10, 26);
|
||||
measurements.maxUpdate(Measurements::AgValueType::PM03_PC, 26);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
@ -317,17 +330,17 @@ void loop() {
|
||||
}
|
||||
|
||||
static void co2Update(void) {
|
||||
if (!configuration.hasSensorS8) {
|
||||
// Device don't have SHT sensor
|
||||
return;
|
||||
}
|
||||
|
||||
int value = ag->s8.getCo2();
|
||||
if (utils::isValidCO2(value)) {
|
||||
measurements.CO2 = value;
|
||||
getCO2FailCount = 0;
|
||||
Serial.printf("CO2 (ppm): %d\r\n", measurements.CO2);
|
||||
measurements.updateValue(Measurements::AgValueType::CO2, value);
|
||||
// Serial.printf("CO2 (ppm): %d\r\n", measurements.CO2);
|
||||
} else {
|
||||
getCO2FailCount++;
|
||||
Serial.printf("Get CO2 failed: %d\r\n", getCO2FailCount);
|
||||
if (getCO2FailCount >= 3) {
|
||||
measurements.CO2 = utils::getInvalidCO2();
|
||||
}
|
||||
measurements.updateValue(Measurements::AgValueType::CO2, utils::getInvalidCO2());
|
||||
}
|
||||
}
|
||||
|
||||
@ -982,240 +995,148 @@ static void updateDisplayAndLedBar(void) {
|
||||
}
|
||||
|
||||
static void updateTvoc(void) {
|
||||
measurements.TVOC = ag->sgp41.getTvocIndex();
|
||||
measurements.TVOCRaw = ag->sgp41.getTvocRaw();
|
||||
measurements.NOx = ag->sgp41.getNoxIndex();
|
||||
measurements.NOxRaw = ag->sgp41.getNoxRaw();
|
||||
if (!configuration.hasSensorSGP) {
|
||||
return;
|
||||
}
|
||||
|
||||
Serial.println();
|
||||
Serial.printf("TVOC index: %d\r\n", measurements.TVOC);
|
||||
Serial.printf("TVOC raw: %d\r\n", measurements.TVOCRaw);
|
||||
Serial.printf("NOx index: %d\r\n", measurements.NOx);
|
||||
Serial.printf("NOx raw: %d\r\n", measurements.NOxRaw);
|
||||
measurements.updateValue(Measurements::AgValueType::TVOC, ag->sgp41.getTvocIndex());
|
||||
measurements.updateValue(Measurements::AgValueType::TVOCRaw, ag->sgp41.getTvocRaw());
|
||||
measurements.updateValue(Measurements::AgValueType::NOx, ag->sgp41.getNoxIndex());
|
||||
measurements.updateValue(Measurements::AgValueType::NOxRaw, ag->sgp41.getNoxRaw());
|
||||
|
||||
// Serial.println();
|
||||
// Serial.printf("TVOC index: %d\r\n", measurements.TVOC);
|
||||
// Serial.printf("TVOC raw: %d\r\n", measurements.TVOCRaw);
|
||||
// Serial.printf("NOx index: %d\r\n", measurements.NOx);
|
||||
// Serial.printf("NOx raw: %d\r\n", measurements.NOxRaw);
|
||||
}
|
||||
|
||||
static void updatePMS5003() {
|
||||
if (ag->pms5003.connected()) {
|
||||
measurements.updateValue(Measurements::AgValueType::PM01, ag->pms5003.getPm01Ae());
|
||||
measurements.updateValue(Measurements::AgValueType::PM25, ag->pms5003.getPm25Ae());
|
||||
measurements.updateValue(Measurements::AgValueType::PM10, ag->pms5003.getPm10Ae());
|
||||
measurements.updateValue(Measurements::AgValueType::PM03_PC,
|
||||
ag->pms5003.getPm03ParticleCount());
|
||||
|
||||
// Serial.println();
|
||||
// Serial.printf("PM1 ug/m3: %d\r\n", measurements.pm01_1);
|
||||
// Serial.printf("PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
||||
// Serial.printf("PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
||||
// Serial.printf("PM0.3 Count: %d\r\n", measurements.pm03PCount_1);
|
||||
// Serial.printf("PM firmware version: %d\r\n", ag->pms5003.getFirmwareVersion());
|
||||
} else {
|
||||
measurements.updateValue(Measurements::AgValueType::PM01, utils::getInvalidPmValue());
|
||||
measurements.updateValue(Measurements::AgValueType::PM25, utils::getInvalidPmValue());
|
||||
measurements.updateValue(Measurements::AgValueType::PM10, utils::getInvalidPmValue());
|
||||
measurements.updateValue(Measurements::AgValueType::PM03_PC, utils::getInvalidPmValue());
|
||||
}
|
||||
}
|
||||
|
||||
static void updatePm(void) {
|
||||
bool restart = false;
|
||||
if (ag->isOne()) {
|
||||
if (ag->pms5003.connected()) {
|
||||
measurements.pm01_1 = ag->pms5003.getPm01Ae();
|
||||
measurements.pm25_1 = ag->pms5003.getPm25Ae();
|
||||
measurements.pm10_1 = ag->pms5003.getPm10Ae();
|
||||
measurements.pm03PCount_1 = ag->pms5003.getPm03ParticleCount();
|
||||
updatePMS5003();
|
||||
return;
|
||||
}
|
||||
|
||||
Serial.println();
|
||||
Serial.printf("PM1 ug/m3: %d\r\n", measurements.pm01_1);
|
||||
Serial.printf("PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
||||
Serial.printf("PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
||||
Serial.printf("PM0.3 Count: %d\r\n", measurements.pm03PCount_1);
|
||||
Serial.printf("PM firmware version: %d\r\n", ag->pms5003.getFirmwareVersion());
|
||||
ag->pms5003.resetFailCount();
|
||||
// Open Air Monitor series, can have two PMS5003T sensor
|
||||
bool newPMS1Value = false;
|
||||
bool newPMS2Value = false;
|
||||
|
||||
// Read PMS channel 1 if available
|
||||
int channel = 1;
|
||||
if (configuration.hasSensorPMS1) {
|
||||
if (ag->pms5003t_1.connected()) {
|
||||
measurements.updateValue(Measurements::AgValueType::PM01, ag->pms5003t_1.getPm01Ae(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM25, ag->pms5003t_1.getPm25Ae(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM10, ag->pms5003t_1.getPm10Ae(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM03_PC,
|
||||
ag->pms5003t_1.getPm03ParticleCount(), channel);
|
||||
measurements.updateValue(Measurements::AgValueType::Temperature,
|
||||
ag->pms5003t_1.getTemperature(), channel);
|
||||
measurements.updateValue(Measurements::AgValueType::Humidity,
|
||||
ag->pms5003t_1.getRelativeHumidity(), channel);
|
||||
|
||||
// flag that new valid PMS value exists
|
||||
newPMS2Value = true;
|
||||
} else {
|
||||
ag->pms5003.updateFailCount();
|
||||
Serial.printf("PMS read failed %d times\r\n", ag->pms5003.getFailCount());
|
||||
if (ag->pms5003.getFailCount() >= PMS_FAIL_COUNT_SET_INVALID) {
|
||||
measurements.pm01_1 = utils::getInvalidPmValue();
|
||||
measurements.pm25_1 = utils::getInvalidPmValue();
|
||||
measurements.pm10_1 = utils::getInvalidPmValue();
|
||||
measurements.pm03PCount_1 = utils::getInvalidPmValue();
|
||||
}
|
||||
|
||||
if (ag->pms5003.getFailCount() >= ag->pms5003.getFailCountMax()) {
|
||||
restart = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
bool pmsResult_1 = false;
|
||||
bool pmsResult_2 = false;
|
||||
if (configuration.hasSensorPMS1 && ag->pms5003t_1.connected()) {
|
||||
measurements.pm01_1 = ag->pms5003t_1.getPm01Ae();
|
||||
measurements.pm25_1 = ag->pms5003t_1.getPm25Ae();
|
||||
measurements.pm10_1 = ag->pms5003t_1.getPm10Ae();
|
||||
measurements.pm03PCount_1 = ag->pms5003t_1.getPm03ParticleCount();
|
||||
measurements.temp_1 = ag->pms5003t_1.getTemperature();
|
||||
measurements.hum_1 = ag->pms5003t_1.getRelativeHumidity();
|
||||
|
||||
pmsResult_1 = true;
|
||||
|
||||
Serial.println();
|
||||
Serial.printf("[1] PM1 ug/m3: %d\r\n", measurements.pm01_1);
|
||||
Serial.printf("[1] PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
||||
Serial.printf("[1] PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
||||
Serial.printf("[1] PM3.0 Count: %d\r\n", measurements.pm03PCount_1);
|
||||
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.compensateTemp(measurements.temp_1));
|
||||
Serial.printf("[1] Relative Humidity compensated: %0.2f\r\n",
|
||||
ag->pms5003t_1.compensateHum(measurements.hum_1));
|
||||
Serial.printf("[1] PM firmware version: %d\r\n", ag->pms5003t_1.getFirmwareVersion());
|
||||
|
||||
ag->pms5003t_1.resetFailCount();
|
||||
} else {
|
||||
if (configuration.hasSensorPMS1) {
|
||||
ag->pms5003t_1.updateFailCount();
|
||||
Serial.printf("[1] PMS read failed %d times\r\n", ag->pms5003t_1.getFailCount());
|
||||
|
||||
if (ag->pms5003t_1.getFailCount() >= PMS_FAIL_COUNT_SET_INVALID) {
|
||||
measurements.pm01_1 = utils::getInvalidPmValue();
|
||||
measurements.pm25_1 = utils::getInvalidPmValue();
|
||||
measurements.pm10_1 = utils::getInvalidPmValue();
|
||||
measurements.pm03PCount_1 = utils::getInvalidPmValue();
|
||||
measurements.temp_1 = utils::getInvalidTemperature();
|
||||
measurements.hum_1 = utils::getInvalidHumidity();
|
||||
}
|
||||
|
||||
if (ag->pms5003t_1.getFailCount() >= ag->pms5003t_1.getFailCountMax()) {
|
||||
restart = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (configuration.hasSensorPMS2 && ag->pms5003t_2.connected()) {
|
||||
measurements.pm01_2 = ag->pms5003t_2.getPm01Ae();
|
||||
measurements.pm25_2 = ag->pms5003t_2.getPm25Ae();
|
||||
measurements.pm10_2 = ag->pms5003t_2.getPm10Ae();
|
||||
measurements.pm03PCount_2 = ag->pms5003t_2.getPm03ParticleCount();
|
||||
measurements.temp_2 = ag->pms5003t_2.getTemperature();
|
||||
measurements.hum_2 = ag->pms5003t_2.getRelativeHumidity();
|
||||
|
||||
pmsResult_2 = true;
|
||||
|
||||
Serial.println();
|
||||
Serial.printf("[2] PM1 ug/m3: %d\r\n", measurements.pm01_2);
|
||||
Serial.printf("[2] PM2.5 ug/m3: %d\r\n", measurements.pm25_2);
|
||||
Serial.printf("[2] PM10 ug/m3: %d\r\n", measurements.pm10_2);
|
||||
Serial.printf("[2] PM3.0 Count: %d\r\n", measurements.pm03PCount_2);
|
||||
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.compensateTemp(measurements.temp_2));
|
||||
Serial.printf("[2] Relative Humidity compensated: %0.2f\r\n",
|
||||
ag->pms5003t_1.compensateHum(measurements.hum_2));
|
||||
Serial.printf("[2] PM firmware version: %d\r\n", ag->pms5003t_2.getFirmwareVersion());
|
||||
|
||||
ag->pms5003t_2.resetFailCount();
|
||||
} else {
|
||||
if (configuration.hasSensorPMS2) {
|
||||
ag->pms5003t_2.updateFailCount();
|
||||
Serial.printf("[2] PMS read failed %d times\r\n", ag->pms5003t_2.getFailCount());
|
||||
|
||||
if (ag->pms5003t_2.getFailCount() >= PMS_FAIL_COUNT_SET_INVALID) {
|
||||
measurements.pm01_2 = utils::getInvalidPmValue();
|
||||
measurements.pm25_2 = utils::getInvalidPmValue();
|
||||
measurements.pm10_2 = utils::getInvalidPmValue();
|
||||
measurements.pm03PCount_2 = utils::getInvalidPmValue();
|
||||
measurements.temp_2 = utils::getInvalidTemperature();
|
||||
measurements.hum_2 = utils::getInvalidHumidity();
|
||||
}
|
||||
|
||||
if (ag->pms5003t_2.getFailCount() >= ag->pms5003t_2.getFailCountMax()) {
|
||||
restart = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (configuration.hasSensorPMS1 && configuration.hasSensorPMS2 &&
|
||||
pmsResult_1 && pmsResult_2) {
|
||||
/** Get total of PMS1*/
|
||||
measurements.pm1Value01 = measurements.pm1Value01 + measurements.pm01_1;
|
||||
measurements.pm1Value25 = measurements.pm1Value25 + measurements.pm25_1;
|
||||
measurements.pm1Value10 = measurements.pm1Value10 + measurements.pm10_1;
|
||||
measurements.pm1PCount =
|
||||
measurements.pm1PCount + measurements.pm03PCount_1;
|
||||
measurements.pm1temp = measurements.pm1temp + measurements.temp_1;
|
||||
measurements.pm1hum = measurements.pm1hum + measurements.hum_1;
|
||||
|
||||
/** Get total of PMS2 */
|
||||
measurements.pm2Value01 = measurements.pm2Value01 + measurements.pm01_2;
|
||||
measurements.pm2Value25 = measurements.pm2Value25 + measurements.pm25_2;
|
||||
measurements.pm2Value10 = measurements.pm2Value10 + measurements.pm10_2;
|
||||
measurements.pm2PCount =
|
||||
measurements.pm2PCount + measurements.pm03PCount_2;
|
||||
measurements.pm2temp = measurements.pm2temp + measurements.temp_2;
|
||||
measurements.pm2hum = measurements.pm2hum + measurements.hum_2;
|
||||
|
||||
measurements.countPosition++;
|
||||
|
||||
/** Get average */
|
||||
if (measurements.countPosition == measurements.targetCount) {
|
||||
measurements.pm01_1 =
|
||||
measurements.pm1Value01 / measurements.targetCount;
|
||||
measurements.pm25_1 =
|
||||
measurements.pm1Value25 / measurements.targetCount;
|
||||
measurements.pm10_1 =
|
||||
measurements.pm1Value10 / measurements.targetCount;
|
||||
measurements.pm03PCount_1 =
|
||||
measurements.pm1PCount / measurements.targetCount;
|
||||
measurements.temp_1 = measurements.pm1temp / measurements.targetCount;
|
||||
measurements.hum_1 = measurements.pm1hum / measurements.targetCount;
|
||||
|
||||
measurements.pm01_2 =
|
||||
measurements.pm2Value01 / measurements.targetCount;
|
||||
measurements.pm25_2 =
|
||||
measurements.pm2Value25 / measurements.targetCount;
|
||||
measurements.pm10_2 =
|
||||
measurements.pm2Value10 / measurements.targetCount;
|
||||
measurements.pm03PCount_2 =
|
||||
measurements.pm2PCount / measurements.targetCount;
|
||||
measurements.temp_2 = measurements.pm2temp / measurements.targetCount;
|
||||
measurements.hum_2 = measurements.pm2hum / measurements.targetCount;
|
||||
|
||||
measurements.countPosition = 0;
|
||||
|
||||
measurements.pm1Value01 = 0;
|
||||
measurements.pm1Value25 = 0;
|
||||
measurements.pm1Value10 = 0;
|
||||
measurements.pm1PCount = 0;
|
||||
measurements.pm1temp = 0;
|
||||
measurements.pm1hum = 0;
|
||||
measurements.pm2Value01 = 0;
|
||||
measurements.pm2Value25 = 0;
|
||||
measurements.pm2Value10 = 0;
|
||||
measurements.pm2PCount = 0;
|
||||
measurements.pm2temp = 0;
|
||||
measurements.pm2hum = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (pmsResult_1 && pmsResult_2) {
|
||||
measurements.Temperature =
|
||||
(measurements.temp_1 + measurements.temp_2) / 2;
|
||||
measurements.Humidity = (measurements.hum_1 + measurements.hum_2) / 2;
|
||||
} else {
|
||||
if (pmsResult_1) {
|
||||
measurements.Temperature = measurements.temp_1;
|
||||
measurements.Humidity = measurements.hum_1;
|
||||
}
|
||||
if (pmsResult_2) {
|
||||
measurements.Temperature = measurements.temp_2;
|
||||
measurements.Humidity = measurements.hum_2;
|
||||
}
|
||||
}
|
||||
|
||||
if (configuration.hasSensorSGP) {
|
||||
float temp;
|
||||
float hum;
|
||||
if (pmsResult_1 && pmsResult_2) {
|
||||
temp = (measurements.temp_1 + measurements.temp_2) / 2.0f;
|
||||
hum = (measurements.hum_1 + measurements.hum_2) / 2.0f;
|
||||
} else {
|
||||
if (pmsResult_1) {
|
||||
temp = measurements.temp_1;
|
||||
hum = measurements.hum_1;
|
||||
}
|
||||
if (pmsResult_2) {
|
||||
temp = measurements.temp_2;
|
||||
hum = measurements.hum_2;
|
||||
}
|
||||
}
|
||||
ag->sgp41.setCompensationTemperatureHumidity(temp, hum);
|
||||
// PMS channel 1 now is not connected, update using invalid value
|
||||
measurements.updateValue(Measurements::AgValueType::PM01, utils::getInvalidPmValue(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM25, utils::getInvalidPmValue(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM10, utils::getInvalidPmValue(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM03_PC, utils::getInvalidPmValue(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::Temperature,
|
||||
utils::getInvalidTemperature(), channel);
|
||||
measurements.updateValue(Measurements::AgValueType::Humidity, utils::getInvalidHumidity(),
|
||||
channel);
|
||||
}
|
||||
}
|
||||
|
||||
if (restart) {
|
||||
Serial.printf("PMS failure count reach to max set %d, restarting...", ag->pms5003.getFailCountMax());
|
||||
ESP.restart();
|
||||
// Read PMS channel 2 if available
|
||||
channel = 2;
|
||||
if (configuration.hasSensorPMS2) {
|
||||
if (ag->pms5003t_2.connected()) {
|
||||
measurements.updateValue(Measurements::AgValueType::PM01, ag->pms5003t_2.getPm01Ae(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM25, ag->pms5003t_2.getPm25Ae(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM10, ag->pms5003t_2.getPm10Ae(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM03_PC,
|
||||
ag->pms5003t_2.getPm03ParticleCount(), channel);
|
||||
measurements.updateValue(Measurements::AgValueType::Temperature,
|
||||
ag->pms5003t_2.getTemperature(), channel);
|
||||
measurements.updateValue(Measurements::AgValueType::Humidity,
|
||||
ag->pms5003t_2.getRelativeHumidity(), channel);
|
||||
|
||||
// flag that new valid PMS value exists
|
||||
newPMS2Value = true;
|
||||
} else {
|
||||
// PMS channel channel now is not connected, update using invalid value
|
||||
measurements.updateValue(Measurements::AgValueType::PM01, utils::getInvalidPmValue(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM25, utils::getInvalidPmValue(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM10, utils::getInvalidPmValue(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::PM03_PC, utils::getInvalidPmValue(),
|
||||
channel);
|
||||
measurements.updateValue(Measurements::AgValueType::Temperature,
|
||||
utils::getInvalidTemperature(), channel);
|
||||
measurements.updateValue(Measurements::AgValueType::Humidity, utils::getInvalidHumidity(),
|
||||
channel);
|
||||
}
|
||||
}
|
||||
|
||||
if (configuration.hasSensorSGP) {
|
||||
float temp, hum;
|
||||
if (newPMS1Value && newPMS2Value) {
|
||||
// Both PMS has new valid value
|
||||
temp = (measurements.getValueFloat(Measurements::AgValueType::Temperature, false, 1) +
|
||||
measurements.getValueFloat(Measurements::AgValueType::Temperature, false, 2)) /
|
||||
2.0f;
|
||||
hum = (measurements.getValueFloat(Measurements::AgValueType::Humidity, false, 1) +
|
||||
measurements.getValueFloat(Measurements::AgValueType::Humidity, false, 2)) /
|
||||
2.0f;
|
||||
} else if (newPMS1Value) {
|
||||
// Only PMS1 has new valid value
|
||||
temp = measurements.getValueFloat(Measurements::AgValueType::Temperature, false, 1);
|
||||
hum = measurements.getValueFloat(Measurements::AgValueType::Humidity, false, 1);
|
||||
} else {
|
||||
// Only PMS2 has new valid value
|
||||
temp = measurements.getValueFloat(Measurements::AgValueType::Temperature, false, 2);
|
||||
hum = measurements.getValueFloat(Measurements::AgValueType::Humidity, false, 2);
|
||||
}
|
||||
|
||||
// Update compensation temperature and humidity for SGP41
|
||||
ag->sgp41.setCompensationTemperatureHumidity(temp, hum);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1239,24 +1160,25 @@ static void sendDataToServer(void) {
|
||||
static void tempHumUpdate(void) {
|
||||
delay(100);
|
||||
if (ag->sht.measure()) {
|
||||
measurements.Temperature = ag->sht.getTemperature();
|
||||
measurements.Humidity = ag->sht.getRelativeHumidity();
|
||||
float temp = ag->sht.getTemperature();
|
||||
float rhum = ag->sht.getRelativeHumidity();
|
||||
|
||||
Serial.printf("Temperature in C: %0.2f\r\n", measurements.Temperature);
|
||||
Serial.printf("Relative Humidity: %d\r\n", measurements.Humidity);
|
||||
Serial.printf("Temperature compensated in C: %0.2f\r\n",
|
||||
measurements.Temperature);
|
||||
Serial.printf("Relative Humidity compensated: %d\r\n",
|
||||
measurements.Humidity);
|
||||
measurements.updateValue(Measurements::AgValueType::Temperature, temp);
|
||||
measurements.updateValue(Measurements::AgValueType::Humidity, rhum);
|
||||
|
||||
// Serial.printf("Temperature in C: %0.2f\n", temp);
|
||||
// Serial.printf("Relative Humidity: %d\n", rhum);
|
||||
// Serial.printf("Temperature compensated in C: %0.2f\n", temp);
|
||||
// Serial.printf("Relative Humidity compensated: %0.2f\n", rhum);
|
||||
|
||||
// Update compensation temperature and humidity for SGP41
|
||||
if (configuration.hasSensorSGP) {
|
||||
ag->sgp41.setCompensationTemperatureHumidity(measurements.Temperature,
|
||||
measurements.Humidity);
|
||||
ag->sgp41.setCompensationTemperatureHumidity(temp, rhum);
|
||||
}
|
||||
} else {
|
||||
measurements.Temperature = utils::getInvalidTemperature();
|
||||
measurements.Humidity = utils::getInvalidHumidity();
|
||||
measurements.updateValue(Measurements::AgValueType::Temperature,
|
||||
utils::getInvalidTemperature());
|
||||
measurements.updateValue(Measurements::AgValueType::Humidity, utils::getInvalidHumidity());
|
||||
Serial.println("SHT read failed");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user