Si7006/13/20/21 temperature and humidity sensors

Driver for the Si7006/13/20/21 temperature and humidity sensor. More...

Detailed Description

Driver for the Si7006/13/20/21 temperature and humidity sensor.

Files

file  si70xx.h
 Interface definition of the Si70xx driver.
 
file  si70xx_internals.h
 Internal definitions for Si7006/13/20/21.
 

Data Structures

struct  si70xx_params_t
 Device initialization parameters. More...
 
struct  si70xx_t
 Si70xx device descriptor. More...
 

Enumerations

enum  { SI70XX_OK, SI70XX_ERR_NOI2C, SI70XX_ERR_NODEV, SI70XX_ERR_I2C }
 Driver return codes. More...
 

Functions

int si70xx_init (si70xx_t *dev, const si70xx_params_t *params)
 Initialize and reset the sensor. More...
 
uint16_t si70xx_get_relative_humidity (const si70xx_t *dev)
 Read the relative humidity from the sensor. More...
 
int16_t si70xx_get_temperature (const si70xx_t *dev)
 Read the current temperature from the sensor. More...
 
void si70xx_get_both (const si70xx_t *dev, uint16_t *humidity, int16_t *temperature)
 Read the relative humidity and temperature from the sensor. More...
 
uint64_t si70xx_get_serial (const si70xx_t *dev)
 Read the sensor serial number. More...
 
uint8_t si70xx_get_id (const si70xx_t *dev)
 Read the sensor id, to identifier the sensor variant. More...
 
uint8_t si70xx_get_revision (const si70xx_t *dev)
 Read the firmware revision of the sensor. More...
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Driver return codes.

Enumerator
SI70XX_OK 

All OK.

SI70XX_ERR_NOI2C 

An error occurred when initializing I2C bus.

SI70XX_ERR_NODEV 

No valid device found on I2C bus.

SI70XX_ERR_I2C 

An error occured when reading/writing on I2C bus.

Definition at line 33 of file si70xx.h.

Function Documentation

◆ si70xx_get_both()

void si70xx_get_both ( const si70xx_t dev,
uint16_t *  humidity,
int16_t *  temperature 
)

Read the relative humidity and temperature from the sensor.

Uses clock stretching.

Parameters
[in]devdevice descriptor
[out]humiditypointer to relative humidity (in centi-percent)
[out]temperaturepointer to temperature (in centi-degrees Celsius)

◆ si70xx_get_id()

uint8_t si70xx_get_id ( const si70xx_t dev)

Read the sensor id, to identifier the sensor variant.

Parameters
[in]devdevice descriptor
Returns
device id

◆ si70xx_get_relative_humidity()

uint16_t si70xx_get_relative_humidity ( const si70xx_t dev)

Read the relative humidity from the sensor.

Uses clock streching.

Parameters
[in]devdevice descriptor
Returns
relative humidity in centi-percent (times 100)

◆ si70xx_get_revision()

uint8_t si70xx_get_revision ( const si70xx_t dev)

Read the firmware revision of the sensor.

Parameters
[in]devdevice descriptor
Returns
sensor firmware revision number

◆ si70xx_get_serial()

uint64_t si70xx_get_serial ( const si70xx_t dev)

Read the sensor serial number.

Parameters
[in]devdevice descriptor
Returns
sensor serial number

◆ si70xx_get_temperature()

int16_t si70xx_get_temperature ( const si70xx_t dev)

Read the current temperature from the sensor.

Uses clock streching.

Parameters
[in]devdevice descriptor
Returns
current temperature in centi-degrees Celsius (times 100)

◆ si70xx_init()

int si70xx_init ( si70xx_t dev,
const si70xx_params_t params 
)

Initialize and reset the sensor.

Parameters
[in]devdevice descriptor
[in]paramsinitialization parameters
Returns
SI70XX_OK on successful initialization
-SI70XX_ERR_NOI2C on I2C initialization error
-SI70XX_ERR_NODEV on device test error
-SI70XX_ERR_I2C on I2C bus error