RainCounterI2C.h file
Contains the RainCounterI2C sensor subclass and the variable subclasses RainCounterI2C_
- Reference
-
Detailed Descriptions
These are for an external tip counter, used to measure rainfall via a tipping bucket rain gauge
The tip counter works on an Adafruit Trinket. Documentation for it can be found at: https:/
This depends on Testato's SoftwareWire library if software I2C is needed.
Classes
- class RainCounterI2C
- The Sensor sub-class for the Arduino-based external tipping bucket counter.
- class RainCounterI2C_Tips
- The Variable sub-class used for the total tip count output from an Adafruit Trinket based I2C tipping bucket counter.
- class RainCounterI2C_Depth
- The Variable sub-class used for the depth of rain output from an Adafruit Trinket based I2C tipping bucket counter.
Defines
- #define BUCKET_NUM_VARIABLES = 2
- Sensor::
_numReturnedValues; the tipping bucket counter can report 2 values. - #define BUCKET_INC_CALC_VARIABLES = 1
- Sensor::
_incCalcValues; we calculate rain depth from the number of tips, assuming either English or metric calibration.
Sensor Timing
The sensor timing for a Trinket-based tipping bucket counter
- 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 BUCKET_WARM_UP_TIME_MS = 0
- Sensor::
_warmUpTime_ms; the tipping bucket counter warms up in 0ms. - #define BUCKET_STABILIZATION_TIME_MS = 0
- Sensor::
_stabilizationTime_ms; the tipping bucket counter is stable after 0ms. - #define BUCKET_MEASUREMENT_TIME_MS = 0
- Sensor::
_measurementTime_ms; the tipping bucket counter takes 0ms to complete a measurement.
Rain Depth
The rain depth variable from a Trinket-based tipping bucket counter
- Range and accuracy depend on the tipping bucket used
Construct a new RainCounterI2C_
RainCounterI2C_Depth(RainCounterI2C* parentSense,
const char* uuid = "",
const char* varCode = BUCKET_
Parameters
parentSense
The parent RainCounterI2C 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 "RainCounterI2CVol".
- #define BUCKET_RAIN_RESOLUTION = 2
- Decimals places in string representation; rain depth should have 2.
- #define BUCKET_RAIN_VAR_NUM = 0
- Sensor variable number; rain depth is stored in sensorValues[0].
- #define BUCKET_RAIN_VAR_NAME = "precipitation"
- Variable name in ODM2 controlled vocabulary; "precipitation".
- #define BUCKET_RAIN_UNIT_NAME = "millimeter"
- Variable unit name in ODM2 controlled vocabulary; "millimeter".
- #define BUCKET_RAIN_DEFAULT_CODE = "RainCounterI2CVol"
- Default variable short code; "RainCounterI2CVol".
Tip Count
Defines for tip count variable from a Trinket-based tipping bucket counter
- Range and accuracy depend on the tipping bucket used.
Construct a new RainCounterI2C_
RainCounterI2C_Tips(RainCounterI2C* parentSense,
const char* uuid = "",
const char* varCode = BUCKET_
Parameters
parentSense
The parent RainCounterI2C 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 "RainCounterI2CTips".
- #define BUCKET_TIPS_RESOLUTION = 0
- Decimals places in string representation; the number of tips should have 0 - resolution is 1 tip.
- #define BUCKET_TIPS_VAR_NUM = 1
- Sensor variable number; the number of tips is stored in sensorValues[1].
- #define BUCKET_TIPS_VAR_NAME = "precipitation"
- Variable name in ODM2 controlled vocabulary; "precipitation".
- #define BUCKET_TIPS_UNIT_NAME = "event"
- Variable unit name in ODM2 controlled vocabulary; "event".
- #define BUCKET_TIPS_DEFAULT_CODE = "RainCounterI2CTips"
- Default variable short code; "RainCounterI2CTips".