CU606 LoRaWAN 空气质量监测仪用户手册
设备信息:型号 CU606,devEui ffffff100004e982,网关 IP 192.168.31.193,Modbus Slave ID 4,BACnet Device ID 103
1 协议概览
CU606 在 Fport 210 上报 CO₂、PM2.5、TVOC、甲醛、温度、湿度、大气压及信号质量。
1.1 上行数据协议(Fport 210)
载荷格式(Fport 210):
| 字节位置 | 字段 | 说明 |
|---|---|---|
| 0 | 保留 | 固定 0x00(协议版本) |
| 1 … N | TLV 对 | [Type(1 B)][Value(N B)] … 循环至结束 |
每个 Type 字节决定字段名称和后续 value 字节数:
| Type | Value字节数 | 字段名称 | 编码方式 | 换算 | 单位 | 说明 |
|---|---|---|---|---|---|---|
0x01 |
1 | model |
uint8 | — | — | 型号码 = 0x4B |
0x52 |
2 | pm25 |
uint16 BE | — | μg/m³ | PM2.5 浓度 |
0x9F |
2 | formaldehyde |
uint16 BE | — | μg/m³ | 甲醛浓度 |
0x49 |
2 | co2 |
uint16 BE | — | ppm | CO₂ 浓度 |
0xA0 |
2 | tvoc |
uint16 BE | — | μg/m³ | TVOC 浓度 |
0x10 |
2 | temperature |
int16 BE | ÷100 | °C | 如 0x09F6=2550 → 25.50 °C |
0x12 |
2 | humidity |
uint16 BE | ÷10 | %RH | 如 0x023F=575 → 57.5 %RH |
0x57 |
4 | atmosphericPressure |
uint32 BE | — | Pa | 如 101325 Pa |
0x04 |
2 | batteryVoltage |
uint16 BE | ÷1000 | V | mV 原始值 ÷1000 = V |
JavaScript 解码示例:
// CU606 Air Quality Monitor — Fport 210 uplink decoder
function decodeUplink(bytes) {
var i = 1, r = {};
function u16(b,o){ return (b[o]<<8)|b[o+1]; }
function i16(b,o){ var v=u16(b,o); return v>32767?v-65536:v; }
function u32(b,o){ return ((b[o]<<24)|(b[o+1]<<16)|(b[o+2]<<8)|b[o+3])>>>0; }
while (i < bytes.length) {
var t = bytes[i++];
switch (t) {
case 0x01: r.model = bytes[i++]; break;
case 0x04: r.batteryVoltage = u16(bytes,i)/1000; i+=2; break;
case 0x10: r.temperature = i16(bytes,i)/100; i+=2; break; // °C
case 0x12: r.humidity = u16(bytes,i)/10; i+=2; break; // %RH
case 0x49: r.co2 = u16(bytes,i); i+=2; break; // ppm
case 0x52: r.pm25 = u16(bytes,i); i+=2; break; // μg/m³
case 0x57: r.atmosphericPressure = u32(bytes,i); i+=4; break; // Pa
case 0x9F: r.formaldehyde = u16(bytes,i); i+=2; break; // μg/m³
case 0xA0: r.tvoc = u16(bytes,i); i+=2; break; // μg/m³
default: i++; break;
}
}
return r;
}
// Example payload (hex): 00 01 4B 52 00 12 49 01 90 A0 00 08 9F 00 05 10 09 F6 12 02 3F 57 00 01 86 A5
// → { model:75, pm25:18, co2:400, tvoc:8, formaldehyde:5, temperature:25.5, humidity:57.5, atmosphericPressure:100005 }
脚本下载:LPP.zip
版本说明: LPP.js 基于 ChirpStack v4.17.0 开发和测试。不同版本的 ChirpStack JavaScript 编解码器 API 可能存在差异——如果您使用的是其他版本,请在部署前检查并根据需要调整脚本。
2 获取上行数据
⚠️ 以下示例中的 IP 地址(192.168.31.205/192.168.31.193)、ChirpStack API token、Slave ID、BACnet Device ID 及 devEui 均为演示示例,请替换为实际网关 IP、ChirpStack API token 及设备参数。
2.1 ChirpStack MQTT 订阅
订阅 MQTT topic 以接收实时上行数据:
应用 ID —3ef9e6b9-ec54-4eda-86b8-a5fb46899f39是网关内置的出厂默认 ChirpStack 应用。
如果您创建了其他应用,请替换为实际的应用 ID。
网关 IP —192.168.31.193为示例网关 WAN 口 IP,
请替换为您实际的网关 IP 地址。
设备 EUI —ffffff100004e982为示例设备 EUI,
请替换为网关设备列表中显示的实际 EUI;
也可用+通配符一次订阅所有设备的数据。
# 订阅指定设备
mosquitto_sub -h 192.168.31.193 -p 1883 \
-u gateway -P mqtt88888888 \
-t "application/3ef9e6b9-ec54-4eda-86b8-a5fb46899f39/device/ffffff100004e982/event/up"
# 订阅所有应用下所有设备(通配符)
mosquitto_sub -h 192.168.31.193 -p 1883 \
-u gateway -P mqtt88888888 \
-t "application/+/device/+/event/up"
上行数据载荷示例(JSON):
{
"devEui": "ffffff100004e982",
"fPort": 210,
"object": {
... (已解码的 LPP 字段)
}
}
2.2 IoT Hub HTTP API
发送 GET 请求获取设备最新状态:
curl -s "http://192.168.31.193:8070/api/getStatus?devEui=ffffff100004e982"
{
"success": true,
"result": {
"temperature": 26.6,
"humidity": 53.5,
"co2": 642,
"pm25": 13,
"formaldehyde": 6,
"tvoc": 810,
"model": "CU606"
}
}
2.3 IoT Hub Modbus TCP — Python 脚本
脚本下载:modbus_tcp_read.py
使用 modbus_tcp_read.py 一次性读取所有寄存器:
python3 modbus_tcp_read.py --ip 192.168.31.193 --port 502 \
--slaveId 4 --sensorType CU606
Target: 192.168.31.193:502 | Slave ID: 4 | Sensor: CU606
================================================================================================================================================================
Attribute | Addr | FC | Format | Order | Cnt | Scale | Raw(Hex) | Value | Unit
----------------------------------------------------------------------------------------------------------------------------------------------------------------
online | 6 | 03 | Bit/Bool | Big(ABCD) | 1 | x1 | 0001 | true | none
lastOnlineTime | 7 | 03 | UnixTime | Big(ABCD) | 2 | x1 | 69CC CE73 | 1775029875 | second
temperature | 9 | 03 | Int16(S) | Big(ABCD) | 1 | /100 | 0A64 | 26.6 | celsius
humidity | 10 | 03 | Int16(S) | Big(ABCD) | 1 | /100 | 14E6 | 53.5 | percent
batteryVoltage | 11 | 03 | Int16(S) | Big(ABCD) | 1 | /100 | 0000 | 0.00 | volt
batteryVoltageState | 12 | 03 | Int16 | Big(ABCD) | 1 | x1 | 0000 | 0.0 | none
co2 | 13 | 03 | Int16 | Big(ABCD) | 1 | x1 | 0282 | 642.0 | none
pm25 | 14 | 03 | Int16 | Big(ABCD) | 1 | x1 | 000D | 13.0 | none
formaldehyde | 15 | 03 | Int16 | Big(ABCD) | 1 | x1 | 0006 | 6.0 | none
tvoc | 16 | 03 | Int16 | Big(ABCD) | 1 | x1 | 032A | 810.0 | none
model | 41 | 03 | String(24B) | ASCII | 12 | x1 | 4355 3630 3600 0000 ... | CU606 | none
rssi | 53 | 03 | Int16 | Big(ABCD) | 1 | x1 | FFBF | -65.0 | none
... (13 fields total)
2.4 IoT Hub Modbus TCP — Modbus Poll
工具下载:Modbus Poll 9.5.0.1507.zip
- 打开 Modbus Poll,连接
192.168.31.193:502,Slave ID4 - 菜单 Setup → Read/Write Definition,功能码选 FC03,起始地址
6,长度49 - 点击 OK — 数值实时刷新
2.5 IoT Hub BACnet BIP — Python 脚本
脚本下载:bacnet_read.py
使用 bacnet_read.py 读取所有 BACnet 对象:
python3 bacnet_read.py --ip 192.168.31.193 --port 47808 --id 103
Target: 192.168.31.193:47808 | BACnet ID: 103 | Scan: 10300-10399
------------------------------------------------------------
Type | Instance | Offset | Value | Object Name
------------------------------------------------------------
BI | 10302 | 2 | active | ffffff100004e982.online
AI | 10303 | 3 | 1775030016.00 | ffffff100004e982.lastOnlineTime
AI | 10304 | 4 | 26.60 | ffffff100004e982.temperature
AI | 10305 | 5 | 53.10 | ffffff100004e982.humidity
AI | 10306 | 6 | 0.00 | ffffff100004e982.batteryVoltage
AI | 10307 | 7 | 0.00 | ffffff100004e982.batteryVoltageState
AI | 10308 | 8 | 643.00 | ffffff100004e982.co2
AI | 10309 | 9 | 12.00 | ffffff100004e982.pm25
AI | 10310 | 10 | 6.00 | ffffff100004e982.formaldehyde
AI | 10311 | 11 | 838.00 | ffffff100004e982.tvoc
CV | 10315 | 15 | CU606 | ffffff100004e982.model
AI | 10316 | 16 | -63.00 | ffffff100004e982.rssi
... (13 objects total)
2.6 IoT Hub BACnet BIP — YABE
工具下载:SetupYabe_v2.1.0.exe
- 打开 YABE,连接
192.168.31.193:47808 - 在设备树中展开设备 103
- 浏览 AI/BI/AV/BV/CV 对象,查看实时数值