Kostenloser Versand für Bestellungen über 60 €

BlueDot BME280+TSL2591 Advanced Weather Station

Das Einzige, was der BME280 Sensor nicht kann, ist Licht messen! Nun, wir können das beheben. Die BlueDot BME280+TSL2591 Advanced Weather Station vereint zwei tolle Sensoren in einer Platine! Während der BME280 Temperatur, Luftfeuchtigkeit, Druck und Höhe misst, misst der TSL2591 die Beleuchtungsstärke mit großer Empfindlichkeit. Nun legen wir mit dem BlueDot BME280+TSL2591 los und machen unsere ersten Schritte mit den beiden Sensoren.

Beschreibung

Wichtiger Hinweis

Die Sensoren TSL2591 und BNO055 arbeiten nicht zusammen. Sie teilen sich die gleichen I²C-Adressen (0x28 und 0x29). Obwohl für die I²C-Kommunikation nur die Adresse 0x29 verwendet wird, reserviert der Sensor TSL2591 auch die Adresse 0x28. Wenn Sie das BME280+TSL2591 Board mit dem BNO055 Board verwenden möchten, ziehen Sie bitte die Verwendung eines I²C-Multiplexers in Betracht.

Montage

Der erste Schritt bei dem BME280+TSL2591 Board 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.

Hier sind fünf Funktionen, die die BlueDot BME280+TSL2591 Advanced Weather Station so großartig machen:

  • Licht-, Temperatur-, Feuchtigkeits-, Druck- und Höhenmessungen. Sie können Beleuchtungsstärke, 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.
  • 3,3 V und 5 V Spannungsversorgung. Der integrierte Spannungsregler akzeptiert Spannungen zwischen 2,6 V und 5,5 V zur Versorgung der BME280 und TSL2591 Sensoren.
    I²C-Kommunikation. Mit der I²C-Kommunikation benötigen Sie nicht mehr als zwei Drähte, um Daten von und zu Ihrem Board zu übertragen.
  • 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, verwenden der BME280 und der TSL2591 3,3 V als logisches HIGH. Der integrierte Logikpegelwandler übersetzt die 5 V Signale in 3,3 V Signale und umgekehrt.
  • BlueDot BME280 TSL2591 Bibliothek für Arduino. Ja! Sie müssen sich nicht mit Datenblättern herumschlagen! Mit der BlueDot BME280 TSL2591 Library können Sie sofort mit der Messung beginnen. Laden Sie die Bibliothek von der Arduino IDE, Github oder unserer Website herunter.

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

Verbindung über I²C

Der Anschluss des BME280 und des TSL2591 an den I²C-Bus ist sehr einfach. 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 beide Sensoren 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. Der Arduino kann über die SDA-Leitung Befehle an beide Sensoren senden. Alle Daten von den Sensoren gehen über die SDA-Leitung zurück zum Arduino. Aus diesem Grund ist die SDA-Leitung bidirektional.

  • SDI-Pin. Verbinden Sie den SDA-Pin der Platine mit der SDA-Leitung des Arduino. Dies entspricht dem Pin A4 am Arduino Uno.
  • SCK-Pin. Verbinden Sie den SCL-Pin der Platine mit der SCL-Leitung Ihres Arduino. Dies entspricht dem Pin A5 am Arduino Uno.
  • INT-Pin. Dies ist der Interrupt-Pin des TSL2591 Sensors. Sie können die BlueDot-Bibliothek erweitern, um diesen Pin zu programmieren. Andernfalls lassen Sie es einfach unverbunden.
  • 3V3-Pin. Dies ist der Ausgang des Spannungsreglers. Von diesem Ausgang können Sie bis zu 100 mA beziehen. Andernfalls lassen Sie es einfach unverbunden.

Installieren der Arduino-Bibliothek

