- 1. 一、KommunikationVereinbarung概述
- 2. 二、VereinbarungFunktion详解
- 3. 三、DatenAnalyse方法
- 4. 四、Aufmerksamkeit
- 5. 五、附录

一、KommunikationVereinbarung概述
1. 默认Kommunikationsparameter
- Porter Rate:
9600 - Datenplatz:
8 - Prüfstand.:无
- Stoppen Sie Platz:
1(即9600/8/N/1) - 默认Geräte Adresse:
0x01 - AntwortZeit:< 100ms
2. CRC-Prüfung
- 算法:CRC-16/Modbus(多项式
0x8005) - PrüfcodeDas Format:2 Bytes,高位在前(如
CRC_H CRC_L)。 - BerechnungWerkzeuge:参考 CRCTool 或规格书Die IX Kapitel代码。
二、VereinbarungFunktion详解
1. LesenGeräte Adresse和固件版本
Funktion:获取gegenwärtigGeräte Adresse和固件版本Nr.。
BitteDas Format(主机→Der Sensor)
| Bytes位置 | Daten | 说明 |
|---|---|---|
| 0 | 0xFE | RundfunkAdresse(所有AusrüstungAntwort) |
| 1 | 0x11 | Funktionscode(LesenAdresse) |
| 2-5 | 0x00 | 固定填充 |
| 6-7 | CRC | CRC-Prüfung码 |
BeispielBefehl:
FE 11 00 00 00 01 28 06
AntwortDas Format(Der Sensor→主机)
| Bytes位置 | Daten | 说明 |
|---|---|---|
| 0 | 0x01 | Geräte Adresse |
| 1 | 0x11 | Funktionscode |
| 2 | 0x02 | DatenLänge(2 Bytes) |
| 3 | 0x12 | 固件版本(如 0x12=V1.2) |
| 4 | 0x01 | gegenwärtigAdresse |
| 5-6 | CRC | CRC-Prüfung码 |
BeispielAntwort:
01 11 02 12 01 70 5C
Analyse:
- 固件版本:
V1.2 - Geräte Adresse:
0x01
2. 修改Geräte Adresse
Funktion:更改Ausrüstung Modbus Adresse(范围 1~247)。
BitteDas Format(主机→Der Sensor)
| Bytes位置 | Daten | 说明 |
|---|---|---|
| 0 | gegenwärtigAdresse | 原Adresse(如 0x01) |
| 1 | 0x06 | Funktionscode(修改Adresse) |
| 2-4 | 0x00 | 固定填充 |
| 5 | 新Adresse | 目标Adresse(如 0x02) |
| 6-7 | CRC | CRC-Prüfung码 |
BeispielBefehl(修改Adresse为 0x02):
01 06 00 00 00 02 08 0B
AntwortDas Format(Der Sensor→主机)
与BitteDas Format一致,返回修改后的AdresseBestätigen。
BeispielAntwort:
01 06 00 00 00 02 08 0B
说明:AntwortDaten与Bitte相同表示修改成功。
3. LesenDer SensorDaten
Funktion:Lesen指定Register.的Der SensorDaten(支持单次Lesen多个Der Sensor)。
BitteDas Format(主机→Der Sensor)
| Bytes位置 | Daten | 说明 |
|---|---|---|
| 0 | Geräte Adresse | 如 0x01 |
| 1 | 0x03 | Funktionscode(Daten lesen) |
| 2-3 | Ausgang Adresse | Register.Ausgang Adresse(高位在前) |
| 4-5 | Anzahl der Register | 需Lesen的Anzahl der Register |
| 6-7 | CRC | CRC-Prüfung码 |
BeispielBefehl(LesenAlles 11 个Der SensorDaten):
01 03 00 00 00 0B C5 CD
AntwortDas Format(Der Sensor→主机)
| Bytes位置 | Daten | 说明 |
|---|---|---|
| 0 | Geräte Adresse | 如 0x01 |
| 1 | 0x03 | Funktionscode |
| 2 | DatenLänge | Anzahl der Bytes(Anzahl der Register × 2) |
| 3~N | Der SensorDaten | 每ein Register. 2 Bytes(高位在前) |
| N+1~N+2 | CRC | CRC-Prüfung码 |
BeispielAntwort(部UnterteilungDaten):
01 03 16 00 96 00 64 00 32 00 30 00 28 00 1E 01 2C 00 0A 00 14 70 5C
Analyse:
00 96→ eCO₂ = 150 ppm00 64→ TVOC = 100 ppb00 32→ CH₂O = 50 μg/m³- Temperatur FeuchtigkeitDaten:
- 湿度:
0x012C→ 300 → 300/100 = 30.0%RH - Temperatur:
0x000A→ 10 → 10/100 = 0.10℃
4. Das SystemParameter配置(高级Funktion)
4.1 Lesen/设置Porter Rate
Register-Adresse:0x0103(Porter Rate代码见附录表)。
LesenPorter RateBitte:
01 03 01 03 00 01 CRC
设置Porter RateBitte(设为 115200):
01 06 01 03 00 07 CRC
4.2 校准Der SensorDaten
Register-Adresse:
- Temperatur校准:
0x011D - 湿度校准:
0x011C
BeispielBefehl(Temperatur校准 +2.5℃):
01 06 01 1D 00 FA 98 73
说明:
00 FA→ 250(即 250/100 = 2.5℃)- 负值需转换为补码(如
0xFF9C→ -100 → -1.00℃)。
三、DatenAnalyse方法
1. Berechnung公式
| Der SensorTypus | 公式 | Beispiel |
|---|---|---|
| eCO₂ | CO₂ = (CO₂_H << 8) + CO₂_L | 0x0096 → 150 ppm |
| Temperatur | Temperatur = 有符Nr.值 / 100 | 0xFF9C → -100 → -1.00℃ |
| Beleuchtung | Lux = (Lux_H << 8) + Lux_L | 0x01F4 → 500 Lux |
2. 有符Nr.数处理
- 方法 1:直接转为有符Nr.整数(如
0xFF9C→ -100)。 - 方法 2:若值 > 32767,则
真实值 = (原始值 - 65536) / 100。
四、Aufmerksamkeit
- 预热Zeit:VOC 模块需预热 ≥3 Unterteilung钟,其他Der Sensor上电即用。
- Installation Anforderungen:
- 安装高度 ≥15cm,避免地面尘埃污染。
- 避免高粉尘(>300 μg/m³)、油烟或高湿度环境。
- 校准警告:
- 高级Funktion需谨慎Operationen,误修改可能导致Daten异常。
- 校准值需按实际环境调整,建议记录出厂默认值。
- CRC-Prüfung:所有Befehl必须包含Richtig. CRC,否则Ausrüstung无Antwort。
五、附录
1. Der SensorRegister-Adresse表
| Register-Adresse | Der SensorTypus | Datenformate |
|---|---|---|
0x0000 | eCO₂ | 2 Bytes无符Nr.整数(ppm) |
0x0001 | TVOC | 2 Bytes无符Nr.整数(ppb) |
0x0002 | CH₂O | 2 Bytes无符Nr.整数(μg/m³) |
0x0003 | PM2.5 | 2 Bytes无符Nr.整数(μg/m³) |
0x0004 | 湿度 | 2 Bytes(真实值 × 100) |
0x0005 | Temperatur | 2 Bytes(真实值 × 100) |
0x0006 | PM10 | 2 Bytes无符Nr.整数(μg/m³) |
0x0007 | PM1.0 | 2 Bytes无符Nr.整数(μg/m³) |
0x0008 | Beleuchtung | 2 Bytes无符Nr.整数(Lux) |
0x0009 | MCU Temperatur | 2 Bytes(真实值 × 100) |
0x000A | Geräusche | 2 Bytes无符Nr.整数(dB) |
2. Porter Rate代码表
| 代码 | Porter Rate |
|---|---|
0 | 1200 |
1 | 2400 |
2 | 4800 |
3 | 9600 |
4 | 19200 |
5 | 38400 |
6 | 57600 |
7 | 115200 |
3. CRC Berechnung代码(C 语言Beispiel)
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);
}
Antwort veröffentlichen