确保环境监测所需的可靠数据(温度、湿度和二氧化碳测量)
A
A
硬件概览
它是如何工作的?
Environment 5 Click 集成了两款来自 Sensirion 的高性能传感器:SHT40-BD1B 数字温湿度传感器和 STC31-C 二氧化碳(CO₂)传感器。两者结合构建了一个可靠的环境监测平台,适用于多种应用场景,特别适合对低功耗、高精度和长期稳定性有要求的系统。在一块紧凑型板卡上,SHT40-BD1B 和 STC31-C 提供温度、湿度和 CO₂ 浓度的精准监测,使其成为智能建筑系统、HVAC 控制、空气质量监测以及各类便携或嵌入式解决方案的理想选择。SHT40-BD1B 是 Sensirion 最新一代温湿度传感器,基于全新优化的 CMOSens® 芯片架构,具有低功耗和优异的精度表现。湿度测量范围为 0 至 100% RH,典型精度为 ±1.8% RH;温度测量范围为 -40 至 +125°C,典型精度为 ±0.2°C。该传感器符合 JEDEC JESD47 行业标准,并通过 RESET® 与 WELL Building Standard™
健康建筑标准认证,确保其在健康导向和室内环境监测中的可靠性。STC31-C 是一款紧凑型芯片级 CO₂ 传感器,适用于高浓度、高精度气体测量,适合电池供电及 OEM 应用。它基于 Sensirion 专利的 CMOSens® 技术,将传感器、信号处理和数字校准集成在单个 CMOS 芯片中,具有优异的重复性和长期稳定性。其测量范围为 0 至 100 vol%,精度为 ±0.2 vol% ±2.0% 读数值,同时具备出色的温度稳定性,漂移仅为每摄氏度 0.02 vol%。Environment 5 Click 采用全新设计,支持 MIKROE 推出的 “Click Snap” 功能。与标准 Click 板不同,Snap 结构允许用户通过断开 PCB,将主要传感区域拆分出来,从而在安装上提供更多灵活性。Snap 部分可通过标记的 1-8 引脚直接访问传感器信号,实现独立工作。同时 Snap 区域预设螺丝孔位,便于用户将分离部分固定在目标位
置。该 Click 板使用 I2C 接口进行通信,时钟频率高达 1MHz,可确保与主控 MCU 快速通信。CO₂ 传感器的 I2C 地址可通过 Snap 区域中的 ADDR SEL 跳线轻松配置,支持多个设备共存于同一总线上。除了 I2C 接口引脚外,Environment 5 Click 还配备 EN 引脚,用于控制 MAX40200 理想二极管,该二极管在此设计中作为电源开关。当 EN 引脚被激活时,MAX40200 将为板上的两个传感器供电。此电源管理方式便于根据实际需求启用或关闭传感器,非常适合低功耗和电池供电应用。该 Click 板仅支持 3.3V 逻辑电平。在使用不同逻辑电平的 MCU 前,必须进行适当的电平转换。该板还附带了函数库和示例代码,可作为进一步开发的参考。
功能概述
开发板
UNI Clicker 是一款紧凑型开发板,设计为一体化解决方案,它将 Click 板™ 的灵活性带给您喜爱的微控制器,使其成为实现您想法的完美入门套件。它支持广泛的微控制器,如 Microchip、ST、NXP 和 TI 等厂商的不同 ARM、PIC32、dsPIC、PIC 和 AVR(不论其引脚数量),具备四个 mikroBUS™ 插槽用于 Click 板™ 连接,一个 USB 连接器,LED 指示灯,按钮,一个调试器/程序员连接器,以及两个 26 针头用于与外部电子设备的接口。得益于创新的制造技术,它允许您迅速构建具有独特功能和特性的小工
具。UNI Clicker 开发套件的每个部分都包含了使同一板块运行最高效的必要组件。除了可以选择 UNI Clicker 的编程方式,使用第三方程序员或通过板载 JTAG/SWD 头连接的 CODEGRIP/mikroProg 外,UNI Clicker 板还包括一个为开发套件提供的干净且调节过的电源供应模块。它提供了两种供电方式;通过 USB Type-C(USB-C)连接器,其中板载电压调节器为板上每个组件提供适当的电压水平,或使用锂聚 合物/锂离子电池通过板载电池连接器供电。所有 mikroBUS™ 本身支持的通信方法(加上 USB
HOST/DEVICE)都在这块板上,包括已经建立良好的 mikroBUS™ 插槽、为 MCU 卡提供的标准化插座(SiBRAIN 标准),以及几个用户可配置的按钮和 LED 指示灯。UNI Clicker 是 Mikroe 快速开发生态系统的一个重要组成部分,允许您在几分钟内创建新的应用程序。它由 Mikroe 软件工具原生支持,得益于大量不同的 Click 板™(超过一千块板),其数量每天都在增长,它涵盖了原型制作的许多方面。
微控制器概述
MCU卡片 / MCU

类型
8th Generation
建筑
PIC32
MCU 内存 (KB)
1024
硅供应商
Microchip
引脚数
144
RAM (字节)
262144
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
实时跟踪您的结果
应用程序输出
1. 应用程序输出 - 在调试模式下,“应用程序输出”窗口支持实时数据监控,直接提供执行结果的可视化。请按照提供的教程正确配置环境,以确保数据正确显示。

