ModularSensors > Files > src / sensors / YosemitechY4000.h

YosemitechY4000.h file

Contains the YosemitechY4000 sensor subclass and the variable subclasses YosemitechY4000_DOmgL, YosemitechY4000_Turbidity, YosemitechY4000_Cond, YosemitechY4000_pH, YosemitechY4000_Temp, YosemitechY4000_ORP, YosemitechY4000_Chlorophyll, and YosemitechY4000_BGA.

These are for the Yosemitech Y4000 multi-parameter sonde.

This depends on the YosemitechParent super class.

Documentation for the Modbus Protocol commands and responses can be found within the documentation in the YosemitechModbus library at: https://github.com/EnviroDIY/YosemitechModbus

More detailed infromation on each variable can be found in the documentation for the individual sensor probes

Classes

class YosemitechY4000
The Sensor sub-class for the Yosemitech Y4000 multiparameter sonde.
class YosemitechY4000_DOmgL
The Variable sub-class used for the dissolved oxygen concentration output from a Yosemitech Y4000 multiparameter sonde.
class YosemitechY4000_Turbidity
The Variable sub-class used for the turbidity output from a Yosemitech Y4000 multiparameter sonde.
class YosemitechY4000_Cond
The Variable sub-class used for the conductivity output from a Yosemitech Y4000 multiparameter sonde.
class YosemitechY4000_pH
The Variable sub-class used for the pH output from a Yosemitech Y4000 multiparameter sonde.
class YosemitechY4000_Temp
The Variable sub-class used for the temperature output from a Yosemitech Y4000 multiparameter sonde.
class YosemitechY4000_ORP
The Variable sub-class used for the electrode electrical potential output from a Yosemitech Y4000 multiparameter sonde.
class YosemitechY4000_Chlorophyll
The Variable sub-class used for the chlorophyll concentration output from a Yosemitech Y4000 multiparameter sonde.
class YosemitechY4000_BGA
The Variable sub-class used for the blue green algae (BGA) concentration output from a Yosemitech Y4000 multiparameter sonde.

Defines

#define Y4000_NUM_VARIABLES = 8
Sensor::_numReturnedValues; the Y4000 can report 8 values.
#define Y4000_INC_CALC_VARIABLES = 0
Sensor::_incCalcValues; we don't calculate any additional values.

Sensor Timing

The sensor timing for a Yosemitch Y4000 multi-parameter sonde

#define Y4000_WARM_UP_TIME_MS = 1000
Sensor::_warmUpTime_ms; time before sensor responds after power - 1.6 seconds (1600ms).
#define Y4000_STABILIZATION_TIME_MS = 50000
Sensor::_stabilizationTime_ms; the Y4000 is stable after 60000ms.
#define Y4000_MEASUREMENT_TIME_MS = 4000
Sensor::_measurementTime_ms; the Y4000 takes ~4000ms to complete a measurement.

Dissolved Oxygen Concentration

The dissolved oxygen concentration variable from a Yosemitch Y4000 multi-parameter sonde

  • Range is 0-20mg/L or 0-200% Air Saturation
  • Accuracy is ± 0.3 mg/L

YosemitechY4000_DOmgL(YosemitechY4000* parentSense, const char* uuid = "", const char* varCode = Y4000_DOMGL_DEFAULT_CODE) explicit

Construct a new YosemitechY4000_DOmgL object.

Parameters
parentSense The parent YosemitechY4000 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 "Y4000DOmgL".

#define Y4000_DOMGL_RESOLUTION = 2
Decimals places in string representation; dissolved oxygen concentration should have 2 - resolution is 0.01 mg/L.
#define Y4000_DOMGL_VAR_NUM = 0
Sensor variable number; dissolved oxygen concentration is stored in sensorValues[0].
#define Y4000_DOMGL_VAR_NAME = "oxygenDissolved"
Variable name in ODM2 controlled vocabulary; "oxygenDissolved".
#define Y4000_DOMGL_UNIT_NAME = "milligramPerLiter"
Variable unit name in ODM2 controlled vocabulary; "milligramPerLiter" (mg/L)
#define Y4000_DOMGL_DEFAULT_CODE = "Y4000DOmgL"
Default variable short code; "Y4000DOmgL".

