Messdaten mit BME680 und ESP32 anzeigen



Seite als PDF

Ziele des Projekts

Die Mess­da­ten sol­len auf einem LCD und im nächs­ten Schritt zusätz­lich auf einer Web­sei­te dar­ge­stellt wer­den.

Die Pro­gram­me funk­tio­niert nur mit einem ESP32, es wird die pro­pe­ri­tä­re, nicht quell­of­fe­ne Biblio­thek von Bosch ver­wen­det.

Die Hardware

Der Bosch Sen­sor BME680 misst Tem­pe­ra­tur, Luft­feuch­tig­keit und den Luft­druck. Außer­dem ent­hält er einen MOX (Metalloxid)-Sensor. Das beheiz­te Metall­oxid ändert sei­nen Wider­stand je nach Kon­zen­tra­ti­on der flüch­ti­gen orga­ni­schen Ver­bin­dun­gen (VOC = Vola­ti­le Orga­nic Com­pounds) in der Luft.

Vie­le Mate­ria­li­en in Innen­räu­men set­zen Gase frei:

  • Rei­ni­gungs- und Pfle­ge­mit­tel
  • Möbel, Ein­rich­tungs­ge­gen­stän­de
  • Tep­pi­che, Tape­ten
  • Bau­ma­te­ria­li­en (Far­ben)
  • elek­tro­ni­sche Gerä­te (Com­pu­ter, Dru­cker)
  • Heiz­ge­rä­te (Her­de, Öfen)
  • mensch­li­che Atem­luft, Schweiß

Die Luft­qua­li­tät wird zunächst als Wider­stand in Ohm gemes­sen. Je höher die Kon­zen­tra­ti­on von VOC, des­to gerin­ger ist der Wider­stands­wert.

Ein inter­ner Algo­rith­mus der pro­prie­tä­ren Bosch-Soft­ware (BSEC) wan­delt die­sen Roh­wert in einen Wert für die Luft­qua­li­tät (IAQ = Index for Air Qua­li­ty) um.

Die Tabel­le zeigt den IAQ und die Bewer­tung der Luft­qua­li­tät:

Das Umwelt­bun­des­amt bewer­tet den CO2 Gehalt in der Raum­luft in ver­schie­de­nen Stu­fen:

Luftqualität in Innenräumen

Raum­luft­ka­te­go­rie IDA (indoor Air)Beschrei­bungKon­zen­tra­ti­on CO2 in ppm
IDA 1Hohe Raum­luft­qua­li­tät≤ 800
IDA 2Mitt­le­re Raum­luft­qua­li­tät> 800 - 1000
IDA 3Mäßi­ge Raum­luft­qua­li­tät> 1000 - 1400
IDA 4Nied­ri­ge Raum­luft­qua­li­tät> 1400

Quel­le: https://www.umweltbundesamt.de/sites/default/files/medien/pdfs/kohlendioxid_2008.pdf

Darstellung der Messwerte

alle Mess­wer­te zu ver­schie­de­nen Zeit­punk­ten im gut durch­lüf­te­tem Raum

Auf dem LCD

Im Seriellen Monitor

Auf einer Webseite

Natür­lich kommt die Genau­ig­keit die­ser Mess­wer­te nicht an die Prä­zi­si­on pro­fes­sio­nel­ler Mess­ge­rä­te her­an. Sie kön­nen aber zuver­läs­si­ge Hin­wei­se auf die Qua­li­tät der Raum­luft geben. Die Daten für Tem­pe­ra­tur, Luft­feuch­tig­keit und Luft­druck ste­hen kurz nach der Akti­vie­rung des Sen­sors zur Ver­fü­gung. Der MOX-Sen­sor benö­tigt bis zu 30 Minu­ten, um ers­te Mess­da­ten anzu­zei­gen. Sta­bi­li­tät und Zuver­läs­sig­keit der Mess­da­ten sind erst nach meh­re­ren Tagen gewähr­leis­tet.
Der Wert für die Genau­ig­keit IAQ muss 3 errei­chen.

