Environment X6 Sensor 使用教程

产品特性

Environment X6 Sensor 基于德国 EC Sense 固态聚合物电化学技术,采用多电极集成结构与固态电解质体系,通过气体在工作电极表面的电化学反应输出电流信号,实现对目标气体浓度的高灵敏度检测。相比传统的气体传感器,固态聚合物设计具备无漏液、无中毒、基本无漂移、长寿命等优势。

应用场景

  • 智能家居
  • 环境空气质量监测
  • 车载空气净化器
  • 手持空气质量检测仪
  • 工厂车间新风系统

工作原理

固态聚合物电化学传感器内部采用经典三电极体系结构(工作电极 WE、参比电极 RE、对电极 CE),多层印刷式工艺技术,通过单一电极多层催化活性位点设计、扩散调控层结构及智能信号解耦算法,实现了对多种气体的并行检测与识别。

产品参数

Environment X6 Sensor
供电电压5V逻辑电压3.3V
通信接口UART通信波特率9600 bps
测量范围
  • HCHO: 0-1 ppm
  • TVOC: 0-5 ppm
  • CO: 0-100 ppm
分辨率
  • HCHO: 0.001 ppm(有效检出值:0.015 ppm)
  • TVOC: 0.001 ppm(有效检出值:0.050 ppm)
  • CO: 0.001 ppm(有效检出值:<8 ppm)
精度误差
  • HCHO: 0-0.15 ppm(±0.02 ppm);0.16 ppm+(< ±2% FS)
  • TVOC: 0-0.2 ppm(±0.05 ppm);0.2 ppm+(< ±2% FS)
  • CO: 0-8 ppm(±2.5 ppm);8 ppm+(< ±1% FS)
响应时间
  • HCHO: T10 <5 s;T90 <90 s
  • TVOC: T10 <3 s;T90 <120 s
  • CO: T10 <3 s;T90 <15 s
产品尺寸23 × 25.5 × 9.5 mm固定孔径2.0 mm
工作电流6.5 mA工作温度-40 ℃ ~ +55 ℃
工作湿度>15%RH使用寿命10 年
  • 传感器的IO电平为3.3V,如果使用5V的IO电平,需要经过电平转换,否则传感器会损坏

引脚说明

引脚标识管脚描述
1VCC5V 电源正极
2GND地址引脚
3RXDUART 输入
4TXDUART 输出

协议解析

点击展开

UART 通信流程

  • 串口默认配置为:数据位 8bit,停止位 1bit,无奇偶校验,无流控制,默认波特率 9600
  • 协议由 指令头、Data(数据)和 0-add8(校验和)组成
  • 说明:协议包遵循大端模式原则,即高字节在前,低字节在后

指令介绍

通用说明

  • 校验和算法:0-add8(将报文所有字节相加,取低 8 位后按位取反再加 1)
  • 字节序:大端模式(高字节在前,低字节在后)

参考信息

气体浓度单位表

编码单位说明
0x00IAQ室内空气质量指数
0x02ppm百万分比浓度

IAQ 数值等级说明(遵循 EPA 标准):

范围等级
0–50良好
51–100中等
101–150对敏感人群不健康
151–200不健康
201–300非常不健康
301–500危险

传感器类型编号表

气体类型编码
IAQ0x33
TVOC0x18
HCHO0x17
CO0x19

查询当前浓度(0x70)

读取所有气体的实时浓度、温度和湿度。

发送(Tx)

指令头校验和
Byte0Byte1
700-add8

返回(Rx)

指令头IAQ 数据TVOC 数据HCHO 数据CO 数据温度数据湿度数据校验值
Byte0Byte1-Byte4Byte5-Byte8Byte9-Byte12Byte13-Byte16Byte17-Byte18Byte19-Byte20Byte21
7042 30 00 003D 35 64 F03D 53 D2 5B3D 08 19 550A C827 0FE0

示例解析

发送: 0x70 0x90
│ └── 校验和
└── 指令头

返回: 0x70 0x42300000 0x3D3564F0 0x3D53D25B 0x3D081955 0x0AC8 0x270F 0xE0
│ │ │ │ │ │ │ └── 校验和
│ │ │ │ │ │ └── 湿度: 0x270F = 9999 → 99.99% RH(小数位2位)
│ │ │ │ │ └── 温度: 0x0AC8 = 2760 → 27.60 ℃(小数位2位)
│ │ │ │ └── CO: IEEE754 浮点 → 0.033 ppm
│ │ │ └── HCHO: IEEE754 浮点 → 0.052 ppm
│ │ └── TVOC: IEEE754 浮点 → 0.044 ppm
│ └── IAQ: IEEE754 浮点 → 44.000
└── 指令头

读取传感器参数(0x72)

查询指定气体通道的检测范围和浓度单位。

发送(Tx)

指令头气体编号校验和
Byte0Byte1Byte2
72000-add8

气体编号对照:0x00 = IAQ、0x01 = TVOC、0x02 = HCHO、0x03 = CO

返回(Rx)

指令头气体编号气体名称量程单位校验和
Byte0Byte1Byte2Byte3-Byte4Byte5Byte6
72001903 E80287

示例解析

发送: 0x72 0x00 0x8D
│ │ └── 校验和
│ └── 气体编号: IAQ
└── 指令头

返回: 0x72 0x00 0x19 0x03E8 0x02 0x87
│ │ │ │ │ └── 校验和
│ │ │ │ └── 浓度单位: 0x02 = ppm(参见气体浓度单位表)
│ │ │ └── 量程: 0x03E8 = 500
│ │ └── 气体名称: 0x19 = CO(参见传感器类型编号表)
│ └── 气体编号: IAQ
└── 指令头

读取 LED 状态(0x74)

查询运行指示灯的当前状态。

发送(Tx)

指令头校验和
Byte0Byte1
740-add8

返回(Rx)

指令头LED 状态校验值
Byte0Byte1Byte2
74018B

示例解析

发送: 0x74 0x8C
│ └── 校验和
└── 指令头

返回: 0x74 0x01 0x8B
│ │ └── 校验和
│ └── LED 状态: 0x01 = 闪烁(0x00 为关闭,其他值为闪烁)
└── 指令头

设置运行灯状态(0x56)

控制运行指示灯的开关。

发送(Tx)

指令头LED 控制校验和
Byte0Byte1Byte2
56000-add8

LED 控制值:0x00 = 关闭,0x01 = 开启

返回(Rx)

指令头保留返回值校验值
Byte0Byte1Byte2-Byte3Byte4
56004F 4B10

示例解析

发送: 0x56 0x00 0xAA
│ │ └── 校验和
│ └── LED 控制: 关闭运行灯
└── 指令头

返回: 0x56 0x00 0x4F4B 0x10
│ │ │ └── 校验和
│ │ └── 返回值: "OK"(设置成功)
│ └── 保留
└── 指令头

进入休眠模式(0x54)

使传感器进入低功耗休眠状态。

发送(Tx)

指令头休眠命令校验和
Byte0Byte1-Byte5Byte6
5473 6C 65 65 70(ASCII: sleep)0-add8

返回(Rx)

指令头保留返回值校验值
Byte0Byte1Byte2-Byte3Byte4
54004F 4B12

示例解析

发送: 0x54 0x73 0x6C 0x65 0x65 0x70 0x93
│ │ └── 校验和
│ └── ASCII: "sleep"
└── 指令头

返回: 0x54 0x00 0x4F4B 0x12
│ │ │ └── 校验和
│ │ └── 返回值: "OK"(执行成功)
│ └── 保留
└── 指令头

退出休眠模式(0x55)

唤醒传感器,恢复正常工作状态。

发送(Tx)

指令头唤醒命令校验和
Byte0Byte1-Byte5Byte6
5561 77 61 6B 65(ASCII: awake)0-add8

返回(Rx)

指令头保留返回值校验值
Byte0Byte1Byte2-Byte3Byte4
55004F 4B11

示例解析

发送: 0x55 0x61 0x77 0x61 0x6B 0x65 0xA2
│ │ └── 校验和
│ └── ASCII: "awake"
└── 指令头

返回: 0x55 0x00 0x4F4B 0x11
│ │ │ └── 校验和
│ │ └── 返回值: "OK"(执行成功)
│ └── 保留
└── 指令头

获取传感器序列号(0x71)

读取传感器的 6 字节唯一序列号。

发送(Tx)

指令头校验和
Byte0Byte1
710-add8

返回(Rx)

指令头Sensor SN校验值
Byte0Byte1-Byte6Byte7
7112 34 56 78 91 23C7

示例解析

发送: 0x71 0x8F
│ └── 校验和
└── 指令头

返回: 0x71 0x12 0x34 0x56 0x78 0x91 0x23 0xC7
│ │ └── 校验和
│ └── 传感器序列号: 123456789123
└── 指令头

获取软件版本号(0x73)

读取传感器的固件版本信息。

发送(Tx)

指令头校验和
Byte0Byte1
730-add8

返回(Rx)

指令头Firmware Version校验值
Byte0Byte1-Byte19Byte20
7369 4E 6F 73 65 58 36 32 30 32 35 31 31 31 32 31 34 33 39A2

示例解析

发送: 0x73 0x8D
│ └── 校验和
└── 指令头

返回: 0x73 0x694E6F736558363230323531313132313433390 0xA2
│ │ └── 校验和
│ └── ASCII: "iNoseX6202511121439"(固件版本号)
└── 指令头

API简介

点击展开
  • environment_x6_init():Environment X6 Sensor初始化
  • environment_x6_get_concentration():获取实时浓度值
  • environment_x6_get_sensor_param():获取传感器参数,包括检测范围跟单位
  • environment_x6_get_led():获取LED的状态,开还是关
  • environment_x6_set_led():设置LED的状态
  • environment_x6_sleep():使传感器进入休眠
  • environment_x6_wakeup():唤醒传感器
  • environment_x6_get_serial():获取SN码
  • environment_x6_get_version():获取版本号

