hts221 - Driver for HTS221 temperature and humidity sensor

group hts221

ESP-IDF driver for HTS221 temperature and humidity sensor.

Datasheet: http://www.st.com/resource/en/datasheet/hts221.pdf Technical note on interpreting humidity and temperature readings in the HTS221 digital humidity sensor: https://www.st.com/resource/en/technical_note/tn1218-interpreting-humidity-and-temperature-readings-in-the-hts221-digital-humidity-sensor-stmicroelectronics.pdf Copyright (c) 2021 saasaa mail@saasaa.xyz

ISC Licensed as described in the file LICENSE

Defines

HTS221_I2C_ADDRESS

Enums

enum hts221_temperature_avg_t

Number of averaged temperature samples.

Values:

enumerator HTS221_AVGT_2

2 averaged temperature samples

enumerator HTS221_AVGT_4

4 averaged temperature samples

enumerator HTS221_AVGT_8

8 averaged temperature samples

enumerator HTS221_AVGT_1

16 averaged temperature samples

enumerator HTS221_AVGT_32

32 averaged temperature samples

enumerator HTS221_AVGT_64

64 averaged temperature samples

enumerator HTS221_AVGT_128

128 averaged temperature samples

enumerator HTS221_AVGT_256

256 averaged temperature samples

enum hts221_humidity_avg_t

Number of averaged humidity samples.

Values:

enumerator HTS221_AVGH_4

4 averaged humidity samples

enumerator HTS221_AVGH_8

8 averaged humidity samples

enumerator HTS221_AVGH_16

16 averaged humidity samples

enumerator HTS221_AVGH_32

32 averaged humidity samples

enumerator HTS221_AVGH_64

64 averaged humidity samples

enumerator HTS221_AVGH_128

128 averaged humidity samples

enumerator HTS221_AVGH_256

256 averaged humidity samples

enumerator HTS221_AVGH_512

512 averaged humidity samples

enum hts221_data_rate_t

Output data rate.

Values:

enumerator HTS221_ONE_SHOT
enumerator HTS221_1HZ
enumerator HTS221_7HZ
enumerator HTS221_12_5HZ
enum hts221_drdy_level_t

Values:

enumerator HTS221_DRDY_ACTIVE_HIGH
enumerator HTS221_DRDY_ACTIVE_LOW
enum hts221_drdy_mode_t

Values:

enumerator HTS221_DRDY_PUSH_PULL
enumerator HTS221_DRDY_OPEN_DRAIN

Functions

esp_err_t hts221_init_desc(hts221_t *dev, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)

Initialize the HTS221 Device descriptor.

Parameters:
  • dev[out] Device descriptor

  • port – I2C port number

  • sda_gpio – GPIO pin number for SDA

  • scl_gpio – GPIO pin number for SCL

Returns:

ESP_OK on success

esp_err_t hts221_free_desc(hts221_t *dev)

Free device descriptor.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t hts221_init(hts221_t *dev)

Reset device parameters, read calibration data.

Reboot device, reset calibration data

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t hts221_get_power_mode(hts221_t *dev, bool *power_down)

Get power mode.

Parameters:
  • dev – Device descriptor

  • power_down[out] true if device in power down mode

Returns:

ESP_OK on success

esp_err_t hts221_set_power_mode(hts221_t *dev, bool power_down)

Set power mode.

Parameters:
  • dev – Device descriptor

  • power_down – true to set device to power down mode

Returns:

ESP_OK on success

esp_err_t hts221_get_data_rate(hts221_t *dev, hts221_data_rate_t *dr)

Get output data rate.

Parameters:
  • dev – Device descriptor

  • dr[out] Data rate

Returns:

ESP_OK on success

esp_err_t hts221_set_data_rate(hts221_t *dev, hts221_data_rate_t dr)

Set output data rate.

Parameters:
  • dev – Device descriptor

  • dr – Data rate

Returns:

ESP_OK on success

esp_err_t hts221_get_heater(hts221_t *dev, bool *enable)

Get heater state.

Parameters:
  • dev – Device descriptor

  • enable[out] true when heater is enabled

Returns:

ESP_OK on success

esp_err_t hts221_set_heater(hts221_t *dev, bool enable)

Switch heater on/off.

Parameters:
  • dev – Device descriptor

  • enable – true to switch heater on

Returns:

ESP_OK on success

esp_err_t hts221_get_averaging(hts221_t *dev, hts221_temperature_avg_t *t_avg, hts221_humidity_avg_t *rh_avg)

Get average configuration.

Parameters:
  • dev – Device descriptor

  • t_avg[out] Temperature average configuration

  • rh_avg[out] Humidity average configuration

Returns:

ESP_OK on success

esp_err_t hts221_set_averaging(hts221_t *dev, hts221_temperature_avg_t t_avg, hts221_humidity_avg_t rh_avg)

Set average configuration.

Parameters:
  • dev – Device descriptor

  • t_avg – Temperature average configuration

  • rh_avg – Humidity average configuration

Returns:

ESP_OK on success

esp_err_t hts221_get_drdy_config(hts221_t *dev, bool *enable, hts221_drdy_mode_t *mode, hts221_drdy_level_t *active)

Get configuration of DRDY pin.

Parameters:
  • dev – Device descriptor

  • enable[out] true if DRDY pin is enabled

  • mode[out] DRDY pin mode (Push-pull or open drain)

  • active[out] Pin active level

Returns:

ESP_OK on success

esp_err_t hts221_set_drdy_config(hts221_t *dev, bool enable, hts221_drdy_mode_t mode, hts221_drdy_level_t active)

Set configuration of DRDY pin.

Parameters:
  • dev – Device descriptor

  • enable – true if DRDY pin is enabled

  • mode – DRDY pin mode (Push-pull or open drain)

  • active – Pin active level

Returns:

ESP_OK on success

esp_err_t hts221_is_data_ready(hts221_t *dev, bool *ready)

Check the availability of new RH/T data.

ready parameter will be true only if new data for both temperature and humidity is available.

Parameters:
  • dev – Device descriptor

  • ready[out] true if new RH/T data available

Returns:

ESP_OK on success

esp_err_t hts221_start_oneshot(hts221_t *dev)

Start one shot measurement.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t hts221_get_data(hts221_t *dev, float *t, float *rh)

Get temperature and relative humidity.

Parameters:
  • dev – Device descriptor

  • t[out] Temperature, degrees Celsius

  • rh[out] Relative humidity, %

Returns:

ESP_OK on success

esp_err_t hts221_measure(hts221_t *dev, float *t, float *rh)

Measure temperature and relative humidity in one shot mode.

Parameters:
  • dev – Device descriptor

  • t[out] Temperature, degrees Celsius

  • rh[out] Relative humidity, %

Returns:

ESP_OK on success

struct hts221_calibration_param_t
#include <hts221.h>

Struct for storing calibration parameters.

Unique for every HTS221 Sensor.

struct hts221_t
#include <hts221.h>