ModularSensors > Files > src / sensors / AtlasScientificCO2.h

AtlasScientificCO2.h file

Contains the AtlasScientificCO2 subclass of the AtlasParent sensor class along with the variable subclasses AtlasScientificCO2_CO2 and AtlasScientificCO2_Temp.

These are used for any sensor attached to an Atlas EZO CO2 circuit.

Classes

class AtlasScientificCO2
The Sensor sub-class for the Atlas Scientific gaseous CO2 and temperature sensor.
class AtlasScientificCO2_CO2
The Variable sub-class used for the CO2 concentration output from an Atlas Scientific CO2 circuit.
class AtlasScientificCO2_Temp
The Variable sub-class used for the temperature output from an Atlas Scientific CO2 circuit.

Defines

#define ATLAS_CO2_I2C_ADDR = 0x69
Default I2C address is 0x69 (105)
#define ATLAS_CO2_NUM_VARIABLES = 2
Sensor::_numReturnedValues; the Atlas CO2 sensor can report 2 values.
#define ATLAS_CO2_INC_CALC_VARIABLES = 0
Sensor::_incCalcValues; we don't calculate any additional values.

Sensor Timing

#define ATLAS_CO2_WARM_UP_TIME_MS = 850
Sensor::_warmUpTime_ms; the Atlas CO2 sensor warms up in 850ms.
#define ATLAS_CO2_STABILIZATION_TIME_MS = 10000
Sensor::_stabilizationTime_ms; the Atlas CO2 sensor is not stable until 10s (10000ms) after warm-up.
#define ATLAS_CO2_MEASUREMENT_TIME_MS = 900
Sensor::_measurementTime_ms; the Atlas CO2 sensor takes 900ms to complete a measurement.

CO2 Concentration

The CO2 variable from an Atlas CO2 sensor

  • Accuracy is ± 3% or ± 30 ppm
  • Range is 0 − 10000 ppm

AtlasScientificCO2_CO2(AtlasScientificCO2* parentSense, const char* uuid = "", const char* varCode = ATLAS_CO2_DEFAULT_CODE) explicit

Construct a new AtlasScientificCO2_CO2 object.

Parameters
parentSense The parent AtlasScientificCO2 providing the result values.
uuid A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string.
varCode A short code to help identify the variable in files; optional with a default value of "AtlasCO2ppm".

#define ATLAS_CO2_RESOLUTION = 1
Decimals places in string representation; CO2 should have 1 - resolution is 1 ppm.
#define ATLAS_CO2_VAR_NUM = 0
Sensor variable number; CO2 is stored in sensorValues[0].
#define ATLAS_CO2_VAR_NAME = "carbonDioxide"
Variable name in ODM2 controlled vocabulary; "carbonDioxide".
#define ATLAS_CO2_UNIT_NAME = "partPerMillion"
Variable unit name in ODM2 controlled vocabulary; "partPerMillion" (ppm)
#define ATLAS_CO2_DEFAULT_CODE = "AtlasCO2ppm"
Default variable short code; "AtlasCO2ppm".

Temperature

The temperature variable from an Atlas CO2 sensor

  • Accuracy is not reported on the sensor datasheet
  • Range is -20°C to +50°C

AtlasScientificCO2_Temp(AtlasScientificCO2* parentSense, const char* uuid = "", const char* varCode = ATLAS_CO2TEMP_DEFAULT_CODE) explicit

Construct a new AtlasScientificCO2_Temp object.

Parameters
parentSense The parent AtlasScientificCO2 providing the result values.
uuid A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string.
varCode A short code to help identify the variable in files; optional with a default value of "AtlasCO2Temp".

#define ATLAS_CO2TEMP_RESOLUTION = 0
Decimals places in string representation; CO2TEMP should have 0 - resolution is 1°C.
#define ATLAS_CO2TEMP_VAR_NUM = 1
Sensor variable number; CO2TEMP is stored in sensorValues[1].
#define ATLAS_CO2TEMP_VAR_NAME = "temperature"
Variable name in ODM2 controlled vocabulary; "temperature".
#define ATLAS_CO2TEMP_UNIT_NAME = "degreeCelsius"
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define ATLAS_CO2TEMP_DEFAULT_CODE = "AtlasCO2Temp"
Default variable short code; "AtlasCO2Temp".