10 - in - 1 Luftqualitätssensoren

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

10 - in - 1 Luftqualitätssensoren
10 - in - 1 LuftqualitätssensorenAbbildung

I. Übersicht über die Kommunikationsvereinbarung

Standardkommunikationsparameter

  • Baudrate:9600
  • Datenbit:8
  • Checkbit: Keine
  • Stoppbit:1(d. h.9600/8/N/1)
  • Standardgeräteadresse:0x01
  • Reaktionszeit: < 100 ms

2. CRC-Check

  • Algorithmus: CRC - 16 / Modbus (Polynomial0x8005)
  • Checkcode Format: 2 Bytes, die höchsten Stellen voran (z. B.CRC_H CRC_L)。
  • Berechnungstools: Verwenden SieCRCTooloder den Code des Kapitels IX des Spezifikationsbuchs.

II. Funktion des Abkommens

1. Gerätadresse und Firmware-Version lesen

Funktion: Erhält die aktuelle Gerätadresse und Firmware-Versionsnummer.

Anforderungsformat (Host → Sensor)
Byte-PositionDatenBeschreibung
00xFEBroadcast-Adresse (alle Geräte antworten)
10x11Funktionscode (Leseadresse)
2-50x00Feste Füllung
6-7CRCCRC-Prüfcode

Beispiel Befehl:

FE 11 00 00 00 01 28 06
Antwortformat (Sensor → Host)
Byte-PositionDatenBeschreibung
00x01Geräteadresse
10x11Funktionscode
20x02Datenlänge (2 Byte)
30x12Firmware-Version (z. B.0x12=V1.2)
40x01Aktuelle Adresse
5-6CRCCRC-Prüfcode

Beispiel-Antwort:

01 11 02 12 01 70 5C


Auflösung:

  • Firmware-Version:V1.2
  • Geräte-Adresse:0x01

2.Ändern der Geräteadresse

Funktion: Ändern der Modbus-Adresse des Geräts (Bereich1~247)

Anforderungsformat (Host → Sensor)
Byte-PositionDatenBeschreibung
0Aktuelle AdresseOriginal-Adresse (z. B.0x01)
10x06Funktionscode (Adresse ändern)
2-40x00Feste Ausfüllung
5Neue AdresseZiel-Adresse (z. B.0x02)
6-7CRCCRC-Prüfcode

Beispielbefehl(Adresse ändern als0x02):

01 06 00 00 00 02 08 0B
Antwortformat (Sensor → Host)

Entspricht dem Anforderungsformat und gibt eine modifizierte Adressbestätigung zurück.

Beispiel-Antwort:

01 06 00 00 00 02 08 0B


BeschreibungDie Antwortdaten sind identisch mit der Anforderung, um eine erfolgreiche Änderung anzuzeigen.

3. Lesen von Sensordaten

Funktion: Lesen Sie Sensordaten des angegebenen Registers (Unterstützung für mehrere Sensoren gleichzeitig).

Anforderungsformat (Host → Sensor)
Byte-PositionDatenBeschreibung
0Geräte-Adresse如 0x01
10x03Funktionscode (Lese-Daten)
2-3Start-AdresseRegister-Start - Adresse (vor oben)
4-5Anzahl der RegisterAnzahl der zu lesen Registers
6-7CRCCRC-Prüfcode

Beispielbefehl(alle 11 Sensordaten lesen):

01 03 00 00 00 0B C5 CD
Antwortformat (Sensor → Host)
BytespositionDatenBeschreibung
0Geräteadresse如 0x01
10x03Funktionscode
2DatenlängeBytes (Registerzahl × 2)
3 ~ NSensordaten2 Byte pro Register (HIGH WITH VORST)
N + 1 ~ N + 2CRCCRC-Prüfcode

Beispiel-Antwort(Teilweise Daten):

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


Auflösung:

  • 00 96→ eCO2 = 150 ppm
  • 00 64→ TVOC = 100 ppb
  • 00 32→ CH2O = 50 μ g / m3
  • Temperatur-Feuchtigkeit - Daten:
  • Luftfeuchtigkeit:0x012C→ 300 → 300 / 100 = 30.0% RH
  • Temperatur:0x000A→ 10 → 10 / 100 = 0.10 ° C

4. Konfiguration der Systemparameter (Erweiterte Funktionen)

4.1 Lesen / Einstellen der Baudrate

Registeradresse:0x0103(siehe Anhangtabelle für den Code der Baudrate).

Leseanforderung für die Baudrate:

01 03 01 03 00 01 CRC


Festlegen der Baudrate(Einstellung auf 115200):

01 06 01 03 00 07 CRC
4.2 Kalibrierung von Sensordaten

Registeradresse:

  • Temperaturkalibrierung:0x011D
  • Feuchtekalibrierung:0x011C

Beispielbefehl(Temperaturkalibrierung +2,5 ° C):

01 06 01 1D 00 FA 98 73


Beschreibung:

  • 00 FA→ 250 (d. h. 250 / 100 = 2,5 ° C)
  • Negative Werte müssen in Ergänzungswerte umgewandelt werden (z. B.0xFF9C-100 °C) und -1,00 °C).

III. Methoden der Datenanalyse

1. Berechnung der Formel

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

2. Verarbeitung von symbolisierten Zahlen

  • Methode 1: Direkt in eine symbolisierte Ganzzahl umgewandelt (z. B.0xFF9Cund -100).
  • Methode 2: Wenn der Wert > 32767, dann真实值 = (原始值 - 65536) / 100。

IV. Aufmerksamkeit

  1. VorwärmzeitDas VOC-Modul muss für ≥ 3 Minuten vorwärmt werden, bevor die anderen Sensoren angeschaltet werden.
  2. Installation Anforderungen:
  • Installationshöhe ≥ 15 cm, um Staubverschmutzung zu vermeiden.
  • Vermeiden Sie hohen Staub (> 300 μ g / m3), Rauch oder hohe Luftfeuchtigkeit.
  1. Kalibrierung Warnung:
  • Erweiterte Funktionen sind mit Vorsicht zu bedienen, da fehlerhafte Änderungen zu Datenanomalien führen können.
  • Der Kalibrierungswert muss nach der tatsächlichen Umgebung angepasst werden, und es wird empfohlen, den Werkstandardwert aufzuzeichnen.
  1. CRC-Test: Alle Befehle müssen die richtige CRC enthalten, sonst reagiert das Gerät nicht.

V. Anhang

1. Sensor-Register - Adresstabelle

Register-AdresseSensor-TypDatenformat
0x0000ECO22 Byte unsignierte ganze Zahl (ppm)
0x0001TVOC2 Byte unsignierte ganze Zahl (ppb)
0x0002CH2O2 Byte unsignierte ganze Zahl (μ g / m3)
0x0003PM2.52 Byte unsignierte ganze Zahl (μ g / m3)
0x0004Feuchtigkeit2 Byte (echte Wert × 100)
0x0005Temperatur2 Byte (echte Wert × 100)
0x0006PM102 Byte unsignierte Ganzzahl (μ g / m3)
0x0007PM1.02 Byte unsignierte Ganzzahl (μ g / m3)
0x0008Beleuchtung2 Byte unsignierte Ganzzahl (Lux)
0x0009MCU-Temperatur2 Byte (echter Wert × 100)
0x000ARauschen2 Byte unsignierte Ganzzahl (dB)

2. Baudrate-Code - Tabelle

CodeBaudrate
01200
12400
24800
39600
419200
538400
657600
7115200

3. CRC-Berechnungscode (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);
}

Produkte kaufen:https://item.taobao.com/item.htm? = t&id=675637355531

Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.