Der einfachste Weg, Ihre erweiterte Wetterstation zu verwenden, besteht darin, die BlueDot BME280 TSL2591-Bibliothek für Arduino 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 BlueDot BME280 TSL2591-Bibliothek. Alternativ können Sie die neueste Version der Bibliothek aus dem Github-Repository herunterladen oder einfach auf diesen Link klicken, um sie direkt von unserer Website herunterzuladen!

Beispielskizze hochladen

Nach der Installation der Bibliothek können wir eine Beispielskizze öffnen. Gehen Sie einfach zu File > Examples > BlueDot BME280 Library und öffnen Sie die Skizze BME280_Weatherstation.

Das Board unterstützt nur das I²C-Kommunikationsprotokoll, sodass Sie nicht zwischen den Modi SPI und I²C wählen müssen. Auch die I²C-Adressen sind fest vorgegeben und sollten nicht verändert werden.

   bme280.parameter.I2CAddress = 0x77;                 //The BME280 is hardwired to use the I2C Address 0x77              
   tsl2591.parameter.I2CAddress = 0x29;   

Mit dem Lichtsensor TSL2591 können Sie ändern, wie stark er auf Licht reagiert, indem Sie die Verstärkung seines internen Verstärkers ändern. Verwenden Sie niedrigere Verstärkungen, wenn der Sensor hellem Licht ausgesetzt ist, und höhere Verstärkungswerte, wenn sich der Sensor in einer dunkleren Umgebung befindet.

   //0b00:    Low gain mode
   //0b01:    Medium gain mode
   //0b10:    High gain mode
   //0b11:    Maximum gain mode

    tsl2591.parameter.gain = 0b01;

Sie können die Empfindlichkeit des Sensors auch anpassen, indem Sie die Integrationszeit ändern. Die Einstellung längerer Integrationswerte bedeutet, dass der Sensor Licht über einen längeren Zeitraum sammelt. Denken Sie daran, dass ein höherer Integrationswert zu längeren Messungen führt.

  //0b000:   100ms (max count = 37888)
  //0b001:   200ms (max count = 65535)
  //0b010:   300ms (max count = 65535)
  //0b011:   400ms (max count = 65535)
  //0b100:   500ms (max count = 65535)
  //0b101:   600ms (max count = 65535)
    
    tsl2591.parameter.integration = 0b000; 

Denken Sie auch daran, dass der Lichtsensor einer Sättigung unterliegt, was bedeutet, dass er zu viel Licht ausgesetzt sein kann. Wenn Sie die Integrationszeit auf 100 ms einstellen, wird die Sättigung bei 37888 Lux erreicht, und bei höheren Integrationszeiten wird die Sättigung bei 65535 Lux erreicht. Wenn der Sensor gesättigt ist, können Sie entweder zu einem niedrigeren Verstärkungsmodus wechseln, die Integrationszeit reduzieren oder eine Kombination aus beidem.

Dies ist die Ausgabe des Sensors.

Serial Monitor Output from the BME280+TSL2591

Präzise Höhenmessungen

Da es einen Luftdrucksensor enthält und der Luftdruck mit der Höhe variiert (das wissen Sie vermutlich bereits), können Sie den BME280 als Höhenmesser verwenden. Die BlueDot BME280 TSL2591-Bibliothek enthält bereits Funktionen zur Berechnung Ihrer Höhe in Metern und Fuß.

    bme280.readAltitudeMeter();
    bme280.readAltitudeFeet();

Wenn Sie die Beispielskizze ausführen und einen Blick auf die Höhenwerte werfen, fragen Sie sich vielleicht, warum die Höhenwerte täglich variieren. Heute haben Sie eine Höhe von 550 Metern gemessen, gestern betrug Ihre gemessene Höhe 620 Meter, obwohl sich Ihr Sensor überhaupt nicht bewegt hat. Was ist los?

Internationale barometrische Formel

Die BlueDot BME280 TSL2591-Bibliothek verwendet die internationale barometrische Formel, um die Höhe des Sensors zu berechnen. Diese Gleichung beschreibt die Beziehung zwischen dem Atmosphärendruck und der Höhe über dem Meeresspiegel.

