upm  1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
Public Member Functions | Protected Attributes

API for the Veris CWLSXXA CO2 Sensor Family. More...

Detailed Description

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.

cout << "Initializing..." << endl;
// Instantiate an CWLSXXA instance, using A0 for CO2, A1 for
// humidity and A2 for temperature
upm::CWLSXXA sensor(0, 1, 2);
// update and print available values every second
while (shouldRun) {
// update our values from the sensor
sensor.update();
// we show both C and F for temperature
cout << "Temperature: " << sensor.getTemperature() << " C / " << sensor.getTemperature(true)
<< " F" << endl;
cout << "Humidity: " << sensor.getHumidity() << " %" << endl;
cout << "CO2: " << sensor.getCO2() << " ppm" << endl;
cout << endl;
upm_delay(1);
}
cout << "Exiting..." << endl;

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
 

Constructor & Destructor Documentation

CWLSXXA ( int  gPin,
int  hPin,
int  tPin,
float  rResistor = 0.0,
float  aref = CWLSXXA_DEFAULT_AREF 
)

CWLSXXA object constructor

Parameters
gPinAnalog pin to use for the CO2 measurement
hPinAnalog 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.
tPinAnalog 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.
rResistorThe 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).
arefThe analog reference voltage, default 5.0
~CWLSXXA ( )

CWLSXXA object destructor

Member Function Documentation

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.

Parameters
fahrenheittrue to return the temperature in degrees fahrenheit, false to return the temperature in degrees celsius. The default is false (degrees Celsius).
Returns
The last temperature reading in Celsius or Fahrenheit
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.

Returns
The last humidity reading
float getCO2 ( )

Get the current CO2 concentration in Parts Per Million (PPM). update() must have been called prior to calling this method.

Returns
The last CO2 reading

The documentation for this class was generated from the following files: