[Gelöst] BME280 und die Höhe über dem Meeresspiegel

  • Mir ist aufgefallen, dass bei einem Hochdruckgebiet (> 1000 hPa) entweder mein Haus um 150 Meter absackt und bei einem Tiefdruckgebiet (< 990 hPa) wieder um 150 Meter angehoben wird, oder, dass etwas mit der Software oder dem Algorithmus des BME280 nicht stimmt. In Arduino habe ich als Druck über dem Meeresspiegel 1013.25 hPa eingetragen.

    Ich benutze die Blbliothek Adafruit_BME280.h und Adafruit_Sensor.h und lese dann mit bme.readAltitude(DRUCKMEERESSPIEGEL_HPA); aus.

    Wo kann ich nachsehen, wie das ganze berechnet wird, um ggfs. zu korrigieren ?

  • > In Arduino habe ich als Druck über dem Meeresspiegel 1013.25 hPa eingetragen.

    Der Luftdruck über dem Meeresspiegel ist sicher nicht konstant!


    Die Höhe wird wahrscheinlich aus der Differenz des gemessenen Luftdrucks und dem Referenzdruck berechnet, und das fuert zu dieser Abweichung. Die Sache ist aber noch einiges komplizierter, weil der Temperaturgradient mit eingerechnet werden muesste.


    Wenn du es genauer wissen willst: Wikipedia

  • Der Luftdruck über dem Meeresspiegel ist sicher nicht konstant!


    Die Höhe wird wahrscheinlich aus der Differenz des gemessenen Luftdrucks und dem Referenzdruck berechnet, und das fuert zu dieser Abweichung. Die Sache ist aber noch einiges komplizierter, weil der Temperaturgradient mit eingerechnet werden muesste.


    Wenn du es genauer wissen willst: Wikipedia

    Ja, das weiss ich.

    Ich wollte wissen, wo das softwareseitig berechnet wird, damit ich mir das angucken und das gegebenenfalls korrigieren kann.

    Die allgemeine Formel ist ja:

    Code
    H = 44330 * [1 - (P/p0)^(1/5.255) ]
    H = altitude (m)
    P = measured pressure (Pa) from the sensor
    p0 = reference pressure at sea level (e.g. 1013.25hPa)
  • Im Code wird als Kommentar sogar in Zeile 442-444 und 461-463 darauf hingewiesen, dass man auf eine inkorrekte Höhe kommt, wenn man ihn benutzt:

    https://forums.adafruit.com/viewtopic.php?f=22&t=58064

  • fred0815

    Changed the title of the thread from “BME280 und die Höhe über der Meeresspiegel” to “[Gelöst] BME280 und die Höhe über dem Meeresspiegel”.
  • m Code wird als Kommentar sogar in Zeile 442-444 und 461-463 darauf hingewiesen, dass man auf eine inkorrekte Höhe kommt, wenn man ihn benutzt:

    Alternative ist den Algorithmus selbst zu implementieren :shy:

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • Alternative ist den Algorithmus selbst zu implementieren :shy:

    Das Problem scheint mit der Temperatur zusammenzuhängen, bzw. mit der Annahme, dass die Temperatur auf Meereshöhe die gleiche ist, wie die am Sensor. Ich werde mich Mal dranhängen und sehen, ob ich etwas realistischere Werte zusammenbekomme. Das kann aufgrund der derzeitigen Temperaturen ein wenig dauern.

  • Ich werde mich Mal dranhängen

    :thumbup:


    Ich habe z.B. die Taupunktberechnung hier selbst implementiert. Wenn Du Erfolg hast kannst Du gerne einen PR stellen und Deinen Code dort der Allgemeinheit zur Verfuegung stellen ;)

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • Das ist die Abkuerzung von Pull Request und ist die Methode wie man im git/github Dateien in fremde Repositories reinbringen kann. Der Repositoryeigner akzeptiert den PR und merged die Dateien aus dem PR ins eigene Repository. Damit ist derjenige, der den PR gestellt hat als Contributor in der git Historie gelistet.


    Beispiel von raspiBackup:


    Aber Du kannst mir auch gerne den Code per PN zukommen lassen und ich stelle ihn bei mir rein.


    Allerdings ist es nicht sonderlich schwer einen PR zu erstellen. Das hat gerade letztens derjenige mit den roten Kaestchen gemacht:


    1) Fork des Repos

    2) Geaenderte Dateinen in den Fork reinstellen

    3) PR stellen


    Wenn Du es ueben willst - ich helfe Dir auch gerne dabei :)

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

    Edited once, last by framp ().

  • Hallo fred0815,


    findest du hier Ansätze zur Lösung? Anwemdung, Bibliothek(en) inl. Quällkot und Erläuterungen.


    Du solltest eine Höhenangabe machen, auf die sich die Messung bezieht. Wrst dann kannst Du über Druckänderungen Höhendifferemzen angeben.


    Beste Grüße aus Minga


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Ich habe jetzt mal ein GPS danebengelegt, die Abweichung ist sogar viel gravierender, als gedacht.

    Das GPS zeigt eine Höhe von 243 bis 295 Metern (ich muss mal weiter raus, damit ich mehr Satelliten reinbekomme), der BME280 jetzt 213 Metern, das niedrigste war 80 Meter.

  • Leider zeigt der BME280 die Tendenz zu hohe Temperaturen zu messen. Das geht an die 2 Grad. Im starken Luftstrom sinkt die Abweichung auf etwa +0,5 Grad. Ich hatte Mal eine Handvoll verschiedener Temperatur Sensoren verglichen ausgehend von einem Threads in einem US Forum.

    Ergo muss man die gemessenen Werte kompensieren oder zu anderen Sensoren greifen.

  • Und schon ist mir ein ESP32 abgeraucht. Ich habe einen StepUp von einem 4,2 Volt Li-Ion-Akku auf 5 Volt genommen und an die 5 Volt des ESP32 angeklemmt, jetzt wird dieser Chip (CP2102 USB to UART Bridge) extrem heiss und er wird auch nicht mehr vom PC erkannt. Daten vom BME280 auslesen und senden via MQTT tut er aber nach wie vor.

    Update: In einem Anfall von Gewalt habe ich mit einem scharfen Messer die Kontakte des Chips weggekratzt (siehe Bild2) und komme jetzt mit einem externen CP2102 auf Tx und RX auf den ESP32, funktioniert also wieder ohne warm zu werden. :bravo2: Aber in Zukunft vermeide ich, den ESP32 via Pins mit 5 Volt versorgen zu wollen.

  • Ach ja, ganz vergessen, ich hatte eine Anfrage an BerryBase gestartet, wegen der Belegung der Pins:

    Quote

    BerryBase Anfrage-Formular

    Artikel: ESP32 NodeMCU Development Board (NMCU-ESP32)

    Frage:

    Ich habe folgende Fragen zum Artikel ESP32 NodeMCU Development Board:

    Wo gibt es denn die Pinbelegung ? Die Dev-Boards, die ich sonst im Internet finde, haben eine komplett andere Belegung !

    Die Antwort:

    Quote

    Leider liegen uns dazu keine Informationen vor.

    Wir sind lediglich ein Online Handel und bieten keinerlei technischen Support.

    Bevor wir Ihnen zu dieser Sache also eine Auskunft geben, die sich im Nachhinein gegebenfalls als falsch heraus stellt möchten wir Sie auf die einschlägigen Foren verweisen.

  • das obige ESP32 Board entspricht wohl dem von AZ-Delivery angebotenem. Das habe ich für einen AZ-Touch gekauft.

    Wenn Du dich dort mal umschaust...

    Ich habe jedenfalls handschriftliche Notizen zur Pinbelegung gefunden, folglich muss es da nähere Informationen geben!

  • Danke, das sieht gut aus.

    Ich wollte den zweiten aus Angst nicht benutzen, da mir beim ersten der CP2102 abgeraucht ist, nachdem ich den ESP32 ext. mit 5 Volt versorgt hatte, aber die Belegung sieht so aus, wie ich ihn angeschlossen hatte, unten links 5 Volt, oben rechts GND.

    Aber für den zweiten nehme ich lieber einen Stepdown auf 3,3 Volt, sicher ist sicher.

  • manche haben nur eine 3.3V Anbindung! Konservativ startend kann man bei 3.3V beginnen und ggf. später auf 5V für den Programmieranschluss gehen.

    Deswegen sind die Adapter häufig anpassbar 3.3V, 5V oder spannungsfrei.

  • Schau doch auch mal
    hier
    Viele, viele Infos zum ESP32 in verschiedenen Bauformen