快速测试

  • 测试软件 串口调试助手 搭配 串口调试助手,主要作用为:快速测试

  • 测试准备

    • Windows电脑
    • USB TO TTL (B) 1PCS
    • Environment X6 Sensor 1PCS
    • 配套线材
  • 硬件连接

    • 参考下图进行连接


  • 开始测试

    • 把串口连接电脑 USB 口
      • 使用串口调试助手(SSCOM),选择好对应的端口号,波特率选9600,打开串口,并将校验位选择0-add8
      • 以十六进制发送命令:70,则可读取数据:
  • ①发送查询命令

  • ②获取实时数据



Raspberry Pi 使用

本章节包含以下部分,请按需阅读:

配置开发环境

1. 安装和配置

  • 关于树莓派系统安装与使用可以参考这个链接
  • 成功开机后,进行树莓派环境配置

2. 下载程序

sudo apt install gpiod libgpiod-dev
cd ~
git clone https://gitee.com/waveshare/Environment-X6-Sensor.git
cd Environment-X6-Sensor/examples/raspberrypi

3. 打开树莓派 UART

  • 在树莓派终端输入命令:sudo raspi-config nonint do_serial 2
  • 再弹出的窗口中第一个选择NO,第二个选择YES,最后选择OK


     

示例程序

硬件连接

参考下图进行连接


运行C程序

cd ~/environment-x6-sensor/examples/raspberrypi/c/
make
./main

运行Python程序

cd ~/environment-x6-sensor/examples/raspberrypi/python/example
python main.py


SP32S3 使用

本章节包含以下部分,请按需阅读:

配置开发环境

1. 安装和配置

示例程序

硬件连接

参考下图进行连接


运行Arduino esp32程序

  • 进入到Environment-X6-Sensor\examples\esp32s3\arduino\environment_x6_sensor_test,双击environment_x6_sensor_test.ino文件
  • 选择开发板:

  • 选择ESP32S3的端口,然后进行编译上传
  • 上传完成后,打开串口监测器,就会输出相关的信息。

运行ESP-IDF程序

  • 进入到Environment-X6-Sensor\examples\esp32s3\esp-idf,通过vs code打开此路径
  • 选择开发板:

  • 选择ESP32S3的端口,然后进行编译上传
  • 上传完成后,打开串口监测器,就会输出相关的信息。

运行Micropython程序

  • 进入到Environment-X6-Sensor\examples\esp32s3\micropython,双击environment_x6_sensor_test.py文件
  • 设置芯片型号为esp32,选择好对应的端口:

  • 选择ESP32S3的端口,然后运行程序
  • Shell中就会输出相关的信息。


Raspberry Pi Pico 使用

本章节包含以下部分,请按需阅读:

配置开发环境

1. 安装和配置

示例程序

硬件连接

参考下图进行连接


运行 Arduino pico 程序

  • 进入到Environment-X6-Sensor\examples\pico\arduino\environment_x6_sensor_test,双击 environment_x6_sensor_test.ino 打开工程

  • 选择好芯片型号跟端口


  • 上传完成后,打开串口监测器,就会输出相关的信息

运行 Micropython 程序

  • 先给 Raspberrypi Pico 刷入 micropython 固件
  • 进入到 Environment-X6-Sensor\examples\pico\micropython,双击 environment_x6_sensor_test.py 文件
  • 选择开发板

  • 选择 Raspberrypi pico 的端口,然后运行程序
  • Shell 中就会输出相关的信息。


Arduino 使用

本章节包含以下部分,请按需阅读:

配置开发环境

1. 安装和配置

  • 关于Arduino的环境搭建跟基本使用,请参考这个R4链接、R3是默认安装
  • 环境搭建完成后,即可连接传感器,下载示例程序

2. 硬件配置

  • Arduino开发板的IO电平必须为3.3V,如果使用5V的IO电平,需要经过电平转换,否则传感器会损坏
  • 使用waveshare R3/R4需要将以下的跳线帽设置成3.3V,才能使用
图片说明
Arduino UNO R3Arduino UNO R3
Arduino UNO R4Arduino UNO R4
Arduino UNO R4 WIFIArduino UNO R4 WIFI

示例程序

硬件连接

参考下图进行连接

图片说明
Arduino UNO R3
Arduino UNO R3
Arduino UNO R4
Arduino UNO R4

运行程序

  • 进入到Environment-X6-Sensor\examples\arduino\environment_x6_sensor_test,双击environment_x6_sensor_test.ino文件

  • 选择开发板:

    图片说明
    Arduino UNO R3
    Arduino UNO R4Arduino UNO R4
  • 选择开发板的端口,然后进行编译上传

  • 上传完成后,打开串口监测器,就会输出相关的信息。


效果展示

  • 默认输出实时浓度,如果需要使用其他示例,将不同示例值设置成1即可:

  • Arduino Arduino

  • Micropython Micropython

  • Raspberry Pi Raspberry Pi



相关资料

示例程序

软件


技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841