bh1900nux - Driver for BH1900NUX temperature sensor

group bh1900nux

ESP-IDF driver for BH1900NUX temperature sensor.

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

BSD Licensed as described in the file LICENSE

Defines

BH1900NUX_I2C_ADDR_BASE

See full list in datasheet.

Enums

enum bh1900nux_fault_queue_t

Fault queue size.

Values:

enumerator BH1900NUX_FAULTS_1

1 fault to trigger ALERT pin

enumerator BH1900NUX_FAULTS_2

2 faults to trigger ALERT pin

enumerator BH1900NUX_FAULTS_4

4 faults to trigger ALERT pin

enumerator BH1900NUX_FAULTS_6

6 faults to trigger ALERT pin

enum bh1900nux_alert_polarity_t

ALERT pin polarity.

Values:

enumerator BH1900NUX_ALERT_LOW

ALERT active low (default)

enumerator BH1900NUX_ALERT_HIGH

ALERT active high.

enum bh1900nux_mode_t

Device operating mode.

Values:

enumerator BH1900NUX_MODE_CONTINUOUS

Continuous measurement mode (default)

enumerator BH1900NUX_MODE_SHUTDOWN

Shutdown mode.

enum bh1900nux_wait_time_t

Delay between measurements in continuous mode.

Values:

enumerator BH1900NUX_WT_0

186240 * 16 / 450000 ~ 6.622s (Fosc = 450kHz)

enumerator BH1900NUX_WT_1

186240 * 4 / 450000 ~ 1.655s (Fosc = 450kHz)

enumerator BH1900NUX_WT_2

186240 / 450000 ~ 0.414s (Fosc = 450kHz)

enumerator BH1900NUX_WT_3

93120 / 450000 ~ 0.207s (Fosc = 450kHz)

Functions

esp_err_t bh1900nux_init_desc(bh1900nux_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

  • port – I2C port number

  • addr – I2C address

  • sda_gpio – SDA GPIO

  • scl_gpio – SCL GPIO

Returns

ESP_OK on success

esp_err_t bh1900nux_free_desc(bh1900nux_t *dev)

Free device descriptor.

Parameters

dev – Device descriptor

Returns

ESP_OK on success

esp_err_t bh1900nux_reset(bh1900nux_t *dev)

Software reset.

Parameters

dev – Device descriptor

Returns

ESP_OK on success

esp_err_t bh1900nux_set_mode(bh1900nux_t *dev, bh1900nux_mode_t mode)

Set device operating mode.

Parameters
  • dev – Device descriptor

  • mode – Operating mode

Returns

ESP_OK on success

esp_err_t bh1900nux_get_config(bh1900nux_t *dev, bh1900nux_wait_time_t *wt, bh1900nux_fault_queue_t *fq, bh1900nux_alert_polarity_t *ap)

Read current device config.

Parameters
  • dev – Device descriptor

  • wt[out] Delay between measurements

  • fq[out] Fault queue size

  • ap[out] ALERT pin polarity

Returns

ESP_OK on success

esp_err_t bh1900nux_set_config(bh1900nux_t *dev, bh1900nux_wait_time_t wt, bh1900nux_fault_queue_t fq, bh1900nux_alert_polarity_t ap)

Configure device.

Parameters
  • dev – Device descriptor

  • wt – Delay between measurements

  • fq – Fault queue size

  • ap – ALERT pin polarity

Returns

ESP_OK on success

esp_err_t bh1900nux_one_shot(bh1900nux_t *dev, float *temp)

Made a single-shot measurement.

Works only when device is in shutdown mode.

Parameters
  • dev – Device descriptor

  • temp[out] Temperature, deg.C

Returns

ESP_OK on success

esp_err_t bh1900nux_get_temperature(bh1900nux_t *dev, float *temp)

Read temperature register.

Parameters
  • dev – Device descriptor

  • temp[out] Temperature, deg.C

Returns

ESP_OK on success

esp_err_t bh1900nux_get_t_low(bh1900nux_t *dev, float *temp)

Read lower temperature limit register.

Parameters
  • dev – Device descriptor

  • temp[out] Temperature, deg.C

Returns

ESP_OK on success

esp_err_t bh1900nux_set_t_low(bh1900nux_t *dev, float temp)

Write lower temperature limit register.

Parameters
  • dev – Device descriptor

  • temp – Temperature, deg.C

Returns

ESP_OK on success

esp_err_t bh1900nux_get_t_high(bh1900nux_t *dev, float *temp)

Read higher temperature limit register.

Parameters
  • dev – Device descriptor

  • temp[out] Temperature, deg.C

Returns

ESP_OK on success

esp_err_t bh1900nux_set_t_high(bh1900nux_t *dev, float temp)

Write higher temperature limit register.

Parameters
  • dev – Device descriptor

  • temp – Temperature, deg.C

Returns

ESP_OK on success

struct bh1900nux_t
#include <bh1900nux.h>

Device descriptor.