si7021 - Driver for Si7013/Si7020/Si7021/HTU2xD/SHT2x and compatible

group si7021

ESP-IDF driver for Si7013/Si7020/Si7021/HTU2xD/SHT2x and compatible temperature and humidity sensors.

Copyright (c) 2019 Ruslan V. Uss unclerus@gmail.com

BSD Licensed as described in the file LICENSE

Defines

SI7021_I2C_ADDR

I2C address.

SI7021_MAX_HEATER_CURRENT

Maximum current of the heater for Si70xx.

Enums

enum si7021_device_id_t

Device model for Si70xx.

Values:

enumerator SI_MODEL_SI7013

Si7013.

enumerator SI_MODEL_SI7020

Si7020.

enumerator SI_MODEL_SI7021

Si7021.

enumerator SI_MODEL_SAMPLE

Engineering sample.

enumerator SI_MODEL_UNKNOWN

Unknown model.

enum si7021_resolution_t

Measurement resolution.

Values:

enumerator SI7021_RES_RH12_T14

Relative humidity: 12 bits, temperature: 14 bits.

enumerator SI7021_RES_RH08_T12

Relative humidity: 8 bits, temperature: 12 bits.

enumerator SI7021_RES_RH10_T13

Relative humidity: 10 bits, temperature: 13 bits.

enumerator SI7021_RES_RH11_T11

Relative humidity: 11 bits, temperature: 11 bits.

Functions

esp_err_t si7021_init_desc(i2c_dev_t *dev, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)

Initialize device descriptor.

Parameters:
  • dev – Device descriptor

  • port – I2C port

  • sda_gpio – SDA GPIO pin

  • scl_gpio – SCL GPIO pin

Returns:

ESP_OK on success

esp_err_t si7021_free_desc(i2c_dev_t *dev)

Free device descriptor.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t si7021_reset(i2c_dev_t *dev)

Reset device.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t si7021_get_heater(i2c_dev_t *dev, bool *on)

Get heater state.

This function is supported by:

  • SI7013

  • SI7020

  • SI7021

  • SHT2x

Parameters:
  • dev – Device descriptor

  • on[out] true if heater enabled

Returns:

ESP_OK on success

esp_err_t si7021_set_heater(i2c_dev_t *dev, bool on)

Switch heater on/off.

This function is supported by:

  • SI7013

  • SI7020

  • SI7021

  • SHT2x

Parameters:
  • dev – Device descriptor

  • on – if true, heater will be enabled

Returns:

ESP_OK on success

esp_err_t si7021_get_heater_current(i2c_dev_t *dev, uint8_t *level)

Get heater current.

This function is supported by:

  • SI7013

  • SI7020

  • SI7021

Parameters:
  • dev – Device descriptor

  • level[out] Heater current, see datasheet

Returns:

ESP_OK on success

esp_err_t si7021_set_heater_current(i2c_dev_t *dev, uint8_t level)

Set heater current.

This function is supported by:

  • SI7013

  • SI7020

  • SI7021

Parameters:
  • dev – Device descriptor

  • level – Heater current, see datasheet

Returns:

ESP_OK on success

esp_err_t si7021_get_resolution(i2c_dev_t *dev, si7021_resolution_t *r)

Get measurement resolution.

Parameters:
  • dev – Device descriptor

  • r[out] Resolution

Returns:

ESP_OK on success

esp_err_t si7021_set_resolution(i2c_dev_t *dev, si7021_resolution_t r)

Set measurement resolution.

Parameters:
  • dev – Device descriptor

  • r – Resolution

Returns:

ESP_OK on success

esp_err_t si7021_measure_temperature(i2c_dev_t *dev, float *t)

Measure temperature.

Parameters:
  • dev – Device descriptor

  • t[out] Temperature, deg. Celsius

Returns:

ESP_OK on success

esp_err_t si7021_measure_humidity(i2c_dev_t *dev, float *rh)

Measure relative humidity.

Parameters:
  • dev – Device descriptor

  • rh[out] Relative humidity, %

Returns:

ESP_OK on success

esp_err_t si7021_get_serial(i2c_dev_t *dev, uint64_t *serial, bool sht2x_mode)

Get serial number of device.

This function is supported by:

  • SI7013

  • SI7020

  • SI7021

  • SHT2x

Parameters:
  • dev – Device descriptor

  • serial[out] Serial no.

  • sht2x_modetrue for SHT2x devices

Returns:

ESP_OK on success

esp_err_t si7021_get_device_id(i2c_dev_t *dev, si7021_device_id_t *id)

Get device model.

This function is supported by:

  • SI7013

  • SI7020

  • SI7021

Parameters:
  • dev – Device descriptor

  • id[out] Device model

Returns:

ESP_OK on success

esp_err_t si7021_get_device_revision(i2c_dev_t *dev, uint8_t *rev)

Get device revision.

This function is supported by:

  • SI7013

  • SI7020

  • SI7021

Parameters:
  • dev – Device descriptor

  • rev[out] Device revision

Returns:

ESP_OK on success