Internationale barometrische Formel

Die Formel geht von einem durchschnittlichen Luftdruck auf Meereshöhe von 1013,23 hPa und einer Durchschnittstemperatur von 15°C bzw. 288,15 Kelvin aus. Aus diesem Grund erhalten Sie mit diesen Standardwerten nur grobe Höhenschätzungen. Was können Sie also tun?

Ändern Sie einfach diese beiden Standardwerte in Ihrer Beispielskizze. Unter der Funktion setup() finden Sie diesen Abschnitt, in dem Sie den Druck auf Meereshöhe und Ihre lokale Außentemperatur ändern können.

  //For precise altitude measurements please put in the current pressure corrected for the sea level
  //On doubt, just leave the standard pressure as default (1013.25 hPa)
  
    bme280.parameter.pressureSeaLevel = 1002.25;           //default value of 1013.25 hPa

  //Now write here the current average temperature outside (yes, the outside temperature!)
  //You can either use the value in Celsius or in Fahrenheit, but only one of them (comment out the other value)
  //In order to calculate the altitude, this temperature is converted by the library into Kelvin
  //For slightly less precise altitude measurements, just leave the standard temperature as default (15°C)
  //Remember, leave one of the values here commented, and change the other one!
  //If both values are left commented, the default temperature of 15°C will be used
  //But if both values are left uncommented, then the value in Celsius will be used    
  
    bme280.parameter.tempOutsideCelsius = 5;              //default value of 15°C
  //bme280.parameter.tempOutsideFahrenheit = 59;           //default value of 59°F

Mittlerer Druck auf Meereshöhe

Es kann etwas schwierig sein, den mittleren Druck auf Meereshöhe für Ihren Standort zu ermitteln. Sie können ihn als den atmosphärischen Druck an Ihrem Standort betrachten, als ob Sie sich auf Meereshöhe befänden. Zum Beispiel beträgt der atmosphärische Druck zum Zeitpunkt dieses Schreibens in München (Deutschland) etwa 940 hPa, und das ist der Wert, den ich vom BME280 Sensor erhalte. Allerdings beträgt der mittlere Luftdruck auf Meereshöhe für München derzeit 1001 hPa. Das wäre der Luftdruck hier in München, wenn es auf Meereshöhe läge und nicht wie üblich 530 Meter darüber.

Die Website Weather.us ist eine großartige Möglichkeit, den mittleren Luftdruck auf Meereshöhe für Ihren Standort zu ermitteln, da sie Daten für Länder auf der ganzen Welt enthält. Klicken Sie auf diesen Link, um zu ihrer Website zu gelangen und wählen Sie Ihre Stadt mit den Dropdown-Menüs auf der linken Seite des Bildschirms aus.

Lesen Sie den atmosphärischen Druck auf Meereshöhe auf der Website Weather.us ab

Der zweite Parameter, den Sie in die Beispielskizze eintragen müssen, ist die Außentemperatur an Ihrem Standort. Das geht ganz einfach, da es sich dabei lediglich um die Messung der Lufttemperatur in Ihrer Region handelt. Mit anderen Worten: Wie hoch ist die Temperatur derzeit in Ihrer Stadt?

Selbstverständlich können Sie die Temperatur auch mit Ihrem BME280 Sensor messen. Denken Sie daran, den Sensor vor direkter Sonneneinstrahlung zu schützen, da die Platine die zusätzliche Wärme speichern und Ihre Messung verfälschen würde.

Eine letzte Anmerkung zur barometrischen Formel: Sie funktioniert gut für die Troposphäre (bis zu einer Höhe von 11 km), wo die Lufttemperatur pro Meter um etwa 0,0065 Kelvin sinkt. Aber darüber hinaus erreicht man die Tropopause und die Stratosphäre, wo sich die Lufttemperatur mit zunehmender Höhe unterschiedlich ändert und diese Formel nicht mehr gilt.

3D-Modell

Ein 3D-Modell des BlueDot BME280+TSL2591-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