Kostenloser Versand für Bestellungen über 60 €

BlueDot BME680 Environmental and Gas Sensor

Mit dem BlueDot BME680 Board können Sie nicht nur Temperatur, Luftfeuchtigkeit, Druck und Höhe mit einem Arduino messen, sondern mit dem integrierten Metalloxid-Gassensor (MOX) können Sie auch flüchtige organische Verbindungen (VOCs) in der Luft messen. Der auf Metalloxid basierende Sensor erkennt VOCs durch Adsorption auf seiner empfindlichen Schicht und sein Widerstand ändert sich mit der VOC-Konzentration (je höher die VOC-Konzentration, desto niedriger der Ausgangswiderstand und umgekehrt). Das Rohsignal ist somit ein Widerstandswert in Ohm.

Flüchtige organische Verbindungen kommen typischerweise in Baumaterialien, Druckern, Lösungsmitteln, Farben, Benzin und vielen Haushaltsprodukten vor. Langfristige Exposition gegenüber VOCs kann gesundheitsschädlich sein. Da wir so viel Zeit in Innenräumen (Wohnungen und Büros) verbringen, ist es wichtig, die Quelle zu finden und die Konzentration von VOCs in Innenräumen zu reduzieren.

Jetzt legen wir mit dem BlueDot BME680 los und machen unsere ersten Schritte mit diesem Umgebungssensor.

Beschreibung

Hier sind fünf Funktionen, die die Verwendung des BlueDot BME680 Umwelt- und Gassensors sehr einfach machen:

  • Temperatur-, Feuchtigkeits-, Druck- und Höhenmessungen. Sie können Temperatur, relative Luftfeuchtigkeit und Luftdruck mit hoher Präzision messen. Außerdem ermöglichen Ihnen die Druckmessungen, Ihre Höhe mit einer Genauigkeit von ± 1,0 Metern zu berechnen.
  • Messung der VOC-Konzentration. Sie können hohe VOC-Konzentrationen in der Umgebungsluft feststellen. Das Rohsignal ist ein Widerstandswert in Ohm, der mit zunehmender VOC-Konzentration abnimmt.
  • 3,3 V und 5 V Spannungsversorgung. Der integrierte Spannungsregler akzeptiert Spannungen zwischen 2,6 V und 5,5 V zur Versorgung des BME680 Sensors.
  • SPI- und I²C-Kommunikation. Abhängig von Ihrem Projekt können Sie zwischen den Protokollen SPI und I²C wählen, um mit dem Sensor zu kommunizieren.
  • Datenübertragung mit 5 V und 3,3 V Geräten. Während Geräte wie der Arduino Uno ein 5 V Signal als logisches HIGH interpretieren, verwendet der BME680 3,3 V als logisches HIGH. Der integrierte Logikpegelwandler übersetzt die 5 V Signale in 3,3 V Signale und umgekehrt.

Diese Kurzanleitung zum BlueDot BME680 zeigt Ihnen, wie Sie die ersten Schritte mit dieser Umgebungssensorplatine unternehmen.

Montage

Der erste Schritt bei der Wetterstation BME680 besteht darin, den 6-Pin-Header zu löten, der mit der Platine geliefert wird. Der einfachste Weg, die Platine zu löten, besteht darin, den Header in ein Steckbrett einzuführen (lange Stifte nach unten) und die kurzen Stifte an die Platine anzulöten.

Verbindung zum ESP8266 über I²C

NodeMCU mit BME680 verbinden

Wenn Sie den BME680 an einen ESP8266 WLAN-Mikrocontroller anschließen, können Sie den IAQ-Index mit der BSEC-Bibliothek messen. Schauen Sie sich unseren Tutorial-Bereich an, um eine vollständige Anleitung dazu zu erhalten!

Verbindung über I²C

Der Anschluss des BME680 an den I²C-Bus ist sehr einfach und identisch mit dem Anschluss des BME280 Sensors. Der erste Schritt besteht darin, die Platine an die Stromversorgung anzuschließen.

  • VCC-Pin. Verbinden Sie den VCC-Pin der Platine mit dem 5 V oder 3,3 V Ausgang Ihres Arduino.
  • GND-Pin. Verbinden Sie den GND-Pin der Platine mit dem GND-Pin des Arduino.

