Adafruit SCD30 Library
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
Adafruit_SCD30 Class Reference

Class that stores state and functions for interacting with the SCD30 CO2, Temperature, and Humidity sensor. More...

#include <Adafruit_SCD30.h>

Public Member Functions

 Adafruit_SCD30 ()
 Construct a new Adafruit_SCD30::Adafruit_SCD30 object.
 
 ~Adafruit_SCD30 ()
 Destroy the Adafruit_SCD30::Adafruit_SCD30 object.
 
bool begin (uint8_t i2c_addr=SCD30_I2CADDR_DEFAULT, TwoWire *wire=&Wire, int32_t sensor_id=0)
 Sets up the hardware and initializes I2C. More...
 
void reset (void)
 Performs a software reset initializing registers to their power on state.
 
bool dataReady (void)
 Ask the sensor if new data is ready to read. More...
 
bool getEvent (sensors_event_t *humidity, sensors_event_t *temp)
 Gets the humidity sensor and temperature values as sensor events. More...
 
bool read (void)
 Updates the measurement data for all sensors simultaneously. More...
 
uint16_t getMeasurementInterval (void)
 Read the current amount of time between measurements. More...
 
bool setMeasurementInterval (uint16_t interval)
 Set the amount of time between measurements. More...
 
bool selfCalibrationEnabled (void)
 Gets the enable status of the SCD30's self calibration routine. More...
 
bool selfCalibrationEnabled (bool)
 Enable or disable the SCD30's self calibration routine. More...
 
bool startContinuousMeasurement (uint16_t pressure=0)
 Tell the SCD30 to start taking measurements continuously. More...
 
uint16_t getAmbientPressureOffset (void)
 Read the current ambient pressure offset. More...
 
bool setAltitudeOffset (uint16_t altitude)
 Set the altitude offset that the SCD30 should correct for. More...
 
uint16_t getAltitudeOffset (void)
 Get the current altitude offset. More...
 
bool setTemperatureOffset (uint16_t temp_offset)
 Set a temperature offset. More...
 
uint16_t getTemperatureOffset (void)
 Get the current temperature offset in hundreths of a degree C. More...
 
bool forceRecalibrationWithReference (uint16_t reference)
 Force the SCD30 to recalibrate with a given reference value. More...
 
uint16_t getForcedCalibrationReference (void)
 Get the current forced recalibration reference value. More...
 
Adafruit_Sensor * getTemperatureSensor (void)
 Gets an Adafruit Unified Sensor object for the temp sensor component. More...
 
Adafruit_Sensor * getHumiditySensor (void)
 Gets an Adafruit Unified Sensor object for the presure sensor component. More...
 

Public Attributes

float CO2
 The most recent CO2 reading.
 
float temperature
 The most recent temperature reading.
 
float relative_humidity
 The most recent relative_humidity reading.
 

Protected Member Functions

virtual bool _init (int32_t sensor_id)
 Initializer for post i2c init. More...
 

Protected Attributes

uint16_t _sensorid_humidity
 ID number for humidity.
 
uint16_t _sensorid_temp
 ID number for temperature.
 
Adafruit_I2CDevice * i2c_dev = NULL
 Pointer to I2C bus interface.
 
Adafruit_SCD30_Temptemp_sensor = NULL
 Temp sensor data object.
 
Adafruit_SCD30_Humidityhumidity_sensor
 Humidity sensor data object. More...
 

Friends

class Adafruit_SCD30_Temp
 
class Adafruit_SCD30_Humidity
 

Detailed Description

Class that stores state and functions for interacting with the SCD30 CO2, Temperature, and Humidity sensor.

Member Function Documentation

◆ begin()

bool Adafruit_SCD30::begin ( uint8_t  i2c_address = SCD30_I2CADDR_DEFAULT,
TwoWire *  wire = &Wire,
int32_t  sensor_id = 0 
)

Sets up the hardware and initializes I2C.

Parameters
i2c_addressThe I2C address to be used.
wireThe Wire object to be used for I2C connections.
sensor_idThe unique ID to differentiate the sensors from others
Returns
True if initialization was successful, otherwise false.

◆ dataReady()

bool Adafruit_SCD30::dataReady ( void  )

Ask the sensor if new data is ready to read.

Returns
true: data is available false: no new data available

◆ getEvent()

bool Adafruit_SCD30::getEvent ( sensors_event_t *  humidity,
sensors_event_t *  temp 
)

Gets the humidity sensor and temperature values as sensor events.

Parameters
humiditySensor event object that will be populated with humidity data
tempSensor event object that will be populated with temp data
Returns
True

◆ read()

bool Adafruit_SCD30::read ( void  )

Updates the measurement data for all sensors simultaneously.

