{"id":1595,"date":"2021-01-06T12:20:37","date_gmt":"2021-01-06T11:20:37","guid":{"rendered":"https:\/\/www.rustimation.eu\/?p=1595"},"modified":"2026-01-20T17:44:37","modified_gmt":"2026-01-20T16:44:37","slug":"luftdruck-messen-aber-richtig","status":"publish","type":"post","link":"https:\/\/www.rustimation.eu\/index.php\/luftdruck-messen-aber-richtig\/","title":{"rendered":"Luftdruck messen &#8211; aber richtig!"},"content":{"rendered":"<h2>Wetterstation<\/h2>\n<p>Eins der beliebtesten Projekte f\u00fcr Arduino oder Raspberry Pi ist wohl der Aufbau einer Wetterstation mit Anzeige der Temperatur, der Luftfeuchtigkeit oder des Luftdrucks. Also flei\u00dfig 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\u00f6ne grafische Ausgabe gebaut und fertig.<\/p>\n<p>Komischerweise unterscheidet sich der angezeigte Luftdruck &#8211; je nach Wohnort &#8211; meist von der \"offiziellen\" Angabe im Wetterbericht. Woran liegt das?<\/p>\n<p><!--more--><\/p>\n<p>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\u00f6her die Station, desto niedriger der Luftdruck. Wer's nicht glaubt, soll mal den Luftdruck unten an der Stra\u00dfe messen, dann auf ein m\u00f6glichst hohes Geb\u00e4ude steigen &#8211; oder den Lift nehmen &#8211; und nochmal messen.<\/p>\n<p>Damit die von Wetterstationen gemessenen Luftdruckwerte miteinander vergleichbar sind, wird der Luftdruck normalisiert, d.h. auf dieselbe H\u00f6he bezogen &#8211; die Meeresh\u00f6he.<\/p>\n<h3>Einfache Methode<\/h3>\n<p>Wenn man wei\u00df, dass der Luftdruck alle 8 Meter um 1 Hektopascal [hPa] abnimmt, muss man nur die H\u00f6he vor Ort durch 8 dividieren und das Ergebnis zum gemessenen Luftdruck <strong>addieren <\/strong>um den auf Meeresh\u00f6he reduzierten Luftdruck zu ermitteln.<\/p>\n<p style=\"padding-left: 40px;\"><span style=\"color: #808080;\">Lasst euch von dem Wort \"reduzieren\" nicht verwirren. Das kommt wohl daher, dass die H\u00f6he auf 0 reduziert wird, nicht der Luftdruck.<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"color: #808080;\">Fr\u00fcher hat man statt Hektopascal auch Millibar gesagt, ist aber ein und dasselbe.<\/span><\/p>\n<p>Bei 600 Metern H\u00f6he entspr\u00e4che ein gemessener lokaler Luftdruck von 940hPa einem Luftdruck von 1015 hPa auf Meeresh\u00f6he.<\/p>\n<p>Leider ist diese Methode etwas ungenau, f\u00fcr den Hausgebrauch aber ausreichend. Vor allem dann, wenn der Sensor im Innenraum aufgestellt ist, wo einigerma\u00dfen konstante Temperaturen herrschen.<\/p>\n<p>F\u00fcr alle, die eine genauere Berechnung bevorzugen oder den Sensor an der frischen Luft anbringen wollen, gibt es die <a href=\"https:\/\/de.wikipedia.org\/wiki\/Barometrische_H%C3%B6henformel\" target=\"_blank\" rel=\"noopener\"><strong>barometrische H\u00f6henformel<\/strong><\/a>:<\/p>\n<h3>Genaue Methode mit barometrischer H\u00f6henformel<\/h3>\n<p>Im oben verlinkten Wikipediaartikel ist alles sehr ausf\u00fchrlich und wissenschaftlich erkl\u00e4rt. Uns interessiert eigentlich nur der Abschnitt \"Reduktion auf Meeresh\u00f6he\".<\/p>\n<p>Auch hier gibt es verschiedene M\u00f6glichkeiten, den Luftdruck auf Meeresh\u00f6he zu reduzieren, allerdings ist die\u00a0 Genauigkeit auf die xte Stelle hinter dem Komma f\u00fcr eine Wetterstation nicht relevant und anhand der Genauigkeit unseres Sensors auch zweifelhaft.<\/p>\n<p>Ich habe mich f\u00fcr eine Formel entschieden, welche die aktuelle Lufttemperatur ber\u00fccksichtigt.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1600\" src=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2021\/01\/barometrischeHF.jpg\" alt=\"\" width=\"698\" height=\"152\" srcset=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2021\/01\/barometrischeHF.jpg 698w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2021\/01\/barometrischeHF-300x65.jpg 300w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/p>\n<p>Nicht erschrecken, hier kommt die Erkl\u00e4rung der Formel:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1601 size-full\" src=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2021\/01\/legende-e1609928548502.jpg\" alt=\"\" width=\"351\" height=\"150\" srcset=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2021\/01\/legende-e1609928548502.jpg 351w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2021\/01\/legende-e1609928548502-300x128.jpg 300w\" sizes=\"auto, (max-width: 351px) 100vw, 351px\" \/><\/p>\n<p>Der Wert 0,0065 ist der sogenannte Temperaturgradient, der Betrag, um den die Temperatur mit zunehmender H\u00f6he abnimmt. Bei z.B. 600m w\u00e4ren das 3,9\u00b0.<\/p>\n<p>Den Exponent -5,255 nehme ich als gegeben an. Wer will, kann versuchen, sich das aus\u00a0 Wikipedia herzuleiten.<\/p>\n<h4>Beispiel<\/h4>\n<p>Mein Luftdrucksensor steht auf 1000m H\u00f6he und misst 980hPA, die Au\u00dfentemperatur betr\u00e4gt 10\u00b0C bzw. 283,15K.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1604\" src=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2021\/01\/beispiel-1.jpg\" alt=\"\" width=\"904\" height=\"287\" srcset=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2021\/01\/beispiel-1.jpg 904w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2021\/01\/beispiel-1-300x95.jpg 300w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2021\/01\/beispiel-1-768x244.jpg 768w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><\/p>\n<p>Verglichen mit der gr\u00f6beren Berechnung (Ergebnis 1105hPa) kein besonderer Unterschied &#8211; zumindest so lange sich die Temperatur um die 10 \u00b0C\u00a0 bewegt.<\/p>\n<p>Andererseits gibt es gro\u00dfe Unterschiede zwischen Tages- und Nachttemperaturen. Wird die Temperatur nicht ber\u00fccksichtigt, gibt es je nach Uhrzeit gro\u00dfe Unterschiede in den Messungen, obwohl sich der eigentliche Luftdruck kaum ge\u00e4ndert hat.<\/p>\n<h4>Python<\/h4>\n<p>Nachfolgend noch ein Python Skript unter Verwendung eines BME280 Sensors, f\u00fcr einen Raspberry Pi. Bitte beachten, dass die Lufttemperatur einen erheblichen Einfluss auf die Messung hat. Deshalb unbedingt die <strong>Au\u00dfen<\/strong>temperatur (im Schatten, Nordseite des Hauses) messen, da sonst die Ergebnisse ggf. stark von der Realit\u00e4t abweichen.<\/p>\n<pre class=\"lang:python decode:true \" title=\"Luftdruck - Reduzierung auf Meeresh\u00f6he\">#!\/usr\/bin\/python\r\n##########################\r\n# auf Python 3.x upgedated\r\n##########################\r\nimport bme280 as bme280\r\nimport smbus2\r\n\r\n# Constants\r\nhome_alt=600                         # H\u00f6he des Standorts\r\ntemperature_gradient = 0.0065        # Standard-Temperaturgradient\r\n\r\n# BME280 sensor address (default address)\r\naddress = 0x76\r\n# Initialize I2C bus\r\nbus = smbus2.SMBus(1)\r\n# Load calibration parameters\r\ncalibration_params = bme280.load_calibration_params(bus, address)\r\n# Read BME80\r\ndata = bme280.sample(bus, address, calibration_params)\r\n# Extract temperature, pressure, and humidity\r\ntemperature = data.temperature\r\ntemperatureK = temperature + 273.15  # Temperatur in Kelvin\r\npressure = data.pressure * (temperatureK \/ (temperatureK + home_alt * temperature_gradient)) ** -5.255\r\nhumidity = data.humidity\r\n\r\n# barometrische H\u00f6henformel\r\ncompRelPress = pressure * (temperatureK \/ (temperatureK + home_alt * temperature_gradient)) ** -5.255\r\n\r\n# Messwerte des BME Sensors\r\nprint (\"Temperatursensor: \", temperature)\r\nprint (\"Luftdrucksensor: \", pressure)\r\nprint (\"Luftfeuchtigkeitssensor: \", humidity)\r\n\r\n# Luftdruck reduziert auf Meeresh\u00f6he (einfache Formel)\r\nprint (\"simple reduced pressure\",pressure + (home_alt\/8))\r\n\r\n# Luftruck reduziert auf Meeresh\u00f6he (komplexe Formel)\r\nprint (\"complex reduced pressure\", compRelPress)<\/pre>\n<p>Eine Anleitung in Englisch f\u00fcr den Raspberry Pi und einen BME280 Sensor findest du z.B. hier:\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-bme280-python\/\">https:\/\/randomnerdtutorials.com\/raspberry-pi-bme280-python\/<\/a><\/p>\n<p>Eine Anleitung f\u00fcr einen ESP8266 basierenden Microcontroller findest du z.B. hier: <a href=\"https:\/\/www.smarthome-tricks.de\/esp8266\/bme280-temperatur-luftfeuchtigkeit-und-luftdruck-auslesen\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.smarthome-tricks.de\/esp8266\/bme280-temperatur-luftfeuchtigkeit-und-luftdruck-auslesen\/<\/a><\/p>\n<h5>Das Externally Managed Environment Problem<\/h5>\n<p>Solltet ihr mit Raspberry Pi OS in der Version Bookworm oder sp\u00e4ter arbeiten, wird der \u00fcbliche Installationsbefehl f\u00fcr den BME280 fehlschlagen. Normalerweise wird der mit<\/p>\n<p><span class=\"lang:default decode:true crayon-inline\">sudo pip install RPI.BME280<\/span><\/p>\n<p>installiert. Stattdessen gibt es einen Fehler der Art<\/p>\n<p><span class=\"lang:default decode:true crayon-inline\">error:externally-managed-environment<\/span><\/p>\n<p>Das bedeutet, neue \u00fcber pip zu installierende Python Libraries m\u00fcssten in einer virtuellen Umgebung installiert werden. Ich meine: f\u00fcr ein reines Bastelprojekt ein eindeutiger Engineering-Overkill. Abhilfe findest du in meinem Beitrag <a href=\"https:\/\/www.rustimation.eu\/index.php\/python-das-externally-managed-environment-problem\/#Der_Quick_Dirty_Ansatz_fuer_risikofreudige_Hobbyisten\">Python \u2013 Das Externally Managed Environment Problem<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Formel bzw. Python Subroutine zum Ausrechnen (Reduzieren) des Luftdrucks auf Meeresh\u00f6he basierend auf Temperatur und Luftdruck vor Ort<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,53,9,69],"tags":[121,122,14,57,142,120,51],"class_list":["post-1595","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-iot","category-python","category-tips-tricks","tag-barometrische-hoehenformel","tag-bme280","tag-bmp085","tag-bmp180","tag-luftdruck-auf-meereshoehe","tag-relativer-luftdruck","tag-wetterbericht"],"_links":{"self":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts\/1595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1595"}],"version-history":[{"count":1,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts\/1595\/revisions"}],"predecessor-version":[{"id":3785,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts\/1595\/revisions\/3785"}],"wp:attachment":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/categories?post=1595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/tags?post=1595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}