Merge pull request #45 from brentru/add-eco2

Add CO2, eCO2 sensor types
This commit is contained in:
Brent Rubell
2023-03-03 11:00:03 -05:00
committed by GitHub
4 changed files with 20 additions and 3 deletions

View File

@ -70,6 +70,12 @@ void Adafruit_Sensor::printSensorDetails(void) {
case SENSOR_TYPE_NOX_INDEX: case SENSOR_TYPE_NOX_INDEX:
Serial.print(F("Nitrogen Oxides (Index)")); Serial.print(F("Nitrogen Oxides (Index)"));
break; break;
case SENSOR_TYPE_CO2:
Serial.print(F("Carbon Dioxide (ppm)"));
break;
case SENSOR_TYPE_eCO2:
Serial.print(F("Equivalent/estimated CO2 (ppm)"));
break;
} }
Serial.println(); Serial.println();

7
Adafruit_Sensor.h Executable file → Normal file
View File

@ -69,7 +69,9 @@ typedef enum {
SENSOR_TYPE_COLOR = (17), SENSOR_TYPE_COLOR = (17),
SENSOR_TYPE_TVOC = (18), SENSOR_TYPE_TVOC = (18),
SENSOR_TYPE_VOC_INDEX = (19), SENSOR_TYPE_VOC_INDEX = (19),
SENSOR_TYPE_NOX_INDEX = (20) SENSOR_TYPE_NOX_INDEX = (20),
SENSOR_TYPE_CO2 = (21),
SENSOR_TYPE_eCO2 = (22),
} sensors_type_t; } sensors_type_t;
/** struct sensors_vec_s is used to return a vector in a common format. */ /** struct sensors_vec_s is used to return a vector in a common format. */
@ -142,6 +144,9 @@ typedef struct {
normal (unitless) */ normal (unitless) */
float nox_index; /**< NOx (Nitrogen Oxides) index where 100 is normal float nox_index; /**< NOx (Nitrogen Oxides) index where 100 is normal
(unitless) */ (unitless) */
float CO2; /**< Measured CO2 in parts per million (ppm) */
float eCO2; /**< equivalent/estimated CO2 in parts per million (ppm
estimated from some other measurement) */
sensors_color_t color; /**< color in RGB component values */ sensors_color_t color; /**< color in RGB component values */
}; ///< Union for the wide ranges of data we can carry }; ///< Union for the wide ranges of data we can carry
} sensors_event_t; } sensors_event_t;

View File

@ -77,7 +77,9 @@ typedef enum
SENSOR_TYPE_COLOR = (17), SENSOR_TYPE_COLOR = (17),
SENSOR_TYPE_TVOC = (18), SENSOR_TYPE_TVOC = (18),
SENSOR_TYPE_VOC_INDEX = (19), SENSOR_TYPE_VOC_INDEX = (19),
SENSOR_TYPE_NOX_INDEX = (20) SENSOR_TYPE_NOX_INDEX = (20),
SENSOR_TYPE_CO2 = (21),
SENSOR_TYPE_eCO2 = (22),
} sensors_type_t; } sensors_type_t;
``` ```
@ -143,6 +145,8 @@ typedef struct
float tvoc; float tvoc;
float voc_index; float voc_index;
float nox_index; float nox_index;
float CO2,
float eCO2,
sensors_color_t color; sensors_color_t color;
}; };
} sensors_event_t; } sensors_event_t;
@ -188,6 +192,8 @@ A key part of the abstraction layer is the standardisation of values on SI units
- **tvoc**: values are in **parts per billion** (ppb) - **tvoc**: values are in **parts per billion** (ppb)
- **voc_index**: values are an **index** from 1-500 with 100 being normal - **voc_index**: values are an **index** from 1-500 with 100 being normal
- **nox_index**: values are an **index** from 1-500 with 100 being normal - **nox_index**: values are an **index** from 1-500 with 100 being normal
- **CO2**: values are in **parts per million*** (ppm)
- **eCO2**: values are in **parts per million*** (ppm)
## The Unified Driver Abstraction Layer in Practice ## ## The Unified Driver Abstraction Layer in Practice ##

View File

@ -1,5 +1,5 @@
name=Adafruit Unified Sensor name=Adafruit Unified Sensor
version=1.1.7 version=1.1.8
author=Adafruit <info@adafruit.com> author=Adafruit <info@adafruit.com>
maintainer=Adafruit <info@adafruit.com> maintainer=Adafruit <info@adafruit.com>
sentence=Required for all Adafruit Unified Sensor based libraries. sentence=Required for all Adafruit Unified Sensor based libraries.