sfa3x - Driver for SFA30 formaldehyde detection module (I2C)

group sfa3x

ESP-IDF driver for SFA30 formaldehyde detection module.

Ported from https://github.com/Sensirion/embedded-sfa3x

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

BSD Licensed as described in the file LICENSE

Defines

SFA3X_I2C_ADDR

Functions

esp_err_t sfa3x_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

  • scl_gpio – SCL GPIO

Returns:

ESP_OK on success

esp_err_t sfa3x_free_desc(i2c_dev_t *dev)

Free device descriptor.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t sfa3x_reset(i2c_dev_t *dev)

Reset sensor.

This function brings the sensor into the same state as after power-up.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t sfa3x_start_continuous_measurement(i2c_dev_t *dev)

Start continuous measurement.

After power up, the module is in Idle-Mode. Before any measurement values can be read, the Measurement-Mode needs to be started using this command.

Note

This command is only available in idle mode.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t sfa3x_stop_continuous_measurement(i2c_dev_t *dev)

Stop continuous measurement.

Stop continuous measurement and return to idle mode for save energy.

Note

This command is only available in measurement mode.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t sfa3x_read_measurement(i2c_dev_t *dev, float *hcho, float *humidity, float *temperature)

Read sensor output and convert.

Note

This command is only available in measurement mode.

Parameters:
  • dev – Device descriptor

  • hcho – Formaldehyde concentration in ppb

  • humidity – Relative humidity in percent RH

  • temperature – Temperature in degrees Celsius (°C)

Returns:

ESP_OK on success

esp_err_t sfa3x_get_device_marknig(i2c_dev_t *dev, char *marknig)

Read device marking.

To identify individual sensors, the device marking string (as printed on the sensor as 2D bar code) can be read with this function.

Parameters:
  • dev – Device descriptor

  • marknig – 32 bytes buffer to store marking as NULL-terminated string

Returns:

ESP_OK on success