[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 ?

  • [Gelöst] BME280 und die Höhe über dem Meeresspiegel? Schau mal ob du hier fündig wirst!

  • > 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

  • 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.

  • 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 :)

  • 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

    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.

  • 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:

    Zitat

    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:

    Zitat

    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.

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

    Meine Pis

    Pi B Rev 2 24/7 - DHCP-Server im Heimnetz
    Pi 2B Rev 1.1 Home-Infocenter (Domoticz) - Kamera auf Garten
    Pi 2B Rev 1.1 Testgerät mit USV, Musikplayer, Kodi,
    Pi 3B Rev 1.2 Videos aus Netzwerk (an Rückseite des TV moniert)
    Pi 3B+ Rev 1.3 mit 3.5-TouchDisplay, Peppy-Web-Radio
    Pi 4B - 4GB Rev 1.1 Testgerät - Argon-ONE-Gehäuse

    Pi Zero Testgerät

    Pi Zero W Rev 1.1 Motion-Eye auf Garten

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!