xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
SGP30 空气质量示例

平台 目标 板子
lm620 r4f4 e837n_v01

演示通过 I2C 总线与 SGP30 空气质量传感器通信,读取 CO2 等效浓度与 tVOC 浓度。采用单文件自实现,不依赖第三方驱动库。

预期行为

**传感器初始化**:

  • 配置 I2C 引脚复用(SCL、SDA),以 100 kHz 速度初始化 I2C 主机
  • 读取特性集版本(命令 0x202F )校验产品类型,确认 SGP30 在线
  • 初始化空气质量基线(命令 0x2003 )

**周期性测量**:

  • 每 1 秒触发一次空气质量测量(命令 0x2008 ),等待 50 ms 后读取 6 字节数据(含 CRC8 校验)
  • 返回 CO2 等效浓度(ppm)与 tVOC 浓度(ppb),串口输出:
[00000000][i2c_task]: start
[00000000][i2c_task]: SGP30 feature set: 0x0020
[00000000][i2c_task]: iaq_init done
[00001000][i2c_task]: co2_eq: 450 ppm
[00001000][i2c_task]: tvoc: 0 ppb
  • 测量失败时输出:
[00000000][i2c_task]: measurement error

编译和运行

cd examples/peripherals/i2c/sgp30
xt --target lm620/r4f4 --board e837n_v01 fullclean build

下载固件后运行,串口观察空气质量采集日志。

注意事项

  • I2C 引脚(SCL、SDA)复用 AHT20 引脚组,依赖 xt_board(板级配置) 配置,不同板子需确认 XT_BRD_I2C_AHT20_SCL_PIN 等宏映射正确;SGP30 与 AHT20 地址不同(0x58 与 0x38),可挂载于同一总线
  • 此示例需要 SGP30 传感器硬件连接至同一 I2C 总线
  • IAQ 测量须严格每秒触发一次,SGP30 才能输出准确值
  • iaq_init 后前 15 秒输出为固定基线值(CO2=450ppm、tVOC=0ppb),属正常现象
  • DBG_LOG 调试宏默认关闭( DBG_LOG_ENABLE=0 ),开启可输出详细 I2C 通信过程