33#ifndef __SCD3O_SENSOR_H__
34#define __SCD3O_SENSOR_H__
37#include "freertos/FreeRTOS.h"
38#include "freertos/task.h"
39#include "rom/ets_sys.h"
64#define SCD30_I2C_ADDR (0x61)
525 uint16_t *firmware_version
uint8_t i2c_addr_t
Type for I²C addresses.
Definition bme280_sensor.h:54
float rh_percent_t
Type for relative humidity [%].
Definition bme280_sensor.h:66
float t_celsius_t
Type for temperature [°C].
Definition bme280_sensor.h:60
i2c_bus_device_handle_t i2c_dev
I²C device handle.
Definition scd30_sensor.h:128
i2c_addr_t dev_addr
I²C address of the sensor.
Definition scd30_sensor.h:129
esp_err_t scd30_i2c_write_automatic_self_calibration(scd30_handle_t sensor, bool enabled)
Enable or disable automatic self calibration (ASC).
Definition scd30_sensor.c:361
esp_err_t scd30_i2c_write_temperature_offset_ticks(scd30_handle_t sensor, tx100_celsius_t offset)
Set temperature offset in ticks.
Definition scd30_sensor.c:441
uint16_t alt_m_t
Type for altitude [m].
Definition scd30_sensor.h:98
esp_err_t scd30_i2c_read_measurement_interval(scd30_handle_t sensor, i_sec_t *interval)
Read the measurement interval.
Definition scd30_sensor.c:265
esp_err_t scd30_i2c_read_firmware_version(scd30_handle_t sensor, uint16_t *firmware_version)
Get firmware version.
Definition scd30_sensor.c:501
esp_err_t scd30_i2c_read_data_ready_status(scd30_handle_t sensor, bool *data_ready)
Check whether new measurement data is available for read-out.
Definition scd30_sensor.c:295
esp_err_t scd30_i2c_read_measurement(scd30_handle_t sensor, co2_ppm_t *co2, t_celsius_t *temperature, rh_percent_t *humidity)
Read CO₂, temperature and humidity measurements.
Definition scd30_sensor.c:313
esp_err_t scd30_i2c_write_temperature_offset(scd30_handle_t sensor, t_celsius_t offset)
Set temperature offset.
Definition scd30_sensor.c:457
esp_err_t scd30_i2c_soft_reset(scd30_handle_t sensor)
Reset the sensor.
Definition scd30_sensor.c:518
uint8_t i2c_addr_t
Type for I²C addresses.
Definition scd30_sensor.h:122
esp_err_t scd30_i2c_read_sensor_altitude(scd30_handle_t sensor, alt_m_t *altitude)
Get configured sensor altitude.
Definition scd30_sensor.c:467
esp_err_t scd30_i2c_read_automatic_self_calibration(scd30_handle_t sensor, bool *enabled)
Get automatic self calibration (ASC) state.
Definition scd30_sensor.c:341
void scd30_i2c_delete(scd30_handle_t sensor)
Deinitialize the SCD30 sensor and free resources.
Definition scd30_sensor.c:221
float co2_ppm_t
Type for CO₂ [ppm].
Definition scd30_sensor.h:116
void * scd30_handle_t
Opaque handle for an SCD30 sensor.
Definition scd30_sensor.h:136
esp_err_t scd30_i2c_write_sensor_altitude(scd30_handle_t sensor, alt_m_t altitude)
Set sensor altitude above sea level.
Definition scd30_sensor.c:484
scd30_handle_t scd30_i2c_create(i2c_bus_handle_t bus, i2c_addr_t dev_addr)
Create a handle for an SCD30 sensor but does not apply any configuration.
Definition scd30_sensor.c:185
uint16_t p_mbar_t
Type for pressure [mbar].
Definition scd30_sensor.h:74
esp_err_t scd30_i2c_write_forced_recalibration_value(scd30_handle_t sensor, uco2_ppm_t target)
Set forced recalibration (FRC) value.
Definition scd30_sensor.c:395
esp_err_t scd30_i2c_stop_continuous_measurement(scd30_handle_t sensor)
Stop continuous measurement.
Definition scd30_sensor.c:251
esp_err_t scd30_i2c_trigger_continuous_measurement(scd30_handle_t sensor, p_mbar_t p_comp)
Trigger continuous measurement.
Definition scd30_sensor.c:234
uint16_t uco2_ppm_t
Type for CO₂ concentration [ppm] (forced recalibration only).
Definition scd30_sensor.h:86
uint16_t i_sec_t
Type for measurement interval [s].
Definition scd30_sensor.h:80
uint16_t tx100_celsius_t
Type for temperature [°C × 100].
Definition scd30_sensor.h:92
esp_err_t scd30_i2c_read_forced_recalibration_value(scd30_handle_t sensor, uco2_ppm_t *frc)
Get forced recalibration (FRC) value.
Definition scd30_sensor.c:378
scd30_handle_t scd30_i2c_init(i2c_bus_handle_t bus, i2c_addr_t dev_addr)
Initialize the SCD30 sensor on the I²C bus with a default configuration.
Definition scd30_sensor.c:200
esp_err_t scd30_i2c_read_temperature_offset(scd30_handle_t sensor, t_celsius_t *offset)
Get temperature offset.
Definition scd30_sensor.c:429
esp_err_t scd30_i2c_write_measurement_interval(scd30_handle_t sensor, i_sec_t interval)
Set measurement interval.
Definition scd30_sensor.c:280
esp_err_t scd30_i2c_read_temperature_offset_ticks(scd30_handle_t sensor, tx100_celsius_t *offset)
Get temperature offset in ticks.
Definition scd30_sensor.c:412
Structure representing the SCD30 device on an I²C bus.
Definition scd30_sensor.h:127