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:358
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:438
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:262
esp_err_t scd30_i2c_read_firmware_version(scd30_handle_t sensor, uint16_t *firmware_version)
Get firmware version.
Definition scd30_sensor.c:498
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:292
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:310
esp_err_t scd30_i2c_write_temperature_offset(scd30_handle_t sensor, t_celsius_t offset)
Set temperature offset.
Definition scd30_sensor.c:454
esp_err_t scd30_i2c_soft_reset(scd30_handle_t sensor)
Reset the sensor.
Definition scd30_sensor.c:515
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:464
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:338
void scd30_i2c_delete(scd30_handle_t sensor)
Deinitialize the SCD30 sensor and free resources.
Definition scd30_sensor.c:218
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:481
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:182
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:392
esp_err_t scd30_i2c_stop_continuous_measurement(scd30_handle_t sensor)
Stop continuous measurement.
Definition scd30_sensor.c:248
esp_err_t scd30_i2c_trigger_continuous_measurement(scd30_handle_t sensor, p_mbar_t p_comp)
Trigger continuous measurement.
Definition scd30_sensor.c:231
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:375
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:197
esp_err_t scd30_i2c_read_temperature_offset(scd30_handle_t sensor, t_celsius_t *offset)
Get temperature offset.
Definition scd30_sensor.c:426
esp_err_t scd30_i2c_write_measurement_interval(scd30_handle_t sensor, i_sec_t interval)
Set measurement interval.
Definition scd30_sensor.c:277
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:409
Structure representing the SCD30 device on an I²C bus.
Definition scd30_sensor.h:127