Go to the documentation of this file.
28 #ifndef AIRQUALITY11_H
29 #define AIRQUALITY11_H
39 #ifdef PREINIT_SUPPORTED
43 #ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_i2c_master.h"
52 #include "drv_spi_master.h"
75 #define AIRQUALITY11_REG_PART_ID 0x00
76 #define AIRQUALITY11_REG_OPMODE 0x10
77 #define AIRQUALITY11_REG_CONFIG 0x11
78 #define AIRQUALITY11_REG_COMMAND 0x12
79 #define AIRQUALITY11_REG_TEMP_IN 0x13
80 #define AIRQUALITY11_REG_RH_IN 0x15
81 #define AIRQUALITY11_REG_DEVICE_STATUS 0x20
82 #define AIRQUALITY11_REG_DATA_AQI_UBA 0x21
83 #define AIRQUALITY11_REG_DATA_ETVOC 0x22
84 #define AIRQUALITY11_REG_DATA_ECO2 0x24
85 #define AIRQUALITY11_REG_DATA_AQI_S 0x26
86 #define AIRQUALITY11_REG_DATA_T 0x30
87 #define AIRQUALITY11_REG_DATA_RH 0x32
88 #define AIRQUALITY11_REG_DATA_MISR 0x38
89 #define AIRQUALITY11_REG_GPR_WRITE 0x40
90 #define AIRQUALITY11_REG_GPR_READ 0x48
109 #define AIRQUALITY11_TEMP_MIN -40.0f
110 #define AIRQUALITY11_TEMP_MAX 80.0f
111 #define AIRQUALITY11_TEMP_CALC_KC 273.15f
112 #define AIRQUALITY11_TEMP_CALC_MLT 64.0f
113 #define AIRQUALITY11_HUM_MIN 5.0f
114 #define AIRQUALITY11_HUM_MAX 95.0f
115 #define AIRQUALITY11_HUM_CALC_MLT 512.0f
121 #define AIRQUALITY11_AQI_UBA_EXELLENT 1
122 #define AIRQUALITY11_AQI_UBA_GOOD 2
123 #define AIRQUALITY11_AQI_UBA_MODERATE 3
124 #define AIRQUALITY11_AQI_UBA_POOR 4
125 #define AIRQUALITY11_AQI_UBA_UNHEALTHY 5
131 #define AIRQUALITY11_AQI_UBA_BITMASK 0x07
137 #define AIRQUALITY11_PART_ID 0x0161u
144 #define AIRQUALITY11_DEVICE_ADDRESS_0 0x52
145 #define AIRQUALITY11_DEVICE_ADDRESS_1 0x53
155 #define AIRQUALITY11_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
156 #define AIRQUALITY11_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
174 #define AIRQUALITY11_MAP_MIKROBUS( cfg, mikrobus ) \
175 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
176 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
177 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
178 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
179 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
180 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
181 cfg.en = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
182 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
635 #endif // AIRQUALITY11_H
err_t airquality11_set_measure_c(airquality11_t *ctx, float temperature, float humidity)
Air Quality 11 set measure conditions function.
err_t airquality11_write_word(airquality11_t *ctx, uint8_t reg, uint16_t data_in)
Air Quality 11 word data writing function.
pin_name_t miso
Definition: airquality11.h:238
err_t airquality11_get_tvoc(airquality11_t *ctx, uint16_t *tvoc_ppb)
Air Quality 11 get TVOC function.
@ AIRQUALITY11_CMD_GET_APPVER
Definition: airquality11.h:289
spi_master_mode_t spi_mode
Definition: airquality11.h:249
airquality11_master_io_t write_f
Definition: airquality11.h:222
err_t airquality11_get_co2(airquality11_t *ctx, uint16_t *co2_ppm)
Air Quality 11 get CO2 function.
This file contains SPI specific macros, functions, etc.
struct airquality11_s airquality11_t
Air Quality 11 Click context object.
@ AIRQUALITY11_DEEP_SLEEP
Definition: airquality11.h:273
airquality11_drv_t drv_sel
Definition: airquality11.h:220
@ AIRQUALITY11_ULTRA_LOW_POWER
Definition: airquality11.h:277
@ AIRQUALITY11_LOW_POWER
Definition: airquality11.h:276
err_t airquality11_get_status(airquality11_t *ctx, uint8_t *status)
Air Quality 11 get status function.
err_t airquality11_get_aqi_uba(airquality11_t *ctx, uint8_t *aqi_uba)
Air Quality 11 get AQI-UBA function.
void airquality11_drv_interface_sel(airquality11_cfg_t *cfg, airquality11_drv_t drv_sel)
Air Quality 11 driver interface setup function.
pin_name_t en
Definition: airquality11.h:242
@ AIRQUALITY11_CMD_NOP
Definition: airquality11.h:288
airquality11_return_value_t
Air Quality 11 Click return value data.
Definition: airquality11.h:261
digital_out_t en
Definition: airquality11.h:211
err_t airquality11_get_measure_c(airquality11_t *ctx, float *temperature, float *humidity)
Air Quality 11 get measure conditions function.
uint8_t slave_address
Definition: airquality11.h:218
void airquality11_cfg_setup(airquality11_cfg_t *cfg)
Air Quality 11 configuration object setup function.
@ AIRQUALITY11_DRV_SEL_I2C
Definition: airquality11.h:194
pin_name_t mosi
Definition: airquality11.h:239
uint8_t i2c_address
Definition: airquality11.h:246
spi_master_t spi
Definition: airquality11.h:216
airquality11_drv_t
Air Quality 11 Click driver selector.
Definition: airquality11.h:192
err_t airquality11_get_device_id(airquality11_t *ctx, uint16_t *device_id)
Air Quality 11 get device ID function.
Air Quality 11 Click configuration object.
Definition: airquality11.h:235
err_t airquality11_get_aqi_s(airquality11_t *ctx, uint16_t *aqi_s)
Air Quality 11 get AQI-S function.
digital_in_t int_pin
Definition: airquality11.h:213
@ AIRQUALITY11_STANDARD
Definition: airquality11.h:275
err_t airquality11_set_op_mode(airquality11_t *ctx, airquality11_op_mode_t op_mode)
Air Quality 11 set operating mode function.
pin_name_t int_pin
Definition: airquality11.h:243
err_t airquality11_default_cfg(airquality11_t *ctx)
Air Quality 11 default configuration function.
pin_name_t sda
Definition: airquality11.h:237
pin_name_t sck
Definition: airquality11.h:240
uint32_t spi_speed
Definition: airquality11.h:248
err_t airquality11_read_gpr_reg(airquality11_t *ctx, uint8_t *data_out)
Air Quality 11 GPR data reading function.
pin_name_t cs
Definition: airquality11.h:241
err_t airquality11_generic_write(airquality11_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Air Quality 11 data writing function.
err_t airquality11_set_cmd(airquality11_t *ctx, airquality11_cmd_t cmd)
Air Quality 11 set command function.
airquality11_master_io_t read_f
Definition: airquality11.h:223
pin_name_t chip_select
Definition: airquality11.h:219
airquality11_cmd_t
Air Quality 11 Click command value data.
Definition: airquality11.h:287
err_t airquality11_write_gpr_reg(airquality11_t *ctx, uint8_t *data_in)
Air Quality 11 GPR data writing function.
@ AIRQUALITY11_CMD_CLRGPR
Definition: airquality11.h:290
err_t airquality11_generic_read(airquality11_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Air Quality 11 data reading function.
err_t(* airquality11_master_io_t)(struct airquality11_s *, uint8_t, uint8_t *, uint8_t)
Definition: airquality11.h:203
err_t airquality11_read_word(airquality11_t *ctx, uint8_t reg, uint16_t *data_out)
Air Quality 11 word data reading function.
airquality11_op_mode_t
Air Quality 11 Click operating mode value data.
Definition: airquality11.h:272
@ AIRQUALITY11_IDLE
Definition: airquality11.h:274
uint32_t i2c_speed
Definition: airquality11.h:245
airquality11_drv_t drv_sel
Definition: airquality11.h:252
pin_name_t scl
Definition: airquality11.h:236
uint8_t airquality11_get_interrupt(airquality11_t *ctx)
Rotary O 2 get interrupt function.
@ AIRQUALITY11_DRV_SEL_SPI
Definition: airquality11.h:193
err_t airquality11_init(airquality11_t *ctx, airquality11_cfg_t *cfg)
Air Quality 11 initialization function.
@ AIRQUALITY11_ERROR
Definition: airquality11.h:263
spi_master_chip_select_polarity_t cs_polarity
Definition: airquality11.h:250
err_t airquality11_set_int_config(airquality11_t *ctx, uint8_t int_cfg)
Air Quality 11 set configures function.
float temperature
Definition: airquality11.h:225
@ AIRQUALITY11_OK
Definition: airquality11.h:262
i2c_master_t i2c
Definition: airquality11.h:215
@ AIRQUALITY11_RESET
Definition: airquality11.h:278
float humidity
Definition: airquality11.h:226
Air Quality 11 Click context object.
Definition: airquality11.h:210