upm
1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
|
API for the Veris CWLSXXA CO2 Sensor Family. More...
The driver was developed using the CWLSHTA CO2 Gas sensor. The 'T' variant supports a temperature transmitter, and the 'H' variant supports a humidity sensor. All 3 signals are provided by the device as analog 0-5Vdc, 0-10Vdc, or 4-20ma loop current outputs. For devices supporting temperature, the valid temperature range is 10C to 50C. The humidity ranges from 0% to 100% (non-condensing). The CO2 sensor ranges from 0 to 2000 ppm.
This driver was developed using the 5Vdc outputs and the 4-20ma outputs. For voltage outputs, your MCU must be configured for 5V operation. In addition, you must configure the sensor (via it's configuration switches) to output 0-5VDC only. Using any other analog reference voltage will require the appropriate external circuitry (such as a voltage divider) in order to interface safely with your MCU.
In addition, the sensor can be configured for 4-20ma usage, by specifying the correct receiver resistance (in ohms) in the constructor. This sensor was tested with a Cooking Hacks (Libelium) 4-channel 4-20ma Arduino interface shield. For this interface, the receiver resistance was specified as 165.0 ohms.
For devices which do not support temperature, use '-1' as the temperature pin number in the object constructor. If temperature measurement is disabled, getTemperature() will always return 0C/32F.
For devices which do not support humidity, use '-1' as the temperature pin number in the object constructor. If humidity measurement is disabled, getHumidity() will always return 0.
Public Member Functions | |
CWLSXXA (int gPin, int hPin, int tPin, float rResistor=0.0, float aref=CWLSXXA_DEFAULT_AREF) | |
~CWLSXXA () | |
void | update () |
float | getTemperature (bool fahrenheit=false) |
float | getHumidity () |
float | getCO2 () |
Protected Attributes | |
mraa::Aio | m_aioCO2 |
mraa::Aio * | m_aioHum |
mraa::Aio * | m_aioTemp |
CWLSXXA | ( | int | gPin, |
int | hPin, | ||
int | tPin, | ||
float | rResistor = 0.0 , |
||
float | aref = CWLSXXA_DEFAULT_AREF |
||
) |
CWLSXXA object constructor
gPin | Analog pin to use for the CO2 measurement |
hPin | Analog pin to use for the humidity measurement. If your device does not support humidity, use -1 as the value so that humidity will not be queried and an analog pin won't be wasted. |
tPin | Analog pin to use for temperature. If your device does not support temperature, use -1 as the value so that temperature will not be queried and an analog pin won't be wasted. |
rResistor | The receiver resistance in ohms, when using a 4-20ma current loop interface. When specified, this value will be used in computing the current based on the voltage read when scaling the return values. Default is 0.0, for standard scaling based on voltage output rather than current (4-20ma mode). |
aref | The analog reference voltage, default 5.0 |
void update | ( | void | ) |
Read current values from the sensor and update internal stored values. This method must be called prior to querying any values, such as CO2, temperature, or humidity.
float getTemperature | ( | bool | fahrenheit = false | ) |
Get the current temperature. update() must have been called prior to calling this method. If temperature measurement was disabled (by passing -1 as the temperature pin in the constructor) then this function will always return 0C/32F.
fahrenheit | true to return the temperature in degrees fahrenheit, false to return the temperature in degrees celsius. The default is false (degrees Celsius). |
float getHumidity | ( | void | ) |
Get the current relative humidity. update() must have been called prior to calling this method. If humidity measurement was disabled (by passing -1 as the te pin in the constructor) then this function will always return 0.
float getCO2 | ( | ) |
Get the current CO2 concentration in Parts Per Million (PPM). update() must have been called prior to calling this method.