Returns
true: success false: failure

◆ getMeasurementInterval()

uint16_t Adafruit_SCD30::getMeasurementInterval ( void  )

Read the current amount of time between measurements.

Returns
uint16_t The current measurement interval in seconds.

◆ setMeasurementInterval()

bool Adafruit_SCD30::setMeasurementInterval ( uint16_t  interval)

Set the amount of time between measurements.

Parameters
intervalThe time between measurements in seconds. Must be from 2-1800 seconds. The default value set on sensor initialization is 2 seconds.
Returns
true: success false: failure

◆ selfCalibrationEnabled() [1/2]

bool Adafruit_SCD30::selfCalibrationEnabled ( void  )

Gets the enable status of the SCD30's self calibration routine.

Returns
true: enabled false: disabled

◆ selfCalibrationEnabled() [2/2]

bool Adafruit_SCD30::selfCalibrationEnabled ( bool  enabled)

Enable or disable the SCD30's self calibration routine.

Parameters
enabledtrue: enable false: disable
Returns
true: success false: failure

◆ startContinuousMeasurement()

bool Adafruit_SCD30::startContinuousMeasurement ( uint16_t  pressure = 0)

Tell the SCD30 to start taking measurements continuously.

Parameters
pressurean optional pressure offset to correct for in millibar (mBar)
Returns
true: succes false: failure

◆ getAmbientPressureOffset()

uint16_t Adafruit_SCD30::getAmbientPressureOffset ( void  )

Read the current ambient pressure offset.

Returns
uint16_t current ambient pressure offset in millibar (mBar)

◆ setAltitudeOffset()

bool Adafruit_SCD30::setAltitudeOffset ( uint16_t  altitude)

Set the altitude offset that the SCD30 should correct for.

Note: This value is saved to the SCD30's internal storage and is reloaded on sensor power up.

Parameters
altitudeThe altitude offset in meters above sea level.
Returns
true: success false: failure

◆ getAltitudeOffset()

uint16_t Adafruit_SCD30::getAltitudeOffset ( void  )

Get the current altitude offset.

Returns
uint16_t The current altitude offset value in meters above sea level.

◆ setTemperatureOffset()

bool Adafruit_SCD30::setTemperatureOffset ( uint16_t  temp_offset)

Set a temperature offset.

Parameters
temp_offsetThe positive temperature offset to set in hundreths of a degree C ie:

1015 => 10.15 degrees C 31337 => 313.37 degrees C

Note: This value is saved to the SCD30's internal storage and is reloaded on sensor power up.

Returns
true: success false: failure

◆ getTemperatureOffset()

uint16_t Adafruit_SCD30::getTemperatureOffset ( void  )

Get the current temperature offset in hundreths of a degree C.

Returns
uint16_t the current temperature offset

◆ forceRecalibrationWithReference()

bool Adafruit_SCD30::forceRecalibrationWithReference ( uint16_t  reference)

Force the SCD30 to recalibrate with a given reference value.

Parameters
referenceThe calibration reference value in ppm from 400-2000 ppm.

Note: This value is saved to the SCD30's internal storage and is reloaded on sensor power up.

Setting a reference value and forcing recalibration will override any previous automatic self-calibration.

Returns
true: success false: failure

◆ getForcedCalibrationReference()

uint16_t Adafruit_SCD30::getForcedCalibrationReference ( void  )

Get the current forced recalibration reference value.

Returns
uint16_t The current reference value in ppm

◆ getTemperatureSensor()

Adafruit_Sensor * Adafruit_SCD30::getTemperatureSensor ( void  )

Gets an Adafruit Unified Sensor object for the temp sensor component.

Returns
Adafruit_Sensor pointer to temperature sensor

◆ getHumiditySensor()

Adafruit_Sensor * Adafruit_SCD30::getHumiditySensor ( void  )

Gets an Adafruit Unified Sensor object for the presure sensor component.

Returns
Adafruit_Sensor pointer to humidity sensor

◆ _init()

bool Adafruit_SCD30::_init ( int32_t  sensor_id)
protectedvirtual

Initializer for post i2c init.

Parameters
sensor_idOptional unique ID for the sensor set
Returns
True if chip identified and initialized

Friends And Related Function Documentation

◆ Adafruit_SCD30_Temp

friend class Adafruit_SCD30_Temp
friend

Gives access to private members to Temp data object

◆ Adafruit_SCD30_Humidity

friend class Adafruit_SCD30_Humidity
friend

Gives access to private members to Humidity data object

Member Data Documentation

◆ humidity_sensor

Adafruit_SCD30_Humidity* Adafruit_SCD30::humidity_sensor
protected
Initial value:
=
NULL

Humidity sensor data object.


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