这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » KIT-PSE84-AI开发指南【室内环境数据采集】

共1条 1/1 1 跳转至页

KIT-PSE84-AI开发指南【室内环境数据采集】

菜鸟
2026-11-09 22:41:45     打赏

一、硬件介绍

1、产品特点

PSOC E84 Edge AI KIT开发板配备双 CPU 内核(400 MHz Arm Cortex‑M55和200 MHz Arm Cortex‑M33),芯片集成图形音频模块、数字信号处理 DSP 单元、安全隔离区、高性能存储扩展等接口;

板载KitProg3编程调试器、SWD调试排针、6轴IMU传感器、3轴磁力计、气压传感器、温湿度传感器、雷达模块以及64MB QSPI Flash、16MB Octal RAM以及具有Wi‑Fi、蓝牙二合一的CYW55513无线模块模组;

17.png

主要特性

  • 双核CPU:400MHz Cortex‑M55(高性能) + 200MHz Cortex‑M33(低功耗)

  • 支持1.8V、3.3V工作电压


主要原理图

1.png


二、功能效果

通过板载的温湿度、气压传感器,采集室内的环境数据,并通过串口进行输出;

气压传感器、温湿度传感器通过I2C方式进行连接


气压传感器(DPS368)

DPS368 是一款微型数字气压传感器,具有高精度和低电流消耗,可测量压力和温度;

主要特性

压力范围:300 hPa ~ 1200 hPa

精度:± 0.06 hPa (or ±0.5 m)

image-20261104204920807

12.png


温湿度传感器(SHT40)

主要特性

温度范围:  -40℃~+125℃ (±0.2℃)

湿度范围:  0%RH~100%RH ( ±1.8%RH)

1.png


三、代码编写

在之前PSOC_Edge_Hello_World例程的基础上,添加相关传感器功能库;

在Library Manager中分别搜索 sht4x 和 dps3xx 并添加到cm33_ns工程中;

image-20261104215825211

13.png

在cm33_ns中的main.c中编写相关代码

串口每隔1s打印一次温湿度、气压传感器采集到的数据

#include "cybsp.h"
#include "mtb_hal.h"
#include "mtb_sht4x.h"
#include "mtb_xensiv_dps3xx.h"
#include "retarget_io_init.h"

// I2C控制器底层上下文结构体
cy_stc_scb_i2c_context_t i2c_controller_context;
// MTB HAL层的I2C实例对象
mtb_hal_i2c_t CYBSP_I2C_CONTROLLER_hal_obj;

// DPS368传感器
xensiv_dps3xx_t pressure_sensor;

int main(void) {

  cy_rslt_t result = CY_RSLT_SUCCESS;
  // SHT40读取原始数据:湿度(毫相对湿度)、温度(毫摄氏度),除以1000得到实际值
  int32_t humidity_milli, temp_sht_milli;
  // DPS368读取原始数据:气压(hPa)
  float pressure;

  /* 初始化芯片内核、外设时钟以及开发板BSP资源 */
  result = cybsp_init();
  if (CY_RSLT_SUCCESS != result) {
    CY_ASSERT(0);
  }

  /* 开启全局中断 */
  __enable_irq();

  /* 初始化串口重定向 */
  init_retarget_io();

  /* 初始化SCB硬件I2C外设 */
  result =
      Cy_SCB_I2C_Init(CYBSP_I2C_CONTROLLER_HW, &CYBSP_I2C_CONTROLLER_config,
                      &i2c_controller_context);
  if (CY_RSLT_SUCCESS != result) {
    CY_ASSERT(0);
  }
  // 使能I2C
  Cy_SCB_I2C_Enable(CYBSP_I2C_CONTROLLER_HW);

  /* 把底层SCB I2C封装成MTB HAL标准I2C对象 */
  result = mtb_hal_i2c_setup(&CYBSP_I2C_CONTROLLER_hal_obj,
                             &CYBSP_I2C_CONTROLLER_hal_config,
                             &i2c_controller_context, NULL);
  if (CY_RSLT_SUCCESS != result) {
    CY_ASSERT(0);
  }

  /* 初始化SHT40温湿度传感器 */
  result =
      mtb_sht4x_init(&CYBSP_I2C_CONTROLLER_hal_obj, MTB_SHT40_ADDRESS_DEFAULT);
  if (CY_RSLT_SUCCESS != result) {
    CY_ASSERT(0);
  }

  /* 初始化DPS368气压传感器 */
  result = mtb_xensiv_dps3xx_init_i2c(&pressure_sensor,
                                      &CYBSP_I2C_CONTROLLER_hal_obj,
                                      XENSIV_DPS3XX_I2C_ADDR_DEFAULT);
  if (CY_RSLT_SUCCESS != result) {
    CY_ASSERT(0);
  }

  for (;;) {
    // SHT40 数据(高精度测量模式)
    result = mtb_sht4x_measure_high_precision(&CYBSP_I2C_CONTROLLER_hal_obj,
                                              &temp_sht_milli, &humidity_milli);
    // DPS368 数据
    xensiv_dps3xx_read(&pressure_sensor, &pressure, NULL);

    // 串口打印
    if (CY_RSLT_SUCCESS == result) {
      printf("==== Sensor Data ====\r\n");
      // 原始值除以1000,换算成常规摄氏度、相对湿度
      printf("SHT40: Temp = %.2f ℃  RH = %.2f %%RH\r\n",
             (float)temp_sht_milli / 1000.0f, (float)humidity_milli / 1000.0f);
      printf("DPS368: Pressure = %.2f hPa \r\n", pressure);
    }

    // 延时1秒
    Cy_SysLib_Delay(1000);
  }
}


四、程序烧录

1、连接设备至电脑端;

连接至开发板的J1 USB口(KitProg3)

2、选择Application页面的 Program 进行程序烧录;

Build:增量编译

Rebuild:重新编译

Clean:清空编译内容

Erase:擦除 Flash

Program:编译并烧录程序到开发板中

image-20261101213941438

1.png


五、效果演示

image-20261104221856459

179.png




共1条 1/1 1 跳转至页

回复

匿名不能发帖!请先 [ 登陆 注册 ]