Turbidity

The turbidity variable from a Yosemitch Y4000 multi-parameter sonde

  • Range is 0.1~1000 NTU
  • Accuracy is <5% or 0.3NTU

YosemitechY4000_Turbidity(YosemitechY4000* parentSense, const char* uuid = "", const char* varCode = Y4000_TURB_DEFAULT_CODE) explicit

Construct a new YosemitechY4000_Turbidity object.

Parameters
parentSense The parent YosemitechY4000 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 "Y4000Turbidity".

#define Y4000_TURB_RESOLUTION = 2
Decimals places in string representation; turbidity should have 2 - resolution is 0.01 NTU.
#define Y4000_TURB_VAR_NUM = 1
Sensor variable number; turbidity is stored in sensorValues[1].
#define Y4000_TURB_VAR_NAME = "turbidity"
Variable name in ODM2 controlled vocabulary; "turbidity".
#define Y4000_TURB_UNIT_NAME = "nephelometricTurbidityUnit"
Variable unit name in ODM2 controlled vocabulary; "nephelometricTurbidityUnit" (NTU)
#define Y4000_TURB_DEFAULT_CODE = "Y4000Turbidity"
Default variable short code; "Y4000Turbidity".

Conductivity

The conductivity variable from a Yosemitch Y4000 multi-parameter sonde

  • Range is 1 µS/cm to 200 mS/cm
  • Accuracy is ± 1 % Full Scale

YosemitechY4000_Cond(YosemitechY4000* parentSense, const char* uuid = "", const char* varCode = Y4000_COND_DEFAULT_CODE) explicit

Construct a new YosemitechY4000_Cond object.

Parameters
parentSense The parent YosemitechY4000 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 "Y4000Cond".

#define Y4000_COND_RESOLUTION = 1
Decimals places in string representation; conductivity should have 1.
#define Y4000_COND_VAR_NUM = 2
Sensor variable number; conductivity is stored in sensorValues[2].
#define Y4000_COND_VAR_NAME = "specificConductance"
Variable name in ODM2 controlled vocabulary; "specificConductance".
#define Y4000_COND_UNIT_NAME = "microsiemenPerCentimeter"
Variable unit name in ODM2 controlled vocabulary; "microsiemenPerCentimeter" (µS/cm)
#define Y4000_COND_DEFAULT_CODE = "Y4000Cond"
Default variable short code; "Y4000Cond".

pH

The pH variable from a Yosemitch Y4000 multi-parameter sonde

  • Range is 2 to 12 pH units
  • Accuracy is ± 0.1 pH units

YosemitechY4000_pH(YosemitechY4000* parentSense, const char* uuid = "", const char* varCode = Y4000_PH_DEFAULT_CODE) explicit

Construct a new YosemitechY4000_pH object.

Parameters
parentSense The parent YosemitechY4000 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 "Y4000pH".

#define Y4000_PH_RESOLUTION = 2
Decimals places in string representation; ph should have 2 - resolution is 0.01 pH units.
#define Y4000_PH_VAR_NUM = 3
Sensor variable number; pH is stored in sensorValues[3].
#define Y4000_PH_VAR_NAME = "pH"
Variable name in ODM2 controlled vocabulary; "pH".
#define Y4000_PH_UNIT_NAME = "pH"
Variable unit name in ODM2 controlled vocabulary; "pH" (dimensionless pH units)
#define Y4000_PH_DEFAULT_CODE = "Y4000pH"
Default variable short code; "Y4000pH".

Temperature

The temperature variable from a Yosemitch Y4000 multi-parameter sonde

  • Range is 0°C to + 50°C
  • Accuracy is ± 0.2°C

YosemitechY4000_Temp(YosemitechY4000* parentSense, const char* uuid = "", const char* varCode = Y4000_TEMP_DEFAULT_CODE) explicit

Construct a new YosemitechY4000_Temp object.

Parameters
parentSense The parent YosemitechY4000 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 "Y4000Temp".