Super! Jetzt müssen wir den Sensor an den I²C-Bus anschließen. Die I²C-Kommunikation erfolgt über zwei Drähte. Das Taktsignal wird vom Arduino erzeugt und über die SCL-Leitung an den Sensor übertragen. Andererseits kann der Arduino über die SDA-Leitung Befehle an den Sensor senden. Und umgekehrt, alle Daten vom Sensor werden über die SDA-Leitung an den Arduino zurückgesendet. Aus diesem Grund ist die SDA-Leitung bidirektional.

  • SDI-Pin. Verbinden Sie den SDI-Pin der Platine mit der SDA-Leitung des Arduino. Dies entspricht dem Pin A4 am Arduino Uno.
  • SCK-Pin. Verbinden Sie den SCK-Pin der Platine mit der SCL-Leitung Ihres Arduino. Dies entspricht dem Pin A5 am Arduino Uno.
  • SDO-Pin. Hier haben wir zwei Möglichkeiten. Lassen Sie den SDO-Pin unverbunden, um die Standard I²C-Adresse (0x77) zu verwenden. Stattdessen können wir den SDO-Pin mit GND verbinden, um die alternative I²C-Adresse (0x76) zu verwenden.
  • CS-Pin. Lassen Sie es unverbunden.

Verbindung über Hardware-SPI

Wir können auch über das SPI-Protokoll mit dem BME680 Sensor kommunizieren. Wie zuvor besteht der erste Schritt darin, die Platine an eine Stromversorgung anzuschließen.

  • VCC-Pin. Verbinden Sie den VCC-Pin der Platine mit dem 5 V oder 3,3 V Ausgang Ihres Arduino.
  • GND-Pin. Verbinden Sie den GND-Pin der Platine mit dem GND-Pin des Arduino.

Im Gegensatz zum I²C-Protokoll verwendet die SPI-Kommunikation vier verschiedene Leitungen. Alle Daten vom Sensor werden über die SDO-Leitung (Serial Data Output) zurück zum Arduino übertragen, während alle Befehle vom Arduino über die SDI-Leitung (Serial Data Input) übertragen werden. Das Taktsignal wird vom Arduino erzeugt und über die SCK-Leitung (Serial Clock) gesendet. Schließlich wird die CS- oder Chip-Select-Leitung verwendet, um dem Sensor mitzuteilen, wann die Kommunikation beginnt oder endet.

  • SDI-Pin. Verbinden Sie den SDI-Pin der Platine mit dem MOSI-Pin des Arduino. Der MOSI-Pin (Master Out Slave In) befindet sich auf dem ICSP-Header.
  • SCK-Pin. Verbinden Sie den SCK-Pin der Platine mit dem SCK-Pin Ihres Arduino. Sie finden den SCK-Pin auch auf dem ICSP-Header.
  • SDO-Pin. Verbinden Sie den SDO-Pin der Platine mit dem MISO-Pin des Arduino. Der MISO-Pin (Master In Slave Out) befindet sich ebenfalls auf dem ICSP-Header.
  • CS-Pin. Verbinden Sie den CS-Pin der Platine mit dem digitalen Pin 10 des Arduino. Wenn Sie möchten, können Sie jeden anderen digitalen Pin verwenden. Denken Sie jedoch daran, auch das Programm zu ändern.

Sie sind sich nicht sicher, wo sich der ICSP-Header befindet? Beim Arduino Uno ist es der Header auf der anderen Seite der Platine, in der Nähe des Mikrocontrollers.

ICSP-Header auf Arduino UNO

Verbindung über Software-SPI

Wir können die SPI-Kommunikation auch ohne den ICSP-Header nutzen und stattdessen normale digitale Pins verwenden. In diesem Fall wird die Kommunikation Software-SPI genannt.

  • VCC-Pin. Verbinden Sie den VCC-Pin der Platine mit dem 5 V oder 3,3 V Ausgang Ihres Arduino.
  • GND-Pin. Verbinden Sie den GND-Pin der Platine mit dem GND-Pin des Arduino.
  • SDI-Pin. Verbinden Sie den SDI-Pin der Platine mit dem digitalen Pin 13 des Arduino.
  • SCK-Pin. Verbinden Sie den SCK-Pin der Platine mit dem digitalen Pin 12 des Arduino.
  • SDO-Pin. Verbinden Sie den SDO-Pin der Platine mit dem digitalen Pin 11 des Arduino.
  • CS-Pin. Verbinden Sie den CS-Pin der Platine mit dem digitalen Pin 10 des Arduino.
Software-SPI-Anschlussdiagramm für das BlueDot BME680 board

