十合一空气质量传感器说明书插图1

一、通信协议概述

1. 默认通信参数

  • 波特率9600
  • 数据位8
  • 校验位:无
  • 停止位1(即 9600/8/N/1
  • 默认设备地址0x01
  • 响应时间:< 100ms

2. CRC 校验

  • 算法:CRC-16/Modbus(多项式 0x8005
  • 校验码格式:2 字节,高位在前(如 CRC_H CRC_L)。
  • 计算工具:参考 CRCTool 或规格书第 IX 章代码。

二、协议功能详解

1. 读取设备地址和固件版本

功能:获取当前设备地址和固件版本号。

请求格式(主机→传感器
字节位置数据说明
00xFE广播地址(所有设备响应)
10x11功能码(读取地址)
2-50x00固定填充
6-7CRCCRC 校验码

示例命令

FE 11 00 00 00 01 28 06
响应格式(传感器→主机)
字节位置数据说明
00x01设备地址
10x11功能码
20x02数据长度(2 字节)
30x12固件版本(如 0x12=V1.2
40x01当前地址
5-6CRCCRC 校验码

示例响应

01 11 02 12 01 70 5C


解析

  • 固件版本:V1.2
  • 设备地址:0x01

2. 修改设备地址

功能:更改设备 Modbus 地址(范围 1~247)。

请求格式(主机→传感器)
字节位置数据说明
0当前地址原地址(如 0x01
10x06功能码(修改地址)
2-40x00固定填充
5新地址目标地址(如 0x02
6-7CRCCRC 校验码

示例命令(修改地址为 0x02):

01 06 00 00 00 02 08 0B
响应格式(传感器→主机)

与请求格式一致,返回修改后的地址确认。

示例响应

01 06 00 00 00 02 08 0B


说明:响应数据与请求相同表示修改成功。

3. 读取传感器数据

功能:读取指定寄存器的传感器数据(支持单次读取多个传感器)。

请求格式(主机→传感器)
字节位置数据说明
0设备地址0x01
10x03功能码(读取数据)
2-3起始地址寄存器起始地址(高位在前)
4-5寄存器数量需读取的寄存器数量
6-7CRCCRC 校验码

示例命令(读取全部 11 个传感器数据):

01 03 00 00 00 0B C5 CD
响应格式(传感器→主机)
字节位置数据说明
0设备地址0x01
10x03功能码
2数据长度字节数(寄存器数量 × 2)
3~N传感器数据每个寄存器 2 字节(高位在前)
N+1~N+2CRCCRC 校验码

示例响应(部分数据):

01 03 16 00 96 00 64 00 32 00 30 00 28 00 1E 01 2C 00 0A 00 14 70 5C


解析

  • 00 96 → eCO₂ = 150 ppm
  • 00 64 → TVOC = 100 ppb
  • 00 32 → CH₂O = 50 μg/m³
  • 温湿度数据
  • 湿度:0x012C → 300 → 300/100 = 30.0%RH
  • 温度:0x000A → 10 → 10/100 = 0.10℃

4. 系统参数配置(高级功能)

4.1 读取/设置波特率

寄存器地址0x0103(波特率代码见附录表)。

读取波特率请求

01 03 01 03 00 01 CRC


设置波特率请求(设为 115200):

01 06 01 03 00 07 CRC
4.2 校准传感器数据

寄存器地址

  • 温度校准:0x011D
  • 湿度校准:0x011C

示例命令(温度校准 +2.5℃):

01 06 01 1D 00 FA 98 73


说明

  • 00 FA → 250(即 250/100 = 2.5℃)
  • 负值需转换为补码(如 0xFF9C → -100 → -1.00℃)。

三、数据解析方法

1. 计算公式

传感器类型公式示例
eCO₂CO₂ = (CO₂_H << 8) + CO₂_L0x0096 → 150 ppm
温度温度 = 有符号值 / 1000xFF9C → -100 → -1.00℃
光照度Lux = (Lux_H << 8) + Lux_L0x01F4 → 500 Lux

2. 有符号数处理

  • 方法 1:直接转为有符号整数(如 0xFF9C → -100)。
  • 方法 2:若值 > 32767,则 真实值 = (原始值 - 65536) / 100

四、注意事项

  1. 预热时间:VOC 模块需预热 ≥3 分钟,其他传感器上电即用。
  2. 安装要求
  • 安装高度 ≥15cm,避免地面尘埃污染。
  • 避免高粉尘(>300 μg/m³)、油烟或高湿度环境。
  1. 校准警告
  • 高级功能需谨慎操作,误修改可能导致数据异常。
  • 校准值需按实际环境调整,建议记录出厂默认值。
  1. CRC 校验:所有命令必须包含正确 CRC,否则设备无响应。

五、附录

1. 传感器寄存器地址表

寄存器地址传感器类型数据格式
0x0000eCO₂2 字节无符号整数(ppm)
0x0001TVOC2 字节无符号整数(ppb)
0x0002CH₂O2 字节无符号整数(μg/m³)
0x0003PM2.52 字节无符号整数(μg/m³)
0x0004湿度2 字节(真实值 × 100)
0x0005温度2 字节(真实值 × 100)
0x0006PM102 字节无符号整数(μg/m³)
0x0007PM1.02 字节无符号整数(μg/m³)
0x0008光照度2 字节无符号整数(Lux)
0x0009MCU 温度2 字节(真实值 × 100)
0x000A噪声2 字节无符号整数(dB)

2. 波特率代码表

代码波特率
01200
12400
24800
39600
419200
538400
657600
7115200

3. CRC 计算代码(C 语言示例)

uint16_t CRC16_Check(const uint8_t *pushMsg, uint8_t usDataLen) {
    uint8_t uchCRCHi = 0xFF, uchCRCLo = 0xFF;
    uint8_t uIndex;
    while (usDataLen--) {
        uIndex = uchCRCLo ^ *pushMsg++;
        uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex];
        uchCRCHi = auchCRCLo[uIndex];
    }
    return (uint16_t)(uchCRCHi << 8 | uchCRCLo);
}

相关产品

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

cloud@modbus.cn

QQ
微信