#define Y4000_TEMP_RESOLUTION = 1
Decimals places in string representation; temperature should have 1 - resolution is 0.1°C.
#define Y4000_TEMP_VAR_NUM = 4
Sensor variable number; temperature is stored in sensorValues[4].
#define Y4000_TEMP_VAR_NAME = "temperature"
Variable name in ODM2 controlled vocabulary; "temperature".
#define Y4000_TEMP_UNIT_NAME = "degreeCelsius"
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define Y4000_TEMP_DEFAULT_CODE = "Y4000Temp"
Default variable short code; "Y4000Temp".

ORP

The ORP variable from a Yosemitch Y4000 multi-parameter sonde

  • Range is -999 ~ 999 mV
  • Accuracy is ± 20 mV

YosemitechY4000_ORP(YosemitechY4000* parentSense, const char* uuid = "", const char* varCode = Y4000_ORP_DEFAULT_CODE) explicit

Construct a new YosemitechY4000_ORP object.

Parameters
parentSense The parent YosemitechY4000 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 "Y4000Potential".

#define Y4000_ORP_RESOLUTION = 0
Decimals places in string representation; orp should have 0 - resolution is 1 mV.
#define Y4000_ORP_VAR_NUM = 5
Sensor variable number; ORP is stored in sensorValues[5].
#define Y4000_ORP_VAR_NAME = "ORP"
Variable name in ODM2 controlled vocabulary; "ORP".
#define Y4000_ORP_UNIT_NAME = "millivolt"
Variable unit name in ODM2 controlled vocabulary; "millivolt" (mV)
#define Y4000_ORP_DEFAULT_CODE = "Y4000Potential"
Default variable short code; "Y4000Potential".

Chlorophyll Concentration

The chlorophyll concentration variable from a Yosemitch Y4000 multi-parameter sonde

  • Range is 0 to 400 µg/L or 0 to 100 RFU
  • Accuracy is ± 1 %

YosemitechY4000_Chlorophyll(YosemitechY4000* parentSense, const char* uuid = "", const char* varCode = Y4000_CHLORO_DEFAULT_CODE) explicit

Construct a new YosemitechY4000_Chlorophyll object.

Parameters
parentSense The parent YosemitechY4000 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 "Y4000Chloro".

#define Y4000_CHLORO_RESOLUTION = 1
Decimals places in string representation; chlorophyll concentration should have 1 - resolution is 0.1 µg/L / 0.1 RFU.
#define Y4000_CHLORO_VAR_NUM = 6
Sensor variable number; chlorophyll concentration is stored in sensorValues[6].
#define Y4000_CHLORO_VAR_NAME = "chlorophyll_a_b_c"
Variable name in ODM2 controlled vocabulary; "chlorophyll_a_b_c".
#define Y4000_CHLORO_UNIT_NAME = "microgramPerLiter"
Variable unit name in ODM2 controlled vocabulary; "microgramPerLiter" (µg/L)
#define Y4000_CHLORO_DEFAULT_CODE = "Y4000Chloro"
Default variable short code; "Y4000Chloro".

Blue Green Algae Concentration

The BGA variable from a Yosemitch Y4000 multi-parameter sonde

  • Range is 0 to 100 µg/L or 0 to 100 RFU
  • Accuracy is ± 0.04ug/L PC

YosemitechY4000_BGA(YosemitechY4000* parentSense, const char* uuid = "", const char* varCode = Y4000_BGA_DEFAULT_CODE) explicit

Construct a new YosemitechY4000_BGA object.

Parameters
parentSense The parent YosemitechY4000 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 "Y4000BGA".

#define Y4000_BGA_RESOLUTION = 2
Decimals places in string representation; bga should have 2 - resolution is 0.01 µg/L / 0.01 RFU.
#define Y4000_BGA_VAR_NUM = 7
Sensor variable number; BGA is stored in sensorValues[7].
#define Y4000_BGA_VAR_NAME = "blueGreenAlgaeCyanobacteriaPhycocyanin"
Variable name in ODM2 controlled vocabulary; "blueGreenAlgaeCyanobacteriaPhycocyanin".
#define Y4000_BGA_UNIT_NAME = "microgramPerLiter"
Variable unit name in ODM2 controlled vocabulary; "microgramPerLiter" (µg/L)
#define Y4000_BGA_DEFAULT_CODE = "Y4000BGA"
Default variable short code; "Y4000BGA".