ModularSensors > Files > src / sensors / MeterHydros21.h

MeterHydros21.h file

Contains the MeterHydros21 subclass of the SDI12Sensors class along with the variable subclasses MeterHydros21_Cond, MeterHydros21_Temp, and MeterHydros21_Depth.

These are used for the Meter Hydros 21.

This depends on the EnviroDIY SDI-12 library and the SDI12Sensors super class.

Classes

class MeterHydros21
The Sensor sub-class for the Meter Hydros 21 conductivity, temperature, and depth sensor.
class MeterHydros21_Cond
The Variable sub-class used for the conductivity output from a Meter Hydros 21 3-in-1 water level sensor..
class MeterHydros21_Temp
The Variable sub-class used for the temperature output from a Meter Hydros 21 3-in-1 water level sensor..
class MeterHydros21_Depth
The Variable sub-class used for the depth output from a Meter Hydros 21 3-in-1 water level sensor..

Defines

#define HYDROS21_NUM_VARIABLES = 3
Sensor::_numReturnedValues; the Hydros 21 can report 3 values.
#define HYDROS21_INC_CALC_VARIABLES = 0
Sensor::_incCalcValues; we don't calculate any additional values.

Sensor Timing

The sensor timing for a Meter Hydros 21

#define HYDROS21_WARM_UP_TIME_MS = 500
Sensor::_warmUpTime_ms; maximum warm-up time in SDI-12 mode: 500ms.
#define HYDROS21_STABILIZATION_TIME_MS = 0
Sensor::_stabilizationTime_ms; the Hydros 21 is stable as soon as it warms up (0ms stabilization).
#define HYDROS21_MEASUREMENT_TIME_MS = 1000
Sensor::_measurementTime_ms; maximum measurement duration: 1000ms.
#define HYDROS21_EXTRA_WAKE_TIME_MS = 0
Extra wake time required for an SDI-12 sensor between the "break" and the time the command is sent. The Hydros 21 requires no extra time.

Conductivity

The conductivity variable from a Meter Hydros 21

  • Range is 0 – 120 mS/cm (bulk)
  • Accuracy is ±0.01mS/cm or ±10% (whichever is greater)

MeterHydros21_Cond(MeterHydros21* parentSense, const char* uuid = "", const char* varCode = HYDROS21_COND_DEFAULT_CODE) explicit

Construct a new MeterHydros21_Cond object.

Parameters
parentSense The parent MeterHydros21 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 "Hydros21cond".

#define HYDROS21_COND_RESOLUTION = 1
Decimals places in string representation; conductivity should have 1.
#define HYDROS21_COND_VAR_NUM = 2
Sensor variable number; conductivity is stored in sensorValues[2].
#define HYDROS21_COND_VAR_NAME = "specificConductance"
Variable name in ODM2 controlled vocabulary; "specificConductance".
#define HYDROS21_COND_UNIT_NAME = "microsiemenPerCentimeter"
Variable unit name in ODM2 controlled vocabulary; "microsiemenPerCentimeter" (µS/cm)
#define HYDROS21_COND_DEFAULT_CODE = "Hydros21cond"
Default variable short code; "Hydros21cond".

Temperature

The temperature variable from a Meter Hydros 21

  • Range is -11°C to +49°C
  • Accuracy is ±1°C

MeterHydros21_Temp(MeterHydros21* parentSense, const char* uuid = "", const char* varCode = HYDROS21_TEMP_DEFAULT_CODE) explicit

Construct a new MeterHydros21_Temp object.

Parameters
parentSense The parent MeterHydros21 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 "Hydros21temp".

#define HYDROS21_TEMP_RESOLUTION = 2
Decimals places in string representation; temperature should have 2.
#define HYDROS21_TEMP_VAR_NUM = 1
Sensor variable number; temperature is stored in sensorValues[1].
#define HYDROS21_TEMP_VAR_NAME = "temperature"
Variable name in ODM2 controlled vocabulary; "temperature".
#define HYDROS21_TEMP_UNIT_NAME = "degreeCelsius"
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define HYDROS21_TEMP_DEFAULT_CODE = "Hydros21temp"
Default variable short code; "Hydros21temp".

Water Depth

The water depth variable from a Meter Hydros 21

  • Range is 0 to 5 m or 0 to 10 m, depending on model
  • Accuracy is ±0.05% of full scale

MeterHydros21_Depth(MeterHydros21* parentSense, const char* uuid = "", const char* varCode = HYDROS21_DEPTH_DEFAULT_CODE) explicit

Construct a new MeterHydros21_Depth object.

Parameters
parentSense The parent MeterHydros21 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 "Hydros21depth".

#define HYDROS21_DEPTH_RESOLUTION = 1
Decimals places in string representation; depth should have 1.
#define HYDROS21_DEPTH_VAR_NUM = 0
Sensor variable number; depth is stored in sensorValues[0].
#define HYDROS21_DEPTH_VAR_NAME = "waterDepth"
Variable name in ODM2 controlled vocabulary; "waterDepth".
#define HYDROS21_DEPTH_UNIT_NAME = "millimeter"
Variable unit name in ODM2 controlled vocabulary; "millimeter".
#define HYDROS21_DEPTH_DEFAULT_CODE = "Hydros21depth"
Default variable short code; "Hydros21depth".