Campbell RainVUE10 topic
Classes for the Campbell RainVUE10 precipitation sensor.
Introduction
The RainVUETM10 is an SDI-12 tipping bucket rain gage in the RainVUE™ family of products. Advanced algorithms and digital processing within the sensor compensate for errors caused by high-intensity rain and provide accurate precipitation and intensity measurements.
The sensor is implemented as a sub-classes of the SDI12Sensors class. It requires a continuous 6 to 18 Vdc power supply. As backup, an internal 240 mAh lithium battery (3V Coin Cell CR2032) provides up to 15 days of continual operation after power loss. It draws < 80 µA when inactive and 1 mA while measuring.
Sensor Datasheet
The specifications and datasheet are available at https:/
Build flags
Sensor Constructor
Construct a new Campbell RainVUE10 object. The pin on the mcu controlling power to the RainVUE10 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.
CampbellRainVUE10::
Parameters
SDI12address
The SDI-12 address of the RainVUE10; 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 RainVUE10 is used in the menu a la carte example.
Classes
- class CampbellRainVUE10
- The Sensor sub-class for the Campbell RainVUE10 precipitation sensor.
- class CampbellRainVUE10_Precipitation
- The Variable sub-class used for the precipitation output from a Campbell RainVUE10 precipitation sensor.
- class CampbellRainVUE10_Tips
- The Variable sub-class used for the tip count output from a Campbell RainVUE10 precipitation sensor.
- class CampbellRainVUE10_RainRateAve
- The Variable sub-class used for the average rainfall rate output from a Campbell RainVUE10 precipitation sensor.
- class CampbellRainVUE10_RainRateMax
- The Variable sub-class used for the maximum rainfall rate output from a Campbell RainVUE10 precipitation sensor.
Sensor Variable Counts
The number of variables that can be returned by RainVUE10
- #define RAINVUE10_NUM_VARIABLES = 5
- Sensor::
_numReturnedValues; the RainVUE10 can report 5 values (although we only keep 4). - #define RAINVUE10_INC_CALC_VARIABLES = 0
- Sensor::
_incCalcValues; The RainVUE calculates averages and other stats on board, but we don't calculate any additional values.
Sensor Timing
The sensor timing for a Campbell RainVUE10
- Readings transferred from the tipping bucket to the logger are from past tips, so there is no need to wait for stability or measuring.
- #define RAINVUE10_WARM_UP_TIME_MS = 100
- Sensor::
_warmUpTime_ms; the RainVUE10 warms up in >100ms. - #define RAINVUE10_STABILIZATION_TIME_MS = 0
- Sensor::
_stabilizationTime_ms; the RainVUE10 is stable as soon as it warms up (0ms stabilization). - #define RAINVUE10_MEASUREMENT_TIME_MS = 100
- Sensor::
_measurementTime_ms; the RainVUE10 takes >100ms to complete a measurement. - #define RAINVUE10_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 RainVUE requires no extra time.
Precipitation Accumulated Depth
The intensity-corrected accumulation variable from a Campbell RainVUE10 For the "-IN" Option (English units)
- Range is 0 to 1000 mm/h (0 to 40 in./h).
- Resolution is 0.254 mm (0.01 in.)
- Accuracy is ±1% at 0 to 500 mm/h intensity (0 to 19.7 in./h intensity) For the "-MM" Option (Metric units)
- Range is 0 to 500 mm/h (0 to 19.7 in./h)
- Resolution is 0.1 mm (0.004 in.)
- Accuracy is ±3% at 0 to 300 mm/h intensity (0 to 11.8 in./h intensity) ±5% at 300 to 500 mm/h intensity (11.8 to 19.7 in./h intensity)
Construct a new CampbellRainVUE10_
CampbellRainVUE10_
Parameters
parentSense
The parent CampbellRainVUE10 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 "RainVUEPrecipitation".
- #define RAINVUE10_PRECIPITATION_RESOLUTION = 2
- Decimals places in string representation; depth should have 2 (resolution is 0.01 inches).
- #define RAINVUE10_PRECIPITATION_VAR_NUM = 0
- Sensor variable number; precipitation is stored in sensorValues[0].
- #define RAINVUE10_PRECIPITATION_VAR_NAME = "precipitation"
- Variable name in ODM2 controlled vocabulary; "precipitation".
- #define RAINVUE10_PRECIPITATION_UNIT_NAME = "inch"
- Variable unit name in ODM2 controlled vocabulary; "inch" (in_i)
- #define RAINVUE10_PRECIPITATION_DEFAULT_CODE = "RainVUEPrecipitation"
- Default variable short code; "RainVUEPrecipitation".
Tip Count
Defines for tip count variable from a tipping bucket counter
- Range and accuracy depend on the tipping bucket used.
Construct a new CampbellRainVUE10_
CampbellRainVUE10_
Parameters
parentSense
The parent CampbellRainVUE10 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 "RainVUETips".
- #define RAINVUE10_TIPS_RESOLUTION = 0
- Decimals places in string representation; the number of tips should have 0 - resolution is 1 tip.
- #define RAINVUE10_TIPS_VAR_NUM = 1
- Sensor variable number; tips is stored in sensorValues[1].
- #define RAINVUE10_TIPS_VAR_NAME = "precipitation"
- Variable name in ODM2 controlled vocabulary; "precipitation".
- #define RAINVUE10_TIPS_UNIT_NAME = "event"
- Variable unit name in ODM2 controlled vocabulary; "event".
- #define RAINVUE10_TIPS_DEFAULT_CODE = "RainVUETips"
- Default variable short code; "RainVUETips".
Rainfall Rate Average
The average rainfall rate variable from a Campbell RainVUE10, defined as average precipitation intensity since last measurement. For the "-IN" Option (English units)
- Range is 0.01 to 1000 mm/h (0.0004 to 39.4 in./h)
- Resolution is 0.254 mm (0.01 in.)
- Accuracy is ±1% For the "-MM" Option (Metric units)
- Range is 0.01 to 500 mm/h (0.0004 to 19.7 in./h)
- Resolution is 0.1 mm (0.004 in.)
- Accuracy is ±3.5% at 0 to 300 mm/h (0 to 11.8 in./h) ±5% at 300 to 500 mm/h (11.8 to 19.7 in./h)
Construct a new CampbellRainVUE10_
CampbellRainVUE10_
Parameters
parentSense
The parent CampbellRainVUE10 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 "RainVUEError".
- #define RAINVUE10_RAINRATEAVE_RESOLUTION = 2
- Decimals places in string representation; the rainfall intensity has 2.
- #define RAINVUE10_RAINRATEAVE_VAR_NUM = 3
- Sensor variable number; average intensity is stored in sensorValues[3].
- #define RAINVUE10_RAINRATEAVE_VAR_NAME = "rainfallRate"
- Variable name in ODM2 controlled vocabulary; "instrumentStatusCode".
- #define RAINVUE10_RAINRATEAVE_UNIT_NAME = "inchPerHour"
- Variable unit name in ODM2 controlled vocabulary; "inchPerHour".
- #define RAINVUE10_RAINRATEAVE_DEFAULT_CODE = "RainVUERateAve"
- Default variable short code; "RainVUERateAve".
Rainfall Rate Maximum
The maximum rainfall rate variable from a Campbell RainVUE10, defined as maximum precipitation intensity since last measurement.
- Range & Accuracy same as for sensor_rainvue_rainratemax
CampbellRainVUE10_
RainRateMax:: CampbellRainVUE10_RainRateMax(CampbellRainVUE10* parentSense, const char* uuid = "", const char* varCode = "RainVUERateMax") explicit Construct a new CampbellRainVUE10_
RainRateMax object. Parameters parentSense The parent CampbellRainVUE10 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 "RainVUERateAve".
- #define RAINVUE10_RAINRATEMAX_RESOLUTION = 2
- Decimals places in string representation; the rainfall intensity has 2.
- #define RAINVUE10_RAINRATEMAX_VAR_NUM = 4
- Sensor variable number; average intensity is stored in sensorValues[4].
- #define RAINVUE10_RAINRATEMAX_VAR_NAME = "rainfallRate"
- Variable name in ODM2 controlled vocabulary; "instrumentStatusCode".
- #define RAINVUE10_RAINRATEMAX_UNIT_NAME = "inchPerHour"
- Variable unit name in ODM2 controlled vocabulary; "inchPerHour".
- #define RAINVUE10_RAINRATEMAX_DEFAULT_CODE = "RainVUERateMax"
- Default variable short code; "RainVUERateAve".
Define documentation
#define RAINVUE10_NUM_VARIABLES = 5
#include <src/sensors/CampbellRainVUE10.h>
Sensor::
#define RAINVUE10_INC_CALC_VARIABLES = 0
#include <src/sensors/CampbellRainVUE10.h>
Sensor::
#define RAINVUE10_WARM_UP_TIME_MS = 100
#include <src/sensors/CampbellRainVUE10.h>
Sensor::
#define RAINVUE10_STABILIZATION_TIME_MS = 0
#include <src/sensors/CampbellRainVUE10.h>
Sensor::
#define RAINVUE10_MEASUREMENT_TIME_MS = 100
#include <src/sensors/CampbellRainVUE10.h>
Sensor::
#define RAINVUE10_EXTRA_WAKE_TIME_MS = 0
#include <src/sensors/CampbellRainVUE10.h>
Extra wake time required for an SDI-12 sensor between the "break" and the time the command is sent. The RainVUE requires no extra time.
#define RAINVUE10_PRECIPITATION_RESOLUTION = 2
#include <src/sensors/CampbellRainVUE10.h>
Decimals places in string representation; depth should have 2 (resolution is 0.01 inches).
#define RAINVUE10_PRECIPITATION_VAR_NUM = 0
#include <src/sensors/CampbellRainVUE10.h>
Sensor variable number; precipitation is stored in sensorValues[0].
#define RAINVUE10_PRECIPITATION_VAR_NAME = "precipitation"
#include <src/sensors/CampbellRainVUE10.h>
Variable name in ODM2 controlled vocabulary; "precipitation".
#define RAINVUE10_PRECIPITATION_UNIT_NAME = "inch"
#include <src/sensors/CampbellRainVUE10.h>
Variable unit name in ODM2 controlled vocabulary; "inch" (in_i)
#define RAINVUE10_PRECIPITATION_DEFAULT_CODE = "RainVUEPrecipitation"
#include <src/sensors/CampbellRainVUE10.h>
Default variable short code; "RainVUEPrecipitation".
#define RAINVUE10_TIPS_RESOLUTION = 0
#include <src/sensors/CampbellRainVUE10.h>
Decimals places in string representation; the number of tips should have 0 - resolution is 1 tip.
#define RAINVUE10_TIPS_VAR_NUM = 1
#include <src/sensors/CampbellRainVUE10.h>
Sensor variable number; tips is stored in sensorValues[1].
#define RAINVUE10_TIPS_VAR_NAME = "precipitation"
#include <src/sensors/CampbellRainVUE10.h>
Variable name in ODM2 controlled vocabulary; "precipitation".
#define RAINVUE10_TIPS_UNIT_NAME = "event"
#include <src/sensors/CampbellRainVUE10.h>
Variable unit name in ODM2 controlled vocabulary; "event".
#define RAINVUE10_TIPS_DEFAULT_CODE = "RainVUETips"
#include <src/sensors/CampbellRainVUE10.h>
Default variable short code; "RainVUETips".
#define RAINVUE10_RAINRATEAVE_RESOLUTION = 2
#include <src/sensors/CampbellRainVUE10.h>
Decimals places in string representation; the rainfall intensity has 2.
#define RAINVUE10_RAINRATEAVE_VAR_NUM = 3
#include <src/sensors/CampbellRainVUE10.h>
Sensor variable number; average intensity is stored in sensorValues[3].
#define RAINVUE10_RAINRATEAVE_VAR_NAME = "rainfallRate"
#include <src/sensors/CampbellRainVUE10.h>
Variable name in ODM2 controlled vocabulary; "instrumentStatusCode".
#define RAINVUE10_RAINRATEAVE_UNIT_NAME = "inchPerHour"
#include <src/sensors/CampbellRainVUE10.h>
Variable unit name in ODM2 controlled vocabulary; "inchPerHour".
#define RAINVUE10_RAINRATEAVE_DEFAULT_CODE = "RainVUERateAve"
#include <src/sensors/CampbellRainVUE10.h>
Default variable short code; "RainVUERateAve".
#define RAINVUE10_RAINRATEMAX_RESOLUTION = 2
#include <src/sensors/CampbellRainVUE10.h>
Decimals places in string representation; the rainfall intensity has 2.
#define RAINVUE10_RAINRATEMAX_VAR_NUM = 4
#include <src/sensors/CampbellRainVUE10.h>
Sensor variable number; average intensity is stored in sensorValues[4].
#define RAINVUE10_RAINRATEMAX_VAR_NAME = "rainfallRate"
#include <src/sensors/CampbellRainVUE10.h>
Variable name in ODM2 controlled vocabulary; "instrumentStatusCode".
#define RAINVUE10_RAINRATEMAX_UNIT_NAME = "inchPerHour"
#include <src/sensors/CampbellRainVUE10.h>
Variable unit name in ODM2 controlled vocabulary; "inchPerHour".
#define RAINVUE10_RAINRATEMAX_DEFAULT_CODE = "RainVUERateMax"
#include <src/sensors/CampbellRainVUE10.h>
Default variable short code; "RainVUERateAve".