切换深色模式
S21 温湿度 · 协议与平台解析
本机适用范围
核对机身型号、设备类型 01(HEX)及固件版本;同一类型可能存在旧产品别名,不只凭列表文字判断。
业务短报文与测量读取分别核对
本机温度、湿度的业务短报文使用整数 ÷100。修正后的 AWTools 按此规则更新实时卡片;测量读取返回的 float32 已是物理量,不再除以 100。旧安装版可能仍按 ÷10 显示短报文,出现数值放大时先更新上位机,不要据此修改 K/B;平台按本机解析器接入,仍需与参考条件核对。
本章供平台接入使用。FPort 使用十进制,报文字节使用十六进制;偏移从 0 开始,所有多字节字段高字节在前。以下为构造教学数据,不是现场抓包。
1. 先按端口和长度区分
业务载荷为 7 字节,不含 CE DE 配置帧头尾。FPort 1、2、4 使用相同业务结构。启动 FPort 215 是 23 字节,不能按业务载荷解析;参数回复 FPort 102 / 103 另行处理。
| 偏移 | 长度 | 字段 | 编码 |
|---|---|---|---|
| 0 | 1 | 类型 | 固定 01 |
| 1 | 1 | 报警标志 | 0 正常,1 报警,不含报警原因位图 |
| 2 | 2 | 温度 | int16 补码,大端;原始值 ÷100 得 ℃ |
| 4 | 2 | 湿度 | uint16,大端;原始值 ÷100 得百分数 |
| 6 | 1 | 电量等级 | 0~4 |
业务示例
text
01 00 09 C4 13 88 04正常,25.00 ℃、50.00% 湿度,等级 4。
温度为负数时按补码解码,例如 FD DA = −550,即 −5.50 ℃。
2. 电量字段
电量是 0~4 等级。保留原始等级或显示格数,不统一换算成电压或精确剩余百分比,也不据此保证续航。本机按电源采样分档,不能套用带屏版的电池电压边界。
3. 启动参数包 · FPort 215
共 23 字节,无 CE DE 头尾。
| 偏移 | 长度 | 内容 |
|---|---|---|
| 0 | 1 | 本机类型 01 |
| 1 | 1 | 配置协议版本,以实收为准 |
| 2 / 3 | 各 1 | 固件主版本 / 次版本,分别解释 |
| 4 | 3 | 发送周期,uint24 秒 |
| 7 | 3 | 采集周期,uint24 秒 |
| 10 / 12 / 14 | 每项 2 | 温度上限 / 下限 / 变化阈值,int16 ÷100 |
| 16 / 18 / 20 | 每项 2 | 湿度上限 / 下限 / 变化阈值,int16 ÷100 |
| 22 | 1 | 电量等级 |
主动启动包使用 FPort 215。读取命令 02 08 00 返回相同布局的裸参数载荷,但走 FPort 102,不带 CE DE 头尾;收到这种读取结果不能认定设备刚刚重启。版本、周期应与本机读取结果一致;升级后不根据旧示例硬编码版本号。FPort 214 的单字节复位信息另存,不从这一字节推断测量或报警。
4. 本地及无线配置帧
text
CE DE | 命令及参数 | XOR | EC EDXOR 为命令及参数各字节异或,不含头尾,不是 Modbus CRC16。读取使用 02 命令号 参数,写入使用 命令号 参数内容;float32 为 IEEE 754 大端,不与短业务包的整数混用。
| 命令(HEX) | 参数布局 | 用途与边界 |
|---|---|---|
| 08 | 通过读取入口访问,无参数设置 | 返回本机启动参数布局,裸载荷走读取回复端口 |
| 50 | 类型 01 + 发送 uint24 + 采集 uint24,共 7 字节 | 单位秒,采集不大于发送 |
| 51 | 类型 01 + 上限 float32 + 下限 float32,共 9 字节 | 配置值用浮点数,不照抄无线整数编码 |
| 52 | 类型 01 + K float32 + B float32,共 9 字节 | 原始值 × K + B |
| 53 | 类型 01 + 变化阈值 float32,共 5 字节 | 相邻采集绝对差 |
| 54 | 测量读取入口 | 返回 float32;不当作参数写入命令 |
两个通道的 51~53 命令按温度、湿度顺序处理;类型字节始终为本机类型,不是通道编号。同一帧设置两个通道时依次放两条同类命令,先温度后湿度。读取按同一顺序返回,不用 00/01 替换类型。
| 操作 | 完整帧示例 |
|---|---|
| 本地协议唤醒 | CE DE 02 00 00 02 EC ED |
| 读取周期 | CE DE 02 50 01 53 EC ED |
| 读取启动参数 | CE DE 02 08 00 0A EC ED |
| 读取测量值 | CE DE 02 54 01 57 EC ED |
本地串口/蓝牙写入前需协议唤醒,读取无需先唤醒;AWTools 连接读取流程会处理配置会话。无线设置允许从当前接收窗口处理,成功后按配置会话规则运行;参数设置帧成功处理后会自动保存到设备,不另设一条“保存”指令。不能仅凭发出命令判断成功,需核对回复,必要时重启后回读。批量设置中后续命令失败,前面已成功的字段可能仍会保存,不是全有或全无。日常通过表单 保存修改完成操作,再按提示处理重启。
测量读取 54 的回复使用 FF + 长度 0C,后接 两组 54 + 类型 01 + float32 大端值,再加 CE DE、XOR、EC ED。两组按温度、湿度顺序,不用类型字节区分通道。此读取回复不含电量;采集忙碌时可能先返回最近记录值,稍后再读确认。
配置读取/状态推送可能带 FF 长度 批量回复或 56 长度 外层,先拆配置封装。无线业务载荷没有这些头尾。远程下行需项目约定的平台端口和完整帧,避免与业务数据解析混用。
5. 平台解析示例
AWTools 配套的型号脚本见本机解析脚本,打开即可查看完整代码并复制。它与下方专用接入示例的字段和错误处理不同,选择一份接入,不要将两套脚本拼在一起。
下载本机 JavaScript 解析示例,按平台的 decodeUplink({fPort, bytes}) 接口调用。示例按端口、类型和精确长度检查,返回业务状态、主动启动参数、08 读取的参数快照或复位码;常规配置回复返回保留的原始字节,便于另行接入。
- 将平台 Base64 数据先转换为字节数组;不要把 Base64 字符串当 HEX 输入。
- 使用与本机 EUI、固件和数据布局一致的解析器。
- 用本章构造例子检查字段,再用真实平台报文验证。
- 触发、恢复、报警原因及时间含义仍按本机上报规则处理,不仅按 FPort 名称映射报警。
示例用于接入起点,不代替项目平台验证;未知端口、类型、长度、状态值或互相冲突的端口/状态组合返回错误,不补成正常读数。分片的配置回复需先按接入流程收齐,不能逐片当成完整回复。