Air Quality 12 Click
Air Quality 12 Click is a compact add-on board for monitoring indoor air quality. This board features the RRH46410, a digital gas sensor module from Renesas, which integrates advanced sensing technology for precise detection of total volatile organic compounds (TVOC), indoor air quality (IAQ), and estimated carbon dioxide levels (eCO2). This module features a MEMS gas sensing element with a metal oxide (MOx) chemiresistor, a CMOS signal conditioning IC, and an onboard MCU, offering a complete, self-contained solution with low power consumption and support for both UART and I2C communication.
Click Product page
Click library
- Author : Stefan Filipovic
- Date : Aug 2024.
- Type : I2C/UART type
Software Support
We provide a library for the Air Quality 12 Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.
Library Description
This library contains API for Air Quality 12 Click driver.
Standard key functions :
airquality12_cfg_setup
Config Object Initialization function.
void airquality12_cfg_setup(airquality12_cfg_t *cfg)
Air Quality 12 configuration object setup function.
Air Quality 12 Click configuration object.
Definition airquality12.h:217
airquality12_init
Initialization function.
err_t airquality12_init(airquality12_t *ctx, airquality12_cfg_t *cfg)
Air Quality 12 initialization function.
Air Quality 12 Click context object.
Definition airquality12.h:195
airquality12_default_cfg
Click Default Configuration function.
err_t airquality12_default_cfg(airquality12_t *ctx)
Air Quality 12 default configuration function.
Example key functions :
airquality12_get_sensor_info
This function reads the device product ID, firmware version, and tracking number.
err_t airquality12_get_sensor_info(airquality12_t *ctx, airquality12_info_t *info)
Air Quality 12 get sensor info function.
Air Quality 12 Click device info object.
Definition airquality12.h:258
airquality12_get_int_pin
This function returns the INT pin logic state.
uint8_t airquality12_get_int_pin(airquality12_t *ctx)
Air Quality 12 get int pin function.
airquality12_get_measurement
This function reads the sensor measurement results.
err_t airquality12_get_measurement(airquality12_t *ctx, airquality12_results_t *results)
Air Quality 12 get measurement function.
Air Quality 12 Click measurement results object.
Definition airquality12.h:272
Example Description
This example demonstrates the use of Air Quality 12 Click board by reading the IAQ 2nd Gen measurements and displays the results on the USB UART.
The demo application is composed of two sections :
Application Init
Initializes the driver and configures the Click board to the default configuration. Then it reads the sensor product ID, firmware version, and the 48-bit tracking number.
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
{
log_printf( &logger, " ---- Sensor info ----\r\n" );
log_printf( &logger,
" Product ID: 0x%.4X\r\n", info.
product_id );
log_printf( &logger,
" FW version: %u.%u.%u\r\n", ( uint16_t ) info.
fw_ver_major,
log_printf( &logger, " Tracking number: 0x%.2X%.2X%.2X%.2X%.2X%.2X\r\n",
log_printf( &logger, " ---------------------\r\n" );
}
log_info( &logger, " Application Task " );
}
@ AIRQUALITY12_ERROR
Definition airquality12.h:289
@ AIRQUALITY12_OK
Definition airquality12.h:288
#define AIRQUALITY12_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition airquality12.h:167
void application_init(void)
Definition main.c:32
uint16_t product_id
Definition airquality12.h:259
uint8_t tracking_num[6]
Definition airquality12.h:263
uint8_t fw_ver_minor
Definition airquality12.h:261
uint8_t fw_ver_major
Definition airquality12.h:260
uint8_t fw_ver_patch
Definition airquality12.h:262
Application Task
Checks the data ready interrupt pin and then reads the IAQ 2nd Gen measurements and displays the results on the USB UART. The GP1 LED turns ON during the data reading. The data sample rate is set to 3 seconds for the IAQ 2nd Gen operating mode, and the first 100 samples upon startup should be ignored since the sensor is in the warm-up phase.
{
{
{
log_printf ( &logger,
" Sample number: %u\r\n", ( uint16_t ) results.
sample_num );
log_printf ( &logger,
" IAQ: %.1f\r\n", results.
iaq );
log_printf ( &logger,
" TVOC: %.2f mg/m^3\r\n", results.
tvoc );
log_printf ( &logger,
" ETOH: %.2f ppm\r\n", results.
etoh );
log_printf ( &logger,
" ECO2: %u ppm\r\n", results.
eco2 );
log_printf ( &logger,
" rel_IAQ: %u\r\n\n", results.
rel_iaq );
}
}
}
void airquality12_set_gp1_pin(airquality12_t *ctx, uint8_t state)
Air Quality 12 set gp1 pin function.
void application_task(void)
Definition main.c:83
uint16_t rel_iaq
Definition airquality12.h:278
float etoh
Definition airquality12.h:276
uint16_t eco2
Definition airquality12.h:277
float tvoc
Definition airquality12.h:275
float iaq
Definition airquality12.h:274
uint8_t sample_num
Definition airquality12.h:273
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.
Other Mikroe Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.AirQuality12
Additional notes and informations
Depending on the development board you are using, you may need USB UART Click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. UART terminal is available in all MikroElektronika compilers.