2. UART 终端 - 使用UART Terminal通过USB to UART converter监视数据传输,实现Click board™与开发系统之间的直接通信。请根据项目需求配置波特率和其他串行设置,以确保正常运行。有关分步设置说明,请参考提供的教程。

3. Plot 输出 - Plot功能提供了一种强大的方式来可视化实时传感器数据,使趋势分析、调试和多个数据点的对比变得更加直观。要正确设置,请按照提供的教程,其中包含使用Plot功能显示Click board™读数的分步示例。在代码中使用Plot功能时,请使用以下函数:plot(insert_graph_name, variable_name);。这是一个通用格式,用户需要将“insert_graph_name”替换为实际图表名称,并将“variable_name”替换为要显示的参数。

软件支持
库描述
Environment 5 Click 演示应用程序使用 NECTO Studio开发,确保与 mikroSDK 的开源库和工具兼容。该演示设计为即插即用,可与所有具有 mikroBUS™ 插座的 开发板、入门板和 mikromedia 板完全兼容,用于快速实现和测试。
示例描述
此示例演示了 Environment 5 Click 板的使用,该板可测量温度、湿度和 CO₂ 浓度。示例程序初始化设备、读取传感器 ID,并持续记录环境数据。
关键功能:
environment5_cfg_setup
- 初始化 Click 配置结构为默认值。environment5_init
- 初始化该 Click 板所需的所有引脚和外设。environment5_default_cfg
- 执行 Environment 5 Click 板的默认配置。environment5_sht_read_meas_hp
- 从 SHT40 设备读取高精度的温度和湿度数据。environment5_stc_set_hum
- 在 STC31-C 设备上设置相对湿度补偿值。environment5_stc_read_meas
- 从 STC31-C 设备读取气体浓度和温度数据。
应用初始化
初始化日志记录器并配置 Environment 5 Click 板,同时获取并记录板载传感器的产品号和序列号。
应用任务
持续读取并记录来自传感器的温度(摄氏度)、湿度(%RH)和 CO₂ 浓度(体积百分比)。
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* @file main.c
* @brief Environment 5 Click example
*
* # Description
* This example demonstrates the use of the Environment 5 Click board, which provides
* temperature, humidity, and CO2 concentration measurements. The example initializes
* the device, reads sensor IDs, and continuously logs environmental data.
*
* The demo application is composed of two sections:
*
* ## Application Init
* Initializes the logger and configures the Environment 5 Click board. It also retrieves
* and logs the product and serial numbers of the onboard sensors.
*
* ## Application Task
* Continuously reads and logs temperature (degC) and humidity (%RH), and CO2 concentration
* (vol%) from sensors.
*
* @author Stefan Filipovic
*
*/
#include "board.h"
#include "log.h"
#include "environment5.h"
static environment5_t environment5;
static log_t logger;
void application_init ( void )
{
log_cfg_t log_cfg; /**< Logger config object. */
environment5_cfg_t environment5_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.
environment5_cfg_setup( &environment5_cfg );
ENVIRONMENT5_MAP_MIKROBUS( environment5_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == environment5_init( &environment5, &environment5_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( ENVIRONMENT5_ERROR == environment5_default_cfg ( &environment5 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
uint32_t stc_prod_num = 0;
uint32_t stc_serial_msb = 0;
uint32_t stc_serial_lsb = 0;
if ( ENVIRONMENT5_OK == environment5_stc_read_id ( &environment5, &stc_prod_num, &stc_serial_msb, &stc_serial_lsb ) )
{
log_printf ( &logger, " STC31-C Product number: 0x%.8LX\r\n", stc_prod_num );
log_printf ( &logger, " STC31-C Serial number: 0x%.8LX%.8LX\r\n", stc_serial_msb, stc_serial_lsb );
}
uint32_t sht_serial = 0;
if ( ENVIRONMENT5_OK == environment5_sht_read_serial ( &environment5, &sht_serial ) )
{
log_printf ( &logger, " SHT40 Serial number: 0x%.8LX\r\n", sht_serial );
}
log_info( &logger, " Application Task " );
}
void application_task ( void )
{
float temperature = 0;
float humidity = 0;
float co2_concentration = 0;
err_t error_flag = environment5_sht_read_meas_hp ( &environment5, &temperature, &humidity );
if ( ENVIRONMENT5_OK == error_flag )
{
error_flag |= environment5_stc_set_temp ( &environment5, temperature );
error_flag |= environment5_stc_set_hum ( &environment5, humidity );
error_flag |= environment5_stc_read_meas ( &environment5, &co2_concentration, NULL );
}
if ( ENVIRONMENT5_OK == error_flag )
{
log_printf ( &logger, " Temperature: %.2f degC\r\n", temperature );
log_printf ( &logger, " Humidity: %.2f %%RH\r\n", humidity );
log_printf ( &logger, " CO2 in air [0-40]: %.2f vol%%\r\n\n", co2_concentration );
}
Delay_ms ( 500 );
}
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
额外支持
资源
类别:环境