CO2 Sensor basierend auf TTGO with MQTT

20. Februar 2021 at 13:34
Print Friendly, PDF & Email

Dieses Projekt dient zur Messung der CO2 Konzentration sowie der Feuchtigkeit und der Temperatur.

Vierschiedene Anzeigen stehen zur Verfügung.

Der Source Code ist auf github zu finden: https://github.com/ThomasH-W/CO2-TTGO-MQTT

Um die Anzahl der Kabel und dazugehörigen Lötpunkten zu minimieren, wurde das TTGO-Modul gewählt.

Das Modul ist über MQTT and openHAB und NodeRED angebunden. NodeRED bietet eine einfache und schnelle Möglichkeit eine Web-Oberfläche zur Verfügung zu stellen. Weiterhin läßt sich das Modul über MQTT steuern.

Anzeige

GUI 1 – Alle Sensoren

TTGO-1

Settings for this GUI: mode = 1

GUI 2: CO2 + Temperatur

GitHub Logo

Settings for this GUI: mode = 2

GUI 3: nur CO2 – Farbe abhängig vom Messwert

GitHub Logo

Settings for this GUI: mode = 3

GUI 4: CO2 Grafik

GitHub Logo

Settings for this GUI: mode = 4

GUI 5: Messverlauf

GitHub Logo

Settings for this GUI: mode = 5

GUI 6: Admin Seite

GitHub Logo

Settings for this GUI: mode = 6

GUI 0: Boot

GitHub Logo

Settings for this GUI: mode = 0

NodeRED

GitHub Logo

CO2 Sensor / MHZ19B

Zwei sehr gute Seiten,, die mir geholfen haben, das Thema überhaupt zu verstehen:

Feuchtigkeits- und Temperatursensor

Der DHT22 misst beides und braucht aber nur eine Datenleitung. Alternativ kann auch ein BME280 eingesetzt werden.

Pin-Belegung

CO2 Sensor / MHZ19B

MHZ19B

ESP PIN ESP Name MHZ19B Name
26 RX TX
27 TX RX
GND GND GND
5V V Vin

Temp/Humidity Sensor / DHT22

DHT22

ESP PIN ESP Name DHT22 Name
25 GPIO25 DATA
GND GND GND
3V3 Vcc Vcc

 

MQTT

The name des Moduls wird hier definiert: include/myMqttClient.h. Der name wird als client-ID für MQTT verwendet. Zu beachten ist, dass der Name / die client-ID eindeutig im lokalem Netzwerk sein muss. Default name: “TTGO-1”

Topics

  • tele/<name>/… ?
  • tele/TTGO-1/CO2
  • tele/TTGO-1/info
  • tele/TTGO-1/temp
  • tele/TTGO-1/humi
  • stat/TTGO/result
  • cmnd/TTGO

Commands – Message format

  • {“name”:”mode”,”value”:3}
Command Value Reason
mode 0…6 Select GUI
calibration 1 Start calibration

 

Configuration

Copy the files from

Settings From To Reason
TFT Driver README\TFT_eSPI .pio\libdeps\TTGO-MQTT-lora32-v1\TFT_eSPI You need to select the correct TFT driver in the library, otherwise the screen will just be black
WLAN + MQTT Credentials include\user_config_override_sample.h included\user_config_override.h Modify this to match your credentials.

ToDo

  • Calibration
    Ist bereits eingebaut, aber noch nicht getestet.