Luftdruck
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 die senseBoxMCU über den I²C/Wire Port angeschlossen , und so digital ausgelesen (siehe auch Der serielle Datenbus).
Die I²C-Adresse des BMP280 kann über den BMP280 Sensor
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 Höhenbestimmung über den Luftdruck
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
Um den Sensor zum Laufen zu bringen schließe ihn einfach an den I²C/Wire Port an !
Programmierung - Auslesen des Sensors
Der Sensor kann über die Bibliothek SenseBoxMCU.h
angesteuert werden.
Nachdem diese eingebunden wurde, muss eine Instanz bmp
davon erstellt werden
Auf diesem Objekt werden alle Funktionen der Bibliothek aufgerufen:
#include <SenseBoxMCU.h>
BMP280 bmp_sensor;
In der setup() Funktion
setup()
-Funktion muss der Sensor initialisiert werden. Verwende dazu die folgenden Zeilen:void setup(){
bmp_sensor.begin();
}
Nun muss der Sensor in der loop() Funktion
loop()
-Funktion ausgelesen werden.
In den Variablen temp
und pressure
stehen dann jeweils die aktuellen Messwerte.void loop(){
double temp, pressure;
pressure = bmp_sensor.getPressure();
temp = bmp_sensor.getTemperature();
}
Aufgaben
Verbinde den Aufgabe 1
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 Aufgabe 2
bmp.altitude(...)
um die Höhe zu berechnen, und gib diese ebenfalls auf dem Seriellen Monitor aus.