Benötigte Bauteile

  • BME680
  • 4-zei­­li­­ges LCD mit I²C-Schnitt­stel­le
  • Lei­tungs­dräh­te

Board installieren

Instal­lie­re mit dem Board­ver­wal­ter das pas­sen­de Board:

Hardware anschließen

BME680 (Breakout)

rot -> VCC

schwarz -> GND

gelb -> SCL: 22

grün -> SDA: 21

Die Hex-Adres­se ist 0x77 (BME68X_I2C_ADDR_HIGH).
Ein Ver­bin­dung von SDO zu GND ändert die Adres­se auf 0x76 (BME68X_I2C_ADDR_LOW).
Quel­le: 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 Gro­ve-Anschluss hat die Adres­se 0x76 (BME68X_I2C_ADDR_LOW).

LCD

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

Benötigte Bibliotheken

Die Biblio­thek BSEC ist eine pro­prie­tä­re Biblio­thek, der Quell­text steht nicht zur Ver­fü­gung.
Der Com­pi­ler zeigt eine ent­spre­chen­de Mel­dung:

Biblio­thek BSEC Soft­ware Libra­ry wur­de als vor­kom­pi­liert ange­ge­ben:

Außer­dem steht sie nur für die Archi­tek­tu­ren SAMD (UNO R4/UNO R4 WiFi ) und ESP (ESP32 oder ESP8266) zur Ver­fü­gung.

Funktionen der Bibliothek BSEC

Schlüs­sel­wortAkti­onAus­ga­be
run­In­Sta­tus()Sta­tus des Sen­sors fest­stel­len0 = noch nicht bereit, 1 = bereit
iaq­Ac­cu­ra­cy()Genau­ig­keit des IAQ-Wer­tes0 - 3
tem­pe­ra­tu­re()Tem­pe­ra­tur mes­senMess­be­reich: -40 - 85°C
humi­di­ty()Luft­feuch­tig­keit mes­sen0 - 100%
pres­su­re()Luft­druck mes­sen300 – 1100 hPa
gas­Re­sis­tance()Wider­stands­wert in kOhm des MOX-Sen­sorsJe nied­ri­ger der Wert, des­to höher ist die Kon­zen­tra­ti­on der VOCs
breath­Vo­cE­qui­va­lent()VOC-Kon­zen­tra­ti­on auf Basis des sta­ti­schen IAQs schät­zenAnga­be in ppm (parts per mil­li­on)
0,5 - 15
iaq()Luft­qua­li­tät berech­nen0 - 500
sta­ti­cIaq()Sta­ti­sche Luft­qua­li­tät berech­nen0 -500
co2Equivalent()CO2 auf Basis des sta­ti­schen IAQs schät­zenAnga­be in ppm (parts per mil­li­on)

Der Wert für sta­ti­cIaq ist für sta­tio­nä­re Gerä­te opti­miert. Er berech­net auf der Basis der bis­he­ri­gen Daten den Mess­wert. iaq() ist für mobi­le 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 zustan­de.

Der loop-Teil

HTML-Seite erstellen und senden

Wenn du eine dyna­mi­sche IP-Adres­se ver­wen­den willst (sta­tischeIP = fal­se), kannst du mit die­sem Pro­gramm die IP-Adres­se ermit­teln.

Du musst in Zei­le 75 die ange­zeig­te dyna­mi­sche IP-Adres­se ein­set­zen.

Wenn du eine sta­ti­sche Adres­se (sta­tischeIP = fal­se) ver­wen­den willst, musst in Zei­le 75 die IP-Adres­se aus Zei­le 14 über­neh­men. Du musst , durch . erset­zen.


Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ähnliche Projekte


letz­te Aktua­li­sie­rung: Feb. 5, 2026 @ 18:27

Inhalt