Luftdruck messen – aber richtig!

Wetterstation

Eins der beliebtesten Projekte für Arduino oder Raspberry Pi ist wohl der Aufbau einer Wetterstation mit Anzeige der Temperatur, der Luftfeuchtigkeit oder des Luftdrucks. Also fleißig ans Basteln, einen DHT22 Sensor (Temperatur und Luftfeuchtigkeit) oder einen BMP180 (Luftdruck und Temperatur) oder BME280 (Temperatur, Luftdruck und Luftfeuchtigkeit) mit dem Controller oder Pi verbunden, ein Messprogramm geschrieben, eine schöne grafische Ausgabe gebaut und fertig.

Komischerweise unterscheidet sich der angezeigte Luftdruck – je nach Wohnort – meist von der "offiziellen" Angabe im Wetterbericht. Woran liegt das?

Mit dem Luftdruck ist es so eine Sache. Vom Sensor wird logischerweise immer der lokal zum Messzeitpunkt existierende Luftdruck angezeigt. Das macht die Ergebnisse einzelner Wetterstationen nur schwer miteinander vergleichbar. Je höher die Station, desto niedriger der Luftdruck. Wer's nicht glaubt, soll mal den Luftdruck unten an der Straße messen, dann auf ein möglichst hohes Gebäude steigen – oder den Lift nehmen – und nochmal messen.

Damit die von Wetterstationen gemessenen Luftdruckwerte miteinander vergleichbar sind, wird der Luftdruck normalisiert, d.h. auf dieselbe Höhe bezogen – die Meereshöhe.

Einfache Methode

Wenn man weiß, dass der Luftdruck alle 8 Meter um 1 Hektopascal [hPa] abnimmt, muss man nur die Höhe vor Ort durch 8 dividieren und das Ergebnis zum gemessenen Luftdruck addieren um den auf Meereshöhe reduzierten Luftdruck zu ermitteln.

Lasst euch von dem Wort "reduzieren" nicht verwirren. Das kommt wohl daher, dass die Höhe auf 0 reduziert wird, nicht der Luftdruck.

Früher hat man statt Hektopascal auch Millibar gesagt, ist aber ein und dasselbe.

Bei 600 Metern Höhe entspräche ein gemessener lokaler Luftdruck von 940hPa einem Luftdruck von 1015 hPa auf Meereshöhe.

Leider ist diese Methode etwas ungenau, für den Hausgebrauch aber ausreichend. Vor allem dann, wenn der Sensor im Innenraum aufgestellt ist, wo einigermaßen konstante Temperaturen herrschen.

Für alle, die eine genauere Berechnung bevorzugen oder den Sensor an der frischen Luft anbringen wollen, gibt es die barometrische Höhenformel:

Genaue Methode mit barometrischer Höhenformel

Im oben verlinkten Wikipediaartikel ist alles sehr ausführlich und wissenschaftlich erklärt. Uns interessiert eigentlich nur der Abschnitt "Reduktion auf Meereshöhe".

Auch hier gibt es verschiedene Möglichkeiten, den Luftdruck auf Meereshöhe zu reduzieren, allerdings ist die  Genauigkeit auf die xte Stelle hinter dem Komma für eine Wetterstation nicht relevant und anhand der Genauigkeit unseres Sensors auch zweifelhaft.

Ich habe mich für eine Formel entschieden, welche die aktuelle Lufttemperatur berücksichtigt.

Nicht erschrecken, hier kommt die Erklärung der Formel:

Der Wert 0,0065 ist der sogenannte Temperaturgradient, der Betrag, um den die Temperatur mit zunehmender Höhe abnimmt. Bei z.B. 600m wären das 3,9°.

Den Exponent -5,255 nehme ich als gegeben an. Wer will, kann versuchen, sich das aus  Wikipedia herzuleiten.

Beispiel

Mein Luftdrucksensor steht auf 1000m Höhe und misst 980hPA, die Außentemperatur beträgt 10°C bzw. 283,15K.

Verglichen mit der gröberen Berechnung (Ergebnis 1105hPa) kein besonderer Unterschied – zumindest so lange sich die Temperatur um die 10 °C  bewegt.

Andererseits gibt es große Unterschiede zwischen Tages- und Nachttemperaturen. Wird die Temperatur nicht berücksichtigt, gibt es je nach Uhrzeit große Unterschiede in den Messungen, obwohl sich der eigentliche Luftdruck kaum geändert hat.

Python

Nachfolgend noch ein Python Skript unter Verwendung eines BME280 Sensors, für einen Raspberry Pi. Bitte beachten, dass die Lufttemperatur einen erheblichen Einfluss auf die Messung hat. Deshalb unbedingt die Außentemperatur (im Schatten, Nordseite des Hauses) messen, da sonst die Ergebnisse ggf. stark von der Realität abweichen.

Eine Anleitung in Englisch für den Raspberry Pi und einen BME280 Sensor findest du z.B. hier: https://www.raspberrypi-spy.co.uk/2016/07/using-bme280-i2c-temperature-pressure-sensor-in-python/

Eine Anleitung für einen ESP8266 basierenden Microcontroller findest du z.B. hier: https://www.smarthome-tricks.de/esp8266/bme280-temperatur-luftfeuchtigkeit-und-luftdruck-auslesen/

Schreibe einen Kommentar

Ich freue mich über Lob und Kritik.
Falls du Probleme mit der hier vorgestellten Anleitung hast und nicht weiter kommst:
Bitte das Problem oder die Fehlermeldung(en) möglichst genau beschreiben, auch an welcher Stelle (z.B. in welchem Node oder Befehl) und unter welchen Umständen der Fehler auftritt.
Gerne kannst du mir auch ein Mail schreiben. Die Adresse findest du im Impressum.
Ich gebe mir viel Mühe, meinen Lesern weiterzuhelfen. Je konkreter du bist, desto einfacher und schneller kann ich versuchen zu helfen.
Deine E-Mail-Adresse wird nicht veröffentlicht.
Erforderliche Felder sind mit * markiert