Messdaten mit BME680 und ESP32 anzeigen

Lesezeit: 10 Minuten

Seite als PDF

Ziele des Projekts

Die Mess­dat­en sollen auf einem LCD und im näch­sten Schritt zusät­zlich auf ein­er Web­seite dargestellt wer­den.

Die Pro­gramme funk­tion­iert nur mit einem ESP32, es wird die proper­itäre, nicht quellof­fene Bib­lio­thek von Bosch ver­wen­det.

Die Hardware

Der Bosch Sen­sor BME680 misst Tem­per­atur, Luft­feuchtigkeit und den Luft­druck. Außer­dem enthält er einen MOX (Metalloxid)-Sensor. Das beheizte Met­al­lox­id ändert seinen Wider­stand je nach Konzen­tra­tion der flüchti­gen organ­is­chen Verbindun­gen (VOC = Volatile Organ­ic Com­pounds) in der Luft.

Viele Mate­ri­alien in Innen­räu­men set­zen Gase frei:

  • Reini­gungs- und Pflegemit­tel
  • Möbel, Ein­rich­tungs­ge­gen­stände
  • Tep­piche, Tape­ten
  • Bau­ma­te­ri­alien (Far­ben)
  • elek­tro­n­is­che Geräte (Com­put­er, Druck­er)
  • Heizgeräte (Herde, Öfen)
  • men­schliche Atem­luft, Schweiß

Die Luftqual­ität wird zunächst als Wider­stand in Ohm gemessen. Je höher die Konzen­tra­tion von VOC, desto geringer ist der Wider­standswert.

Ein intern­er Algo­rith­mus der pro­pri­etären Bosch-Soft­ware (BSEC) wan­delt diesen Rohw­ert in einen Wert für die Luftqual­ität (IAQ = Index for Air Qual­i­ty) um.

Die Tabelle zeigt den IAQ und die Bew­er­tung der Luftqual­ität:

Das Umwelt­bun­de­samt bew­ertet den CO2 Gehalt in der Raum­luft in ver­schiede­nen Stufen:

Luftqualität in Innenräumen

Raum­luftkat­e­gorie IDA (indoor Air)Beschrei­bungKonzen­tra­tion CO2 in ppm
IDA 1Hohe Raum­luftqual­ität≤ 800
IDA 2Mit­tlere Raum­luftqual­ität> 800 — 1000
IDA 3Mäßige Raum­luftqual­ität> 1000 — 1400
IDA 4Niedrige Raum­luftqual­ität> 1400

Quelle: https://www.umweltbundesamt.de/sites/default/files/medien/pdfs/kohlendioxid_2008.pdf

Darstellung der Messwerte

alle Mess­werte zu ver­schiede­nen Zeit­punk­ten im gut durch­lüftetem Raum

Auf dem LCD

Im Seriellen Monitor

Auf einer Webseite

Natür­lich kommt die Genauigkeit dieser Mess­werte nicht an die Präzi­sion pro­fes­sioneller Mess­geräte her­an. Sie kön­nen aber zuver­läs­sige Hin­weise auf die Qual­ität der Raum­luft geben. Die Dat­en für Tem­per­atur, Luft­feuchtigkeit und Luft­druck ste­hen kurz nach der Aktivierung des Sen­sors zur Ver­fü­gung. Der MOX-Sen­sor benötigt bis zu 30 Minuten, um erste Mess­dat­en anzuzeigen. Sta­bil­ität und Zuver­läs­sigkeit der Mess­dat­en sind erst nach mehreren Tagen gewährleis­tet.
Der Wert für die Genauigkeit IAQ muss 3 erre­ichen.

Benötigte Bauteile

  • BME680
  • 4‑zei­li­ges LCD mit I²C-Schnittstelle
  • Leitungs­drähte

Board installieren

Instal­liere mit dem Board­ver­wal­ter das passende Board:

Hardware anschließen

BME680 (Breakout)

rot -> VCC

schwarz -> GND

gelb -> SCL: 22

grün -> SDA: 21