Installieren der Arduino-Bibliothek

Das BlueDot BME680 Board funktioniert am besten mit der Arduino-Bibliothek von Adafruit. Der einfachste Weg, Ihren BME680 Sensor zu verwenden, besteht darin, die Bibliothek direkt von der Arduino IDE herunterzuladen und zu installieren. Öffnen Sie einfach die Arduino IDE und gehen Sie zu Sketch > Include Library > Manage Libraries… und suchen Sie im Bibliotheksmanager nach der Adafruit BME680-Bibliothek. Alternativ können Sie die neueste Version der Bibliothek aus dem Github-Repository herunterladen.

Beispielskizze hochladen

Nach der Installation der Bibliothek können wir eine Beispielskizze öffnen. Adafruit hat ein tolles Beispiel beigefügt, das wir zum Betrieb des BME680 verwenden können. Gehen Sie einfach zu File > Examples > Adafruit BME680 Library und öffnen Sie die Skizze bme680test.

Schauen wir uns nun die Beispielskizze an. Der erste Schritt im Programm besteht darin, das Kommunikationsprotokoll zu definieren. Je nachdem, wie Sie die Platine mit dem Mikrocontroller verbunden haben, wählen Sie zwischen I²C, Hardware-SPI und Software-SPI. Der Standardwert ist auf den I²C-Modus eingestellt.

   Adafruit_BME680 bme; // I2C
 //Adafruit_BME680 bme(BME_CS); // hardware SPI
 //Adafruit_BME680 bme(BME_CS, BME_MOSI, BME_MISO,  BME_SCK);

Wenn Sie den Hardware-SPI-Modus verwenden, müssen Sie in das Programm schreiben, welcher digitale Pin mit dem CS-Pin des BME680 verbunden ist. Wenn Sie den Software-SPI-Modus verwenden, müssen Sie auch digitale Pins für die MISO- (SDO), MOSI- (SDI) und SCK-Pins definieren. Diese können gleich zu Beginn der Skizze definiert werden.

    #define BME_SCK 13
    #define BME_MISO 12
    #define BME_MOSI 11
    #define BME_CS 10

Dies ist alles, was Sie tun müssen, bevor Sie das Programm ausführen. Zuvor haben Sie jedoch die Möglichkeit, die Oversampling-Faktoren und den IIR-Filter (Infinite Impulse Response) sowie die Temperatur der internen Heizplatte und die Heizdauer für die Gasmessungen anzupassen. Die Standardwerte funktionieren hervorragend.

  //Set up oversampling and filter initialization
    bme.setTemperatureOversampling(BME680_OS_8X);
    bme.setHumidityOversampling(BME680_OS_2X);
    bme.setPressureOversampling(BME680_OS_4X);
    bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
    bme.setGasHeater(320, 150); // 320*C for 150 ms

Jetzt können Sie die Skizze ausführen. Was können Sie vom BME680 Sensor erwarten?

Wie der BME280-Sensor misst der BME680 Temperatur, Luftfeuchtigkeit, Luftdruck und Höhe (berechnet aus dem Luftdruck). Der BME680 enthält außerdem einen integrierten Metalloxid-Gassensor, der als Heizplatte mit einem elektrischen Widerstand arbeitet, der abnimmt, wenn er bestimmten Gasen in der Atmosphäre ausgesetzt wird. Der Sensor erhitzt die Heizplatte für eine bestimmte Dauer auf die Zieltemperatur (Standardwerte sind 320 °C für 150 ms) und misst anschließend den elektrischen Widerstand der Heizplatte. Infolgedessen ist dieser elektrische Widerstand der Ausgang des Gassensors.

3D-Modell

Ein 3D-Modell des BlueDot BME680 Boards ist als STEP-Datei verfügbar (zum Herunterladen hier klicken). Eine STEP-Datei ist ein CAD-Dateiformat, das häufig für den Austausch von CAD-Dateien zwischen Unternehmen verwendet wird und von den meisten (wenn nicht allen) CAD-Softwareanwendungen problemlos gelesen werden kann.

Sie können 3D-Modelle auch online betrachten, ohne Software auf Ihrem Computer installieren zu müssen. Die folgenden Bilder wurden mit Autodesk Viewer aufgenommen, einem kostenlosen Online-Tool von Autodesk. Es ist zwar eine Registrierung bei Autodesk erforderlich, aber es lohnt sich!

Schaltplan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert