DIY - Luftdruck Sensor

Die Messung des Luftdrucks erlaubt neben Wettervorhersagen auch indirekt die Bestimmung der Höhe des Sensors.

Vorraussetzungen

Materialien

  • Luftdrucksensor BMP280

Grundlagen

Der BMP280 Sensor misst sowohl Luftdruck (hPa) als auch Temperatur (°C). Dieser Sensor wird über das I²C Protokoll angesteuert, und benötigt eine Betriebsspannung von 3.3 bis 5 Volt.

I²C-Geräte werden an den Arduino Uno über die Pins A4 (SDA), und A5 (SCL) angeschlossen, und so digital ausgelesen (siehe auch Der serielle Datenbus). Die I²C-Adresse des BMP280 kann über den SDO Pin umgeschaltet werden: Liegt SDO auf Masse (GND) ist die Adresse 0x76, sonst 0x77. Diese Kommunikation übernimmt die senseBox-Bibliothek für uns.

Da der Luftdruck von der Höhe über dem Meeresspiegel abhängt, kann über den BMP280 auch die Aufbau-Höhe der senseBox bestimmt werden. Dazu wird ein Referenzdruck P0 benötigt, dessen Höhe bekannt ist. Üblicherweise wird dazu der aktuelle Luftdruck auf Meerespiegelniveau verwendet. Da der Luftdruck in Abhängigkeit vom aktuellen Wetter stark schwanken kann, ist diese "Höhenmessung" aber nicht sehr akkurat, und muss immer wieder neu kalibriert werden.

Aufbau

Die Betriebsspannung des Sensors wird über die Verbindung des Arduino Pins 3.3V -> VCC und GND -> GND realisiert. Die I²C Verbindung wird wie üblich über SDA und SCL hergestellt.

Aufbau_Arduino_BMP280

Programmierung - Auslesen des Sensors

Der Sensor kann über die Bibliothek senseBox.h angestuert werden. Nachdem diese eingebunden wurde, muss eine Instanz bmp davon erstellt werden Auf diesem Objekt werden alle Funktionen der Bibliothek aufgerufen:

#include <SenseBox.h>
BMP280 bmp_sensor;

In der setup()-Funktion muss der Sensor initialisiert werden. Verwende dazu die folgenden Zeilen:

    bmp_sensor.begin();

Nun muss der Sensor in der loop()-Funktion ausgelesen werden. In den Variablen temp und pressure stehen dann jeweils die aktuellen Messwerte.

double temp, pressure;
 pressure = bmp_sensor.getPressure();
 temp = bmp_sensor.getTemperature();

Aufgaben

Verbinde den BMP280 Sensor mit dem Arduino, und erstelle einen Arduino-Sketch, welcher regelmäßig Luftdruck und Temperatur auf dem seriellen Monitor ausgibt!

Du hast erfahren, dass sich aus dem gemessenen Luftdruck die Aufbauhöhe der senseBox bestimmen lässt. Verwende die Funktion bmp.altitude(...) um die Höhe zu berechnen, und gib diese ebenfalls auf dem Seriellen Monitor aus.

Tipp: Sieh dir das der BMP280-Bibliothek beiliegende Beispiel an. Der Referenzdruck P0 muss an die derzeitige Wetterlage angepasst werden: Hier findest du den aktuellen Luftdruck.

results matching ""

    No results matching ""