Die Hex-Adresse ist 0x77 (BME68X_I2C_ADDR_HIGH).
Ein Verbindung von SDO zu GND ändert die Adresse auf 0x76 (BME68X_I2C_ADDR_LOW).
Quelle: https://joy-it.net/files/files/Produkte/SEN-BME680/SEN-BME680_Anleitung_2024-04–11.pdf

BME680 (Grove-Anschluss)

schwarz -> GND

rot -> VCC

gelb -> SDA: 21

weiß -> SCL: 22

Der BME680 mit Grove-Anschluss hat die Adresse 0x76 (BME68X_I2C_ADDR_LOW).

LCD

VCC -> 5 V
GND -> GND
SDA -> 21
SCL -> 22

Benötigte Bibliotheken

Die Bib­lio­thek BSEC ist eine pro­pri­etäre Bib­lio­thek, der Quell­text ste­ht nicht zur Ver­fü­gung.
Der Com­pil­er zeigt eine entsprechende Mel­dung:

Bib­lio­thek BSEC Soft­ware Library wurde als vorkom­piliert angegeben:

Außer­dem ste­ht sie nur für die Architek­turen SAMD (UNO R4/UNO R4 WiFi ) und ESP (ESP32 oder ESP8266) zur Ver­fü­gung.

Funktionen der Bibliothek BSEC

Schlüs­sel­wortAktionAus­gabe
runIn­Sta­tus()Sta­tus des Sen­sors fest­stellen0 = noch nicht bere­it, 1 = bere­it
iaqAc­cu­ra­cy()Genauigkeit des IAQ-Wertes0 — 3
tem­per­a­ture()Tem­per­atur messenMess­bere­ich: ‑40 — 85°C
humid­i­ty()Luft­feuchtigkeit messen0 — 100%
pres­sure()Luft­druck messen300 – 1100 hPa
gas­Re­sis­tance()Wider­standswert in kOhm des MOX-Sen­sorsJe niedriger der Wert, desto höher ist die Konzen­tra­tion der VOCs
breathVo­cE­quiv­a­lent()VOC-Konzen­tra­tion auf Basis des sta­tis­chen IAQs schätzenAngabe in ppm (parts per mil­lion)
0,5 — 15
iaq()Luftqual­ität berech­nen0 — 500
sta­ti­cI­aq()Sta­tis­che Luftqual­ität berech­nen0 ‑500
co2Equivalent()CO2 auf Basis des sta­tis­chen IAQs schätzenAngabe in ppm (parts per mil­lion)

Der Wert für sta­ti­cI­aq ist für sta­tionäre Geräte opti­miert. Er berech­net auf der Basis der bish­eri­gen Dat­en den Mess­wert. iaq() ist für mobile Anwen­dun­gen gedacht.

Das Programm für die Darstellung der Messwerte auf dem LCD

Bibliotheken einbinden und Variable definieren

Der setup-Teil

Der loop-Teil

Das Programm mit der Darstellung der Messwerte auf einer Webseite

Bibliotheken einbinden und Variable definieren

Der setup-Teil

Beim Start des Pro­gramms zei­gen die Mel­dun­gen ob Datum und Zeit kor­rekt sind. Wenn in 90 Sekun­den kei­ne Ver­bin­dung zu einem Zeit­ser­ver her­ge­stellt wer­den konn­te, wird das Pro­gramm been­det. Nach einem erneu­ten Hoch­la­den kommt zumeist die Ver­bin­dung schnell zus­tande.

Der loop-Teil

HTML-Seite erstellen und senden

Wenn du eine dynamis­che IP-Adresse ver­wen­den willst (sta­tis­cheIP = false), kannst du mit diesem Pro­gramm die IP-Adresse ermit­teln.

Du musst in Zeile 75 die angezeigte dynamis­che IP-Adresse ein­set­zen.

Wenn du eine sta­tis­che Adresse (sta­tis­cheIP = false) ver­wen­den willst, musst in Zeile 75 die IP-Adresse aus Zeile 14 übernehmen. Du musst , durch . erset­zen.

Für die Dar­stel­lung im Brows­er sind zwei Ände­rungen nötig:

Zeile 57
° -> ° 

Zeile 62
ä -> ä 

Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Verwandte Anleitungen:


let­zte Aktu­al­isierung: Okt. 23, 2025 @ 17:55