Firmware SDK
twr_sgp30

Driver for SGP30 VOC gas sensor. More...

Typedefs

typedef struct twr_sgp30_t twr_sgp30_t
 SGP30 instance.
 

Enumerations

enum  twr_sgp30_event_t {
  TWR_SGP30_EVENT_ERROR = 0,
  TWR_SGP30_EVENT_UPDATE = 1
}
 Callback events. More...
 

Functions

void twr_sgp30_init (twr_sgp30_t *self, twr_i2c_channel_t i2c_channel, uint8_t i2c_address)
 Initialize SGP30. More...
 
void twr_sgp30_deinit (twr_sgp30_t *self)
 Deinitialize SGP30. More...
 
void twr_sgp30_set_event_handler (twr_sgp30_t *self, void(*event_handler)(twr_sgp30_t *, twr_sgp30_event_t, void *), void *event_param)
 Set callback function. More...
 
void twr_sgp30_set_update_interval (twr_sgp30_t *self, twr_tick_t interval)
 Set measurement interval. More...
 
bool twr_sgp30_measure (twr_sgp30_t *self)
 Start measurement manually. More...
 
bool twr_sgp30_get_co2eq_ppm (twr_sgp30_t *self, uint16_t *ppm)
 Get measured CO2eq in ppm (parts per million) More...
 
bool twr_sgp30_get_tvoc_ppb (twr_sgp30_t *self, uint16_t *ppb)
 Get measured TVOC in ppb (parts per billion) More...
 
float twr_sgp30_set_compensation (twr_sgp30_t *self, float *t_celsius, float *rh_percentage)
 Set sensor compensation (absolute humidity is calculated from temperature and relative humidity) More...
 

Detailed Description

Driver for SGP30 VOC gas sensor.

Enumeration Type Documentation

◆ twr_sgp30_event_t

Callback events.

Enumerator
TWR_SGP30_EVENT_ERROR 

Error event.

TWR_SGP30_EVENT_UPDATE 

Update event.

Definition at line 13 of file twr_sgp30.h.

Function Documentation

◆ twr_sgp30_deinit()

void twr_sgp30_deinit ( twr_sgp30_t self)

Deinitialize SGP30.

Parameters
[in]selfInstance

Definition at line 32 of file twr_sgp30.c.

Here is the call graph for this function:

◆ twr_sgp30_get_co2eq_ppm()

bool twr_sgp30_get_co2eq_ppm ( twr_sgp30_t self,
uint16_t *  ppm 
)

Get measured CO2eq in ppm (parts per million)

Parameters
[in]selfInstance
[out]ppmPointer to variable where result will be stored
Returns
true When value is valid
false When value is invalid

Definition at line 80 of file twr_sgp30.c.

Referenced by twr_tag_voc_get_co2eq_ppm().

Here is the caller graph for this function:

◆ twr_sgp30_get_tvoc_ppb()

bool twr_sgp30_get_tvoc_ppb ( twr_sgp30_t self,
uint16_t *  ppb 
)

Get measured TVOC in ppb (parts per billion)

Parameters
[in]selfInstance
[out]ppbPointer to variable where result will be stored
Returns
true When value is valid
false When value is invalid

Definition at line 92 of file twr_sgp30.c.

Referenced by twr_tag_voc_get_tvoc_ppb().

Here is the caller graph for this function:

◆ twr_sgp30_init()

void twr_sgp30_init ( twr_sgp30_t self,
twr_i2c_channel_t  i2c_channel,
uint8_t  i2c_address 
)

Initialize SGP30.

Parameters
[in]selfInstance
[in]i2c_channelI2C channel
[in]i2c_addressI2C device address

Definition at line 17 of file twr_sgp30.c.

Referenced by twr_tag_voc_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ twr_sgp30_measure()

bool twr_sgp30_measure ( twr_sgp30_t self)

Start measurement manually.

Parameters
[in]selfInstance
Returns
true On success
false When other measurement is in progress

Definition at line 61 of file twr_sgp30.c.

Referenced by twr_sgp30_set_compensation(), twr_sgp30_set_update_interval(), and twr_tag_voc_measure().

Here is the caller graph for this function:

◆ twr_sgp30_set_compensation()

float twr_sgp30_set_compensation ( twr_sgp30_t self,
float *  t_celsius,
float *  rh_percentage 
)

Set sensor compensation (absolute humidity is calculated from temperature and relative humidity)

Parameters
[in]selfInstance
[in]t_celsiusPointer to variable holding temperature in degrees of celsius (must be NULL if not available)
[in]rh_percentagePointer to variable holding relative humidity in percentage (must be NULL if not available)
Returns
Absolute humidity in grams per cubic meter

Definition at line 104 of file twr_sgp30.c.

Referenced by twr_tag_voc_set_compensation().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ twr_sgp30_set_event_handler()

void twr_sgp30_set_event_handler ( twr_sgp30_t self,
void(*)(twr_sgp30_t *, twr_sgp30_event_t, void *)  event_handler,
void *  event_param 
)

Set callback function.

Parameters
[in]selfInstance
[in]event_handlerFunction address
[in]event_paramOptional event parameter (can be NULL)

Definition at line 39 of file twr_sgp30.c.

Referenced by twr_tag_voc_set_event_handler().

Here is the caller graph for this function:

◆ twr_sgp30_set_update_interval()

void twr_sgp30_set_update_interval ( twr_sgp30_t self,
twr_tick_t  interval 
)

Set measurement interval.

Parameters
[in]selfInstance
[in]intervalMeasurement interval

Definition at line 45 of file twr_sgp30.c.

Referenced by twr_tag_voc_set_update_interval().

Here is the call graph for this function:
Here is the caller graph for this function: