Campbell ClariVUE10 topic
- Introduction
- Sensor Datasheet
- Build flags
- Sensor Constructor
- Example Code
- Reference
- Detailed Descriptions
Classes for the Campbell ClariVUE10 turbidity sensor.
Introduction
The ClariVUE™10 is an ISO 7027 compliant, side-scatter turbidity sensor. It returns data via SDI-12 to a data logger. Turbidity is a common surrogate measurement for suspended sediment concentration in aquatic systems. The ClariVUE™10 is designed to operate in fresh and saline environments. It will require regular maintenance to keep the optical window clean in high bio-fouling environments. The face of the sensor is made from copper to slow biological growth over the optical windows.
The sensor is implemented as a sub-classes of the SDI12Sensors class. It requires a 9.6 to 18 Vdc power supply, which can be turned off between measurements. It draws < 300 µA when inactive and < 35 mA while measuring.
Sensor Datasheet
The specifications and datasheet are available at https:/
Build flags
Sensor Constructor
Construct a new Campbell ClariVUE10 object. The pin on the mcu controlling power to the ClariVUE10 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.
CampbellClariVUE10::
Parameters
SDI12address
The SDI-12 address of the ClariVUE10; 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 Campbell ClariVUE10 is used in the menu a la carte example.
Classes
- class CampbellClariVUE10
- The Sensor sub-class for the Campbell ClariVUE10 turbidity sensor.
- class CampbellClariVUE10_Turbidity
- The Variable sub-class used for the turbidity output from a Campbell ClariVUE10 turbidity sensor.
- class CampbellClariVUE10_Temp
- The Variable sub-class used for the temperature output from a Campbell ClariVUE10 turbidity sensor.
- class CampbellClariVUE10_ErrorCode
- The Variable sub-class used for the error code output from a Campbell ClariVUE10 turbidity sensor.
Sensor Variable Counts
The number of variables that can be returned by the ClariVUE10
- #define CLARIVUE10_NUM_VARIABLES = 7
- Sensor::
_numReturnedValues; the ClariVUE10 can report 7 values (although we only keep 3). - #define CLARIVUE10_INC_CALC_VARIABLES = 0
- Sensor::
_incCalcValues; The ClariVUE calculates averages and other stats on board, but we don't calculate any additional values.
Sensor Timing
The sensor timing for a Campbell ClariVUE10
- #define CLARIVUE10_WARM_UP_TIME_MS = 8000
- Sensor::
_warmUpTime_ms; the ClariVUE10 warms up in 5500ms. - #define CLARIVUE10_STABILIZATION_TIME_MS = 0
- Sensor::
_stabilizationTime_ms; the ClariVUE10 is stable as soon as it warms up (0ms stabilization). - #define CLARIVUE10_MEASUREMENT_TIME_MS = 11000
- Sensor::
_measurementTime_ms; the ClariVUE10 takes ~9500ms to complete a measurement. - #define CLARIVUE10_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 ClariVUE requires no extra time.
Turbidity
The turbidity variable from a Campbell ClariVUE10
- Range is 0 to 4000 FNU.
- Accuracy ±2% or 0.5 FNU (whichever is greater).
Construct a new CampbellClariVUE10_
CampbellClariVUE10_
Parameters
parentSense
The parent CampbellClariVUE10 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 "ClariVUETurbidity".
- #define CLARIVUE10_TURBIDITY_RESOLUTION = 1
- Decimals places in string representation; turbidity should have 1 (resolution is 0.2 FNU).
- #define CLARIVUE10_TURBIDITY_VAR_NUM = 0
- Sensor variable number; turbidity is stored in sensorValues[0].
- #define CLARIVUE10_TURBIDITY_VAR_NAME = "turbidity"
- Variable name in ODM2 controlled vocabulary; "turbidity".
- #define CLARIVUE10_TURBIDITY_UNIT_NAME = "formazinNephelometricUnit"
- Variable unit name in ODM2 controlled vocabulary; "formazinNephelometricUnit" (FNU)
- #define CLARIVUE10_TURBIDITY_DEFAULT_CODE = "ClariVUETurbidity"
- Default variable short code; "ClariVUETurbidity".
Temperature
The temperature variable from a Campbell ClariVUE10
- Range is -2° to +40°C
- Accuracy is ± 0.2°C
Construct a new CampbellClariVUE10_
CampbellClariVUE10_
Parameters
parentSense
The parent CampbellClariVUE10 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 "ClariVUETempC".
- #define CLARIVUE10_TEMP_RESOLUTION = 2
- Decimals places in string representation; temperature should have 2 - resolution is 0.01°C.
- #define CLARIVUE10_TEMP_VAR_NUM = 5
- Sensor variable number; temperature is stored in sensorValues[5].
- #define CLARIVUE10_TEMP_VAR_NAME = "temperature"
- Variable name in ODM2 controlled vocabulary; "temperature".
- #define CLARIVUE10_TEMP_UNIT_NAME = "degreeCelsius"
- Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
- #define CLARIVUE10_TEMP_DEFAULT_CODE = "ClariVUETempC"
- Default variable short code; "ClariVUETempC".
Error Code
The error code variable from a Campbell ClariVUE10
- Significance of error code values is unknown.
Construct a new CampbellClariVUE10_
CampbellClariVUE10_
Parameters
parentSense
The parent CampbellClariVUE10 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 "ClariVUEError".
- #define CLARIVUE10_ERRORCODE_RESOLUTION = 0
- Decimals places in string representation; the error code has 0.
- #define CLARIVUE10_ERRORCODE_VAR_NUM = 6
- Sensor variable number; error code is stored in sensorValues[2].
- #define CLARIVUE10_ERRORCODE_VAR_NAME = "instrumentStatusCode"
- Variable name in ODM2 controlled vocabulary; "instrumentStatusCode".
- #define CLARIVUE10_ERRORCODE_UNIT_NAME = "dimensionless"
- Variable unit name in ODM2 controlled vocabulary; "dimensionless".
- #define CLARIVUE10_ERRORCODE_DEFAULT_CODE = "ClariVUEError"
- Default variable short code; "ClariVUEError".
Define documentation
#define CLARIVUE10_NUM_VARIABLES = 7
#include <src/sensors/CampbellClariVUE10.h>
Sensor::
#define CLARIVUE10_INC_CALC_VARIABLES = 0
#include <src/sensors/CampbellClariVUE10.h>
Sensor::
#define CLARIVUE10_WARM_UP_TIME_MS = 8000
#include <src/sensors/CampbellClariVUE10.h>
Sensor::
This is longer than the expected 250ms for a SDI-12 sensor, but I couldn't get a response from the sensor faster than that.
#define CLARIVUE10_STABILIZATION_TIME_MS = 0
#include <src/sensors/CampbellClariVUE10.h>
Sensor::
#define CLARIVUE10_MEASUREMENT_TIME_MS = 11000
#include <src/sensors/CampbellClariVUE10.h>
Sensor::
Spec sheet says the measurement time is 9s. When taking a standard measurement I was not getting a result until after about 9335ms.
#define CLARIVUE10_EXTRA_WAKE_TIME_MS = 0
#include <src/sensors/CampbellClariVUE10.h>
Extra wake time required for an SDI-12 sensor between the "break" and the time the command is sent. The ClariVUE requires no extra time.
#define CLARIVUE10_TURBIDITY_RESOLUTION = 1
#include <src/sensors/CampbellClariVUE10.h>
Decimals places in string representation; turbidity should have 1 (resolution is 0.2 FNU).
#define CLARIVUE10_TURBIDITY_VAR_NUM = 0
#include <src/sensors/CampbellClariVUE10.h>
Sensor variable number; turbidity is stored in sensorValues[0].
#define CLARIVUE10_TURBIDITY_VAR_NAME = "turbidity"
#include <src/sensors/CampbellClariVUE10.h>
Variable name in ODM2 controlled vocabulary; "turbidity".
#define CLARIVUE10_TURBIDITY_UNIT_NAME = "formazinNephelometricUnit"
#include <src/sensors/CampbellClariVUE10.h>
Variable unit name in ODM2 controlled vocabulary; "formazinNephelometricUnit" (FNU)
#define CLARIVUE10_TURBIDITY_DEFAULT_CODE = "ClariVUETurbidity"
#include <src/sensors/CampbellClariVUE10.h>
Default variable short code; "ClariVUETurbidity".
#define CLARIVUE10_TEMP_RESOLUTION = 2
#include <src/sensors/CampbellClariVUE10.h>
Decimals places in string representation; temperature should have 2 - resolution is 0.01°C.
#define CLARIVUE10_TEMP_VAR_NUM = 5
#include <src/sensors/CampbellClariVUE10.h>
Sensor variable number; temperature is stored in sensorValues[5].
#define CLARIVUE10_TEMP_VAR_NAME = "temperature"
#include <src/sensors/CampbellClariVUE10.h>
Variable name in ODM2 controlled vocabulary; "temperature".
#define CLARIVUE10_TEMP_UNIT_NAME = "degreeCelsius"
#include <src/sensors/CampbellClariVUE10.h>
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define CLARIVUE10_TEMP_DEFAULT_CODE = "ClariVUETempC"
#include <src/sensors/CampbellClariVUE10.h>
Default variable short code; "ClariVUETempC".
#define CLARIVUE10_ERRORCODE_RESOLUTION = 0
#include <src/sensors/CampbellClariVUE10.h>
Decimals places in string representation; the error code has 0.
#define CLARIVUE10_ERRORCODE_VAR_NUM = 6
#include <src/sensors/CampbellClariVUE10.h>
Sensor variable number; error code is stored in sensorValues[2].
#define CLARIVUE10_ERRORCODE_VAR_NAME = "instrumentStatusCode"
#include <src/sensors/CampbellClariVUE10.h>
Variable name in ODM2 controlled vocabulary; "instrumentStatusCode".
#define CLARIVUE10_ERRORCODE_UNIT_NAME = "dimensionless"
#include <src/sensors/CampbellClariVUE10.h>
Variable unit name in ODM2 controlled vocabulary; "dimensionless".
#define CLARIVUE10_ERRORCODE_DEFAULT_CODE = "ClariVUEError"
#include <src/sensors/CampbellClariVUE10.h>
Default variable short code; "ClariVUEError".