hdc1000 - Driver for HDC1000 temperature and humidity sensor

group hdc1000

ESP-IDF driver for HDC1000 temperature and humidity sensor.

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

BSD Licensed as described in the file LICENSE

Defines

HDC1000_I2C_ADDRESS_0

I2C address when ADR1 = 0, ADR0 = 0.

HDC1000_I2C_ADDRESS_1

I2C address when ADR1 = 0, ADR0 = 1.

HDC1000_I2C_ADDRESS_2

I2C address when ADR1 = 1, ADR0 = 0.

HDC1000_I2C_ADDRESS_3

I2C address when ADR1 = 1, ADR0 = 1.

Enums

enum hdc1000_temperature_resolution_t

Temperature resolution.

Values:

enumerator HDC1000_T_RES_14

14 bits, default

enumerator HDC1000_T_RES_11

11 bits

enum hdc1000_humidity_resolution_t

Humidity resolution.

Values:

enumerator HDC1000_H_RES_14

14 bits, default

enumerator HDC1000_H_RES_11

11 bits

enumerator HDC1000_H_RES_8

8 bits

enum hdc1000_measurement_mode_t

Measurement mode.

Values:

enumerator HDC1000_MEASURE_TEMPERATURE

Temperature only.

enumerator HDC1000_MEASURE_HUMIDITY

Humidity only.

enumerator HDC1000_MEASURE_BOTH

Both temperature and humidity, default.

Functions

esp_err_t hdc1000_init_desc(hdc1000_t *dev, uint8_t addr, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)

Initialize device descriptor.

Parameters:
  • dev – Device descriptor

  • addr – Device I2C address

  • port – I2C port

  • sda_gpio – SDA GPIO

  • scl_gpio – SCL GPIO

Returns:

ESP_OK on success

esp_err_t hdc1000_free_desc(hdc1000_t *dev)

Free device descriptor.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t hdc1000_init(hdc1000_t *dev)

Init device.

Soft-reset device, set default measurement mode and resolutions

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t hdc1000_get_serial(hdc1000_t *dev, uint64_t *serial)

Read serial number of device.

Parameters:
  • dev – Device descriptor

  • serial[out] Serial number

Returns:

ESP_OK on success

esp_err_t hdc1000_get_manufacturer_id(hdc1000_t *dev, uint16_t *id)

Read manufacturer ID of device.

Parameters:
  • dev – Device descriptor

  • id[out] Manufacturer ID

Returns:

ESP_OK on success

esp_err_t hdc1000_get_device_id(hdc1000_t *dev, uint16_t *id)

Read device ID.

Parameters:
  • dev – Device descriptor

  • id[out] Device ID

Returns:

ESP_OK on success

esp_err_t hdc1000_get_battery_status(hdc1000_t *dev, bool *undervolt)

Read battery status.

Parameters:
  • dev – Device descriptor

  • undervolt[out] true when battery voltage is lower than 2.8V

Returns:

ESP_OK on success

esp_err_t hdc1000_get_heater(hdc1000_t *dev, bool *on)

Get heater status.

Parameters:
  • dev – Device descriptor

  • on[out] true when heater is enabled

Returns:

ESP_OK on success

esp_err_t hdc1000_set_heater(hdc1000_t *dev, bool on)

Switch heater on/off.

Parameters:
  • dev – Device descriptor

  • on – true to enable heater

Returns:

ESP_OK on success

esp_err_t hdc1000_set_measurement_mode(hdc1000_t *dev, hdc1000_measurement_mode_t mode)

Set measurement mode.

Parameters:
  • dev – Device descriptor

  • mode – Measurement mode

Returns:

ESP_OK on success

esp_err_t hdc1000_get_resolution(hdc1000_t *dev, hdc1000_temperature_resolution_t *tres, hdc1000_humidity_resolution_t *hres)

Get measurement resolutions.

Parameters:
  • dev – Device descriptor

  • tres[out] Temperature measurement resultion

  • hres[out] Humidity measurement resultion

Returns:

ESP_OK on success

esp_err_t hdc1000_set_resolution(hdc1000_t *dev, hdc1000_temperature_resolution_t tres, hdc1000_humidity_resolution_t hres)

Set measurement resolutions.

Parameters:
  • dev – Device descriptor

  • tres – Temperature measurement resultion

  • hres – Humidity measurement resultion

Returns:

ESP_OK on success

esp_err_t hdc1000_trigger_measurement(hdc1000_t *dev)

Trigger measurement.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t hdc1000_get_data(hdc1000_t *dev, float *t, float *rh)

Read output data.

Parameters:
  • dev – Device descriptor

  • t[out] Temperature, degrees Celsius (nullable)

  • rh[out] Relative humidity, % (nullable)

Returns:

ESP_OK on success

esp_err_t hdc1000_measure(hdc1000_t *dev, float *t, float *rh)

Measure.

Trigger measurement, wait and read output data

Parameters:
  • dev – Device descriptor

  • t[out] Temperature, degrees Celsius (nullable)

  • rh[out] Relative humidity, % (nullable)

Returns:

ESP_OK on success

struct hdc1000_t
#include <hdc1000.h>

Device descriptor.