sht4x - driver for Sensirion SHT40/SHT41 digital temperature and humidity sensors¶
- group sht4x
ESP-IDF driver for Sensirion SHT40/SHT41 digital temperature and humidity sensor.
Copyright (c) 2021 Ruslan V. Uss unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Typedefs
-
typedef uint8_t sht4x_raw_data_t[SHT4X_RAW_DATA_SIZE]¶
Enums
-
enum sht4x_heater_t¶
Possible heater modes.
Values:
-
enumerator SHT4X_HEATER_OFF¶
Heater is off, default.
-
enumerator SHT4X_HEATER_HIGH_LONG¶
High power (~200mW), 1 second pulse.
-
enumerator SHT4X_HEATER_HIGH_SHORT¶
High power (~200mW), 0.1 second pulse.
-
enumerator SHT4X_HEATER_MEDIUM_LONG¶
Medium power (~110mW), 1 second pulse.
-
enumerator SHT4X_HEATER_MEDIUM_SHORT¶
Medium power (~110mW), 0.1 second pulse.
-
enumerator SHT4X_HEATER_LOW_LONG¶
Low power (~20mW), 1 second pulse.
-
enumerator SHT4X_HEATER_LOW_SHORT¶
Low power (~20mW), 0.1 second pulse.
-
enumerator SHT4X_HEATER_OFF¶
Functions
-
esp_err_t sht4x_init_desc(sht4x_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
scl_gpio – SCL GPIO
- Returns
ESP_OK
on success
-
esp_err_t sht4x_free_desc(sht4x_t *dev)¶
Free device descriptor.
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
esp_err_t sht4x_init(sht4x_t *dev)¶
Initialize sensor.
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
esp_err_t sht4x_reset(sht4x_t *dev)¶
Soft-reset sensor.
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
esp_err_t sht4x_measure(sht4x_t *dev, float *temperature, float *humidity)¶
High level measurement function.
For convenience this function comprises all three steps to perform one measurement in only one function:
Starts a measurement
Waits using
vTaskDelay()
until measurement results are availableReturns the results in kind of floating point sensor values
This function is the easiest way to use the sensor. It is most suitable for users that don’t want to have the control on sensor details.
Note
The function delays the calling task up to 1.1 s to wait for the measurement results. This might lead to problems when the function is called from a software timer callback function.
- Parameters
dev – Device descriptor
temperature – Temperature in degree Celsius
humidity – Humidity in percent
- Returns
ESP_OK
on success
-
esp_err_t sht4x_start_measurement(sht4x_t *dev)¶
Start the measurement.
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
size_t sht4x_get_measurement_duration(sht4x_t *dev)¶
Get the duration of a measurement in RTOS ticks.
The function returns the duration in RTOS ticks required by the sensor to perform a measurement for the given repeatability and heater setting. Once a measurement is started with function sht4x_start_measurement() the user task can use this duration in RTOS ticks directly to wait with function
vTaskDelay()
until the measurement results can be fetched.- Parameters
dev – Device descriptor
- Returns
Measurement duration given in RTOS ticks
-
esp_err_t sht4x_get_raw_data(sht4x_t *dev, sht4x_raw_data_t raw)¶
Read measurement results from sensor as raw data.
The function read measurement results from the sensor, checks the CRC checksum and stores them in the byte array as following.
data[0] = Temperature MSB data[1] = Temperature LSB data[2] = Temperature CRC data[3] = Humidity MSB data[4] = Humidity LSB data[5] = Humidity CRC
In case that there are no new data that can be read, the function fails.
- Parameters
dev – Device descriptor
raw – [out] Byte array in which raw data are stored
- Returns
ESP_OK
on success
-
esp_err_t sht4x_compute_values(sht4x_raw_data_t raw_data, float *temperature, float *humidity)¶
Computes sensor values from raw data.
- Parameters
raw_data – Byte array that contains raw data
temperature – [out] Temperature in degree Celsius
humidity – [out] Humidity in percent
- Returns
ESP_OK
on success
-
esp_err_t sht4x_get_results(sht4x_t *dev, float *temperature, float *humidity)¶
Get measurement results in form of sensor values.
The function combines function sht4x_get_raw_data() and function sht4x_compute_values() to get the measurement results.
In case that there are no results that can be read, the function fails.
- Parameters
dev – Device descriptor
temperature – [out] Temperature in degree Celsius
humidity – [out] Humidity in percent
- Returns
ESP_OK
on success
-
struct sht4x_t¶
- #include <sht4x.h>
Device descriptor.
Public Members
-
uint32_t serial¶
device serial number
-
sht4x_heater_t heater¶
used measurement mode
-
sht4x_repeat_t repeatability¶
used repeatability
-
bool meas_started¶
indicates whether measurement started
-
uint64_t meas_start_time¶
measurement start time in us
-
uint32_t serial¶
-
typedef uint8_t sht4x_raw_data_t[SHT4X_RAW_DATA_SIZE]¶