ModularSensors > Files > src / sensors / YosemitechY510.h

YosemitechY510.h file

Contains the YosemitechY510 sensor subclass and the variable subclasses YosemitechY510_Turbidity and YosemitechY510_Temp.

These are for Yosemitech Y510 Turbidity Sensor.

This depends on the YosemitechParent super class.

Documentation for the Modbus Protocol commands and responses can be found within the documentation in the YosemitechModbus library at: https://github.com/EnviroDIY/YosemitechModbus

Classes

class YosemitechY510
The Sensor sub-class for the Yosemitech Y510-B optical turbidity sensor.
class YosemitechY510_Turbidity
The Variable sub-class used for the turbidity output from a Yosemitech Y510-B optical turbidity sensor.
class YosemitechY510_Temp
The Variable sub-class used for the temperature output from a Yosemitech Y510-B optical turbidity sensor.

Defines

#define Y510_NUM_VARIABLES = 2
Sensor::_numReturnedValues; the Y510 can report 2 values.
#define Y510_INC_CALC_VARIABLES = 0
Sensor::_incCalcValues; we don't calculate any additional values.

Sensor Timing

The sensor timing for a Yosemitch Y510

#define Y510_WARM_UP_TIME_MS = 500
Sensor::_warmUpTime_ms; time before sensor responds after power - 500ms.
#define Y510_STABILIZATION_TIME_MS = 22000
Sensor::_stabilizationTime_ms; time between "StartMeasurement" command and stable reading - 22sec (22000ms).
#define Y510_MEASUREMENT_TIME_MS = 1700
Sensor::_measurementTime_ms; the Y510 takes ~1700ms to complete a measurement.

Turbidity

The turbidity variable from a Yosemitch Y510

  • Range is 0.1 to 1000 NTU
  • Accuracy is ± 5 % or 0.3 NTU

YosemitechY510_Turbidity(YosemitechY510* parentSense, const char* uuid = "", const char* varCode = Y510_TURB_DEFAULT_CODE) explicit

Construct a new YosemitechY510_Turbidity object.

Parameters
parentSense The parent YosemitechY510 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 "Y510Turbidity".

#define Y510_TURB_RESOLUTION = 2
Decimals places in string representation; turbidity should have 2 - resolution is 0.01 NTU.
#define Y510_TURB_VAR_NUM = 0
Sensor variable number; turbidity is stored in sensorValues[0].
#define Y510_TURB_VAR_NAME = "turbidity"
Variable name in ODM2 controlled vocabulary; "turbidity".
#define Y510_TURB_UNIT_NAME = "nephelometricTurbidityUnit"
Variable unit name in ODM2 controlled vocabulary; "nephelometricTurbidityUnit" (NTU)
#define Y510_TURB_DEFAULT_CODE = "Y510Turbidity"
Default variable short code; "Y510Turbidity".

Temperature

The temperature variable from a Yosemitch Y510

  • Range is 0°C to + 50°C
  • Accuracy is ± 0.2°C

YosemitechY510_Temp(YosemitechY510* parentSense, const char* uuid = "", const char* varCode = Y510_TEMP_DEFAULT_CODE) explicit

Construct a new YosemitechY510_Temp object.

Parameters
parentSense The parent YosemitechY510 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 "Y510Temp".

#define Y510_TEMP_RESOLUTION = 1
Decimals places in string representation; temperature should have 1 - resolution is 0.1°C.
#define Y510_TEMP_VAR_NUM = 1
Sensor variable number; temperature is stored in sensorValues[1].
#define Y510_TEMP_VAR_NAME = "temperature"
Variable name in ODM2 controlled vocabulary; "temperature".
#define Y510_TEMP_UNIT_NAME = "degreeCelsius"
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define Y510_TEMP_DEFAULT_CODE = "Y510Temp"
Default variable short code; "Y510Temp".