评估整体室内和室外空气质量,可检测挥发性有机化合物 (VOC)、挥发性硫化合物 (VSC)、一氧化碳 (CO)、氢气以及其他多种气体
A
A
硬件概览
它是如何工作的?
Environment 6 Click 基于 Bosch Sensortec 的 BME690,这是一款集成 AI 的全球最小 4 合 1 环境传感器。该板卡将气体、湿度、压力和温度测量结合在一起,提供高度集成的环境感测解决方案,专为精确监控空气质量和环境条件而设计。BME690 能够检测挥发性有机化合物 (VOC)、挥发性硫化物 (VSC)、一氧化碳 (CO)、氢气 (H2) 及其他气体,并内置气体扫描功能,可提供扩展测量来评估整体室内或室外空气质量。通过 Bosch 的软件,可以进一步分析气体读数,并利用 AI 算法训练识别特定环境指标,例如细菌滋生产生的可能性或有机污染物的存在,从而为广泛的应用场景提供可靠且可适应的数据。BME690 提供关键输出,包括空气质量指数 (IAQ)、bVOC 和 CO2
当量值,确保对环境健康的洞察和可操作信息。它支持全工作范围,具有 ±0.05hPa 的压力精度、±3%RH 的湿度精度以及在 0 至 65°C 范围内 ±0.5°C 的温度精度,使其适用于对性能要求严格的应用,包括可穿戴设备、移动终端、智能家居和健康护理产品。该 Click 板卡采用 MIKROE 新引入的 Click Snap 独特设计格式。与标准化版本不同,该功能允许主传感器/IC/模块部分通过断开 PCB 实现可移动,从而带来更多实现方式。借助 Snap 功能,BME690 可以通过直接访问标记为 1-8 的引脚自主运行。此外,Snap 部分还包含一个指定和固定的螺丝孔位置,使用户能够将其牢固安装在所需位置。该板支持通过 SPI(最高 10MHz)或 I2C(最高 3.4MHz)接口与主 MCU 通
信,默认采用 I2C 模式。通信接口可通过 COMM SEL 跳线切换至所需位置。为了增强灵活性,尤其是可拆卸的 Snap 部分,板上额外提供了 COMM SEL 跳线,功能与主跳线相同,使 Snap 部分在独立使用时也能选择通信接口。为确保正常工作,所有 COMM 跳线必须设置为相同接口。对于使用 I2C 接口的用户,板上还提供 ADDR SEL 跳线,可根据具体应用需求配置 I2C 地址。该 Click 板仅支持 3.3V 逻辑电平运行。对于使用不同逻辑电平的 MCU,必须执行适当的电平转换。它还配备了一个库,包含易于使用的函数和示例代码,可作为进一步开发的参考。
功能概述
开发板
Flip&Click PIC32MZ 是一款紧凑型开发板,设计为一套完整的解决方案,它将 Click 板™的灵活性带给您喜爱的微控制器,使其成为实现您想法的完美入门套件。它配备了一款板载 32 位 PIC32MZ 微控制器,Microchip 的 PIC32MZ2048EFH100,四个 mikroBUS™ 插槽用于 Click 板™连接,两个 USB 连接器,LED 指示灯,按钮,调试器/程序员连接器,以及两个与 Arduino-UNO 引脚兼容的头部。得益于创
新的制造技术,它允许您快速构建具有独特功能和特性的小工具。Flip&Click PIC32MZ 开发套件的每个部分都包含了使同一板块运行最高效的必要组件。此外,还可以选择 Flip&Click PIC32MZ 的编程方式,使用 chipKIT 引导程序(Arduino 风格的开发环境)或我们的 USB HID 引导程序,使用 mikroC、mikroBasic 和 mikroPascal for PIC32。该套件包括一个通过 USB 类型-C(USB-C)连接器的干净且调
节过的电源供应模块。所有 mikroBUS™ 本身支持的 通信方法都在这块板上,包括已经建立良好的 mikroBUS™ 插槽、用户可配置的按钮和 LED 指示灯。Flip&Click PIC32MZ 开发套件允许您在几分钟内创建新的应用程序。它由 Mikroe 软件工具原生支持,得益于大量不同的 Click 板™(超过一千块板),其数量每天都在增长,它涵盖了原型制作的许多方面。
微控制器概述
MCU卡片 / MCU

