Meter Hydros 21 topic
- Introduction
- Sensor Datasheet
- Build flags
- Sensor Constructor
- Example Code
- Reference
- Detailed Descriptions
Classes for the Meter Hydros 21 conductivity, temperature, and depth sensor.
Introduction
A compact 3.4 cm diameter sensor that fits into tight spaces, the HYDROS 21 is a low-cost, durable, and easy-to-use tool for monitoring EC, temperature, and depth in both groundwater and surface water.
The Hydros 21 is implemented as a sub-classes of the SDI12Sensors class. It requires a 3.5-12V power supply, which can be turned off between measurements. While contrary to the manual, they will run with power as low as 3.3V.
Sensor Datasheet
Documentation for the SDI-12 Protocol commands and responses for the Hydros 21 can be found at: http://library.metergroup.com/Manuals/13869_
Build flags
Sensor Constructor
Construct a new Meter Hydros 21 object. The pin on the mcu controlling power to the Hydros 21. Use -1 if it is continuously powered. The SDI-12 address of the sensor, the Arduino pin controlling power on/off, and the Arduino pin sending and receiving data are required for the sensor constructor. Optionally, you can include a number of distinct readings to average. The data pin must be a pin that supports pin-change interrupts.
MeterHydros21::
Parameters
SDI12address
The SDI-12 address of the Hydros 21; can be a char, char*, or int.
powerPin
dataPin
The pin on the mcu connected to the data line of the SDI-12 circuit.
measurementsToAverage
The number of measurements to take and average before giving a "final" result from the sensor; optional with a default value of 1.
Example Code
The Meter Hydros21 is used in the menu a la carte example.
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..
Sensor Variable Counts
The number of variables that can be returned by the Meter Hydros 21
- #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)
Construct a new MeterHydros21_
MeterHydros21_
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
Construct a new MeterHydros21_
MeterHydros21_
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
Construct a new MeterHydros21_
MeterHydros21_
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".
Define documentation
#define HYDROS21_NUM_VARIABLES = 3
#include <src/sensors/MeterHydros21.h>
Sensor::
#define HYDROS21_INC_CALC_VARIABLES = 0
#include <src/sensors/MeterHydros21.h>
Sensor::
#define HYDROS21_WARM_UP_TIME_MS = 500
#include <src/sensors/MeterHydros21.h>
Sensor::
#define HYDROS21_STABILIZATION_TIME_MS = 0
#include <src/sensors/MeterHydros21.h>
Sensor::
#define HYDROS21_MEASUREMENT_TIME_MS = 1000
#include <src/sensors/MeterHydros21.h>
Sensor::
#define HYDROS21_EXTRA_WAKE_TIME_MS = 0
#include <src/sensors/MeterHydros21.h>
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.
#define HYDROS21_COND_RESOLUTION = 1
#include <src/sensors/MeterHydros21.h>
Decimals places in string representation; conductivity should have 1.
0 are reported, adding extra digit to resolution to allow the proper number of significant figures for averaging - resolution is 0.001 mS/cm = 1 µS/cm
#define HYDROS21_COND_VAR_NUM = 2
#include <src/sensors/MeterHydros21.h>
Sensor variable number; conductivity is stored in sensorValues[2].
#define HYDROS21_COND_VAR_NAME = "specificConductance"
#include <src/sensors/MeterHydros21.h>
Variable name in ODM2 controlled vocabulary; "specificConductance".
#define HYDROS21_COND_UNIT_NAME = "microsiemenPerCentimeter"
#include <src/sensors/MeterHydros21.h>
Variable unit name in ODM2 controlled vocabulary; "microsiemenPerCentimeter" (µS/cm)
#define HYDROS21_COND_DEFAULT_CODE = "Hydros21cond"
#include <src/sensors/MeterHydros21.h>
Default variable short code; "Hydros21cond".
#define HYDROS21_TEMP_RESOLUTION = 2
#include <src/sensors/MeterHydros21.h>
Decimals places in string representation; temperature should have 2.
1 is reported, adding extra digit to resolution to allow the proper number of significant figures for averaging - resolution is 0.1°C
#define HYDROS21_TEMP_VAR_NUM = 1
#include <src/sensors/MeterHydros21.h>
Sensor variable number; temperature is stored in sensorValues[1].
#define HYDROS21_TEMP_VAR_NAME = "temperature"
#include <src/sensors/MeterHydros21.h>
Variable name in ODM2 controlled vocabulary; "temperature".
#define HYDROS21_TEMP_UNIT_NAME = "degreeCelsius"
#include <src/sensors/MeterHydros21.h>
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define HYDROS21_TEMP_DEFAULT_CODE = "Hydros21temp"
#include <src/sensors/MeterHydros21.h>
Default variable short code; "Hydros21temp".
#define HYDROS21_DEPTH_RESOLUTION = 1
#include <src/sensors/MeterHydros21.h>
Decimals places in string representation; depth should have 1.
0 are reported, adding extra digit to resolution to allow the proper number of significant figures for averaging - resolution is 2 mm
#define HYDROS21_DEPTH_VAR_NUM = 0
#include <src/sensors/MeterHydros21.h>
Sensor variable number; depth is stored in sensorValues[0].
#define HYDROS21_DEPTH_VAR_NAME = "waterDepth"
#include <src/sensors/MeterHydros21.h>
Variable name in ODM2 controlled vocabulary; "waterDepth".
#define HYDROS21_DEPTH_UNIT_NAME = "millimeter"
#include <src/sensors/MeterHydros21.h>
Variable unit name in ODM2 controlled vocabulary; "millimeter".
#define HYDROS21_DEPTH_DEFAULT_CODE = "Hydros21depth"
#include <src/sensors/MeterHydros21.h>
Default variable short code; "Hydros21depth".