建筑
PIC32
MCU 内存 (KB)
2048
硅供应商
Microchip
引脚数
100
RAM (字节)
524288
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
软件支持
库描述
Environment 6 Click 演示应用程序使用 NECTO Studio开发,确保与 mikroSDK 的开源库和工具兼容。该演示设计为即插即用,可与所有具有 mikroBUS™ 插座的 开发板、入门板和 mikromedia 板完全兼容,用于快速实现和测试。
示例描述
本示例演示了 Environment 6 Click 开发板的使用,该板集成了一款高精度环境传感器,用于测量温度、湿度、气压和气体阻值。应用程序初始化设备,并通过 UART 定期读取并记录所有可用的环境参数。
关键功能:
environment6_cfg_setup- 此函数将 Click 配置结构初始化为初始值。environment6_init- 此函数初始化该 Click 开发板所需的所有引脚和外设。environment6_default_cfg- 此函数执行 Environment 6 Click 的默认配置。environment6_set_sensor_conf- 此函数配置传感器的过采样、滤波和数据速率。environment6_set_gas_conf- 此函数设置加热器温度、加热时长并启用气体测量。environment6_get_data- 此函数触发一次测量并读取温度、气压、湿度和气体阻值数据。
应用初始化
初始化日志记录器并配置 Environment 6 Click,建立通信并对传感器应用默认配置。
应用任务
持续读取温度(摄氏度)、湿度(%RH)、气压(毫巴)和气体阻值(欧姆,如果已启用),并每秒记录一次测量值。
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* @file main.c
* @brief Environment 6 Click example
*
* # Description
* This example demonstrates the use of the Environment 6 Click board, which integrates
* a high-precision environmental sensor for measuring temperature, humidity, pressure,
* and gas resistance. The application initializes the device and periodically reads
* and logs all available environmental parameters via UART.
*
* The demo application is composed of two sections:
*
* ## Application Init
* Initializes the logger and configures the Environment 6 Click. It sets up
* communication and applies the default configuration to the sensor.
*
* ## Application Task
* Continuously reads temperature (degC), humidity (%RH), pressure (mBar), and gas
* resistance (Ohms) if enabled, then logs the measured values every second.
*
* @note
* The BME690 sensor on this Click board provides raw gas resistance data only.
* To calculate indoor air quality (IAQ), VOC index, CO2 equivalents, and similar
* environmental parameters, Bosch Sensortec BSEC (Bosch Software Environmental Cluster)
* algorithm must be integrated separately.
*
* @author Stefan Filipovic
*
*/
#include "board.h"
#include "log.h"
#include "environment6.h"
static environment6_t environment6;
static log_t logger;
void application_init ( void )
{
log_cfg_t log_cfg; /**< Logger config object. */
environment6_cfg_t environment6_cfg; /**< Click config object. */
/**
* Logger initialization.
* Default baud rate: 115200
* Default log level: LOG_LEVEL_DEBUG
* @note If USB_UART_RX and USB_UART_TX
* are defined as HAL_PIN_NC, you will
* need to define them manually for log to work.
* See @b LOG_MAP_USB_UART macro definition for detailed explanation.
*/
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
environment6_cfg_setup( &environment6_cfg );
ENVIRONMENT6_MAP_MIKROBUS( environment6_cfg, MIKROBUS_1 );
err_t init_flag = environment6_init( &environment6, &environment6_cfg );
if ( ( I2C_MASTER_ERROR == init_flag ) || ( SPI_MASTER_ERROR == init_flag ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( ENVIRONMENT6_ERROR == environment6_default_cfg ( &environment6 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}
void application_task ( void )
{
environment6_data_t meas_res;
if ( ENVIRONMENT6_OK == environment6_get_data ( &environment6, &meas_res ) )
{
log_printf( &logger, " Temperature : %.2f degC\r\n", meas_res.temperature );
log_printf( &logger, " Humidity : %.2f %%\r\n", meas_res.humidity );
log_printf( &logger, " Pressure : %.1f mBar\r\n", meas_res.pressure );
if ( environment6.gas_conf.enable )
{
log_printf( &logger, " Gas Resistance : %.1f Ohms\r\n", meas_res.gas_resistance );
}
log_printf( &logger, "--------------------------------\r\n" );
Delay_ms ( 1000 );
}
}
int main ( void )
{
/* Do not remove this line or clock might not be set correctly. */
#ifdef PREINIT_SUPPORTED
preinit();
#endif
application_init( );
for ( ; ; )
{
application_task( );
}
return 0;
}
// ------------------------------------------------------------------------ END
额外支持
资源
类别:气体
































