Falsche Sensorwerte für Feuchtigkeit und Temperatur

  • Hallo Pius,


    Vielen Dank für deinen ausführlichen Bericht und Erklärung!
    Das der Feuchtigkeitsmesswert irgendwie mit der Temperatur zusammenhängt habe ich durch meine Versuche schon vermutet. Die Beeinträchtigung oder gar die Veränderung des Sensors durch zu viel Hitze beim Löten kann ich auch verstehen. Evtl. hat einer meiner Sensoren auch gelitten als ich ihn auslöten musste. Die beiden letzten Sensoren sollten hier nicht beeinträchtigt worden sein.

    Ich werde später vielleicht nochmal mit dem Sensor experimentieren. Aktuell wechsle ich auf den DHT22, welcher zwar keinen Luftdruck erfassen kann, jedoch sehr kooperativ ist was Messwert und Abweichung dessen angeht.

    :)

  • Hier noch ein Bild der Werte aus meinem BME680 zum Vergleich.
    In der ersten Zeile der rohe Widerstandswert der Luft, was ein Mass für die Luftqualität darstellt. Darunter die gemessene Temperatur und rechts davon die Feuchte. Die effektive Feuchte kann ich leider nicht bestimmen.

    Zur Temperaturanzeige ist zu sagen, dass ich in meiner Testsoftware viel zu häufig messe. Da der Sensor zur R Bestimmung der Luft auf dem Chip eine Heizung aktiviert ergibt sich eine Abweichung (leicht höher) der Temperatur. Ich machte es mir nicht zu aufwändig und bestimmte im Sekundenintervall alle Messwerte. Die Software nimmt keine Kalibrierung vor.
    Gruss
    Pius

    BME680.jpg

  • Hallo @MK


    hast Du gelesen, dass Nicole in Deinen Bildern eine Temperatur Differenz von um die 0.3˚C ablesen kann? Beim Überflug Deiner Bilder stelle ich ähnliches fest. Ich nehme an, dass Du Dich mit der Aussage der Abweichung auf

    Zitat

    Bei beiden habe ich schon beim übergeben etwas abgezogen

    Sensor 1 Minus 1.4

    Sensor 2 Minus 3

    beziehst.


    Den BME280 hatte ich noch nie in den Händen, aber ich implementierte versuchsweise einen BME680 zusammen mit einem ATmega. Weil ich daraus lernte, dass der BME680 für genauere Anzeigen eine Art Kalibrierung benötigte, schaute ich eben kurz im DB des BME280 nach und fand auf Seite 23:

    Zitat

    4.2 Output compensation

    The BM E280 output consists of the ADC output values. However, each sensing element behaves differently. Therefore, the actual pressure and temperature must be calculated using a set of calibration parameters. In this chapter, the method to read out the trimming values will be given. The recommended calculation uses fixed point arithmetic and is given in chapter 4.2.3.

    In high-level languages like MatlabTM or LabVI EWTM, fixed-point code may not be well supported. In this case the floating-point code in appendix 8.1 can be used as an alternative.

    For 8-bit micro controllers, the variable size may be limited. In this case a simplified 32 bit integer code with reduced accuracy is given in appendix 8.2.


    Auch im Datenblatt steht, dass durch zu hohe Betriebsspannungen (ist bei Dir nicht der Fall) oder durch Nichteinhalten der Lötprozedur die Genauigkeit des Sensors leidet. Das Datenblatt nennt die folgenden Toleranzen:


    Feuchte +-3%

    Temperatur +-0.5˚C bei 25˚C

    Abweichung im Bereich 0 - 65˚ +-1˚C


    Da wäre Deine Anzeige innerhalb der Toleranz. Was ich nicht weiss, ob sich die Angaben auf das unkalibrierte Signal bezieht oder nicht.

    Abweichungen (Datenblatt) in der Feuchtemessung scheint mir mit 3% sehr genau, wenn man berücksichtigt was der Sensor kostet.
    Da der Sensor die Temperaturmessung intern zur Korrektur der Feuchtewerte heanziehen muss, erscheint mir eine höhere Abweichung der Feuchte erklärbar, wenn die Tempeartur bereits daneben liegen soll. Übrigens, eine Korrektur der Werte mit einem Sub würde ich nicht empfehlen, weil sich damit der Messfehler weiter ausbreiten kann.


    Ein Fehler in der Kommunikation, der zu Messwertfehlern im Bereich von einigen Grad führen, würde ich ausschliessen. Daher gehe ich davon aus, dass Deine Soft/Harwareimplementation richtig sein muss und dass auch die I2C Leitungen nicht zu lange sind.

    Beim BME680 stellte ich ohne zusätzliche Kalibrierungen mit 4 unterschiedlichen Sensoren Abweichungen von ca. 0.3˚ fest und der Vergleich mit zwei Fluke Temperaturmessgeräten (sehr lange nicht mehr kalibriert) von +-0.3˚ C fest. Dies ist zwar keine Messtechnisch sauberer Vergleich, reicht mir aber für die Abschätzung der realtiven Genauigkeit.


    Sorry, dass ich Dir nicht mehr helfen kann.
    Pius

  • Hallo Nicole,


    Die Werte passen dennoch nicht zur Realität >2 bis 3 Grad finde ich nicht schön.

    Im Foto von meinem vorhergehenden Post hatte ich noch einen weiteren Sensor. Den Wollte ich allerdings nicht auslöten.


    Ich könnte bei Weiterverarbeitung der Werte zwar korrigieren, jedoch ist mir das nicht somangenehm.

    So werde ich erst einmal versuchen mit anderen Sensoren zu arbeiten

  • Hallo Mi Ke,


    danke für deinen Aufbau und den Test.


    0,3 Grad Abweichung ist denke ich normal.

    Du hast am Anfang geschrieben es wären 2 Grad Abweichung ?


    Warum sind es jetzt nur noch 0,3 Grad Abweichung ?

    Wenn Du den Sensor zusammen mit dem ESP32 im Gehäuse hast wird es natürlich auch nochmals wärmer.

  • Habe heute nochmals getestet. Anscheinend sind die Sensoren nicht so genau wie überall angepriesen.
    Vielleicht habe ich aber auch schlechte Qualität für teuer Geld bekommen. X(;(


    Versuchsaufbau ist wie folgt:


    - Breadboard mit ESP32 und OLed Display

    - Oled ist am I2C 1

    - BME´s sind am I2C 2 angeschlossen

    - I2C 2 10kHz


    1. Versuch - Sensoren direkt neben einander, kurz verdrahtet

    [Blockierte Grafik: http://abload.de/thumb/versuch1sgkvs.jpg]


    2. Versuch - wie Versuch 1 jedoch Sensoren vertauscht

    [Blockierte Grafik: http://abload.de/thumb/versuch22ckep.jpg]

    3. Versuch - 2. Sensor über 2 m Kabel angeschlossen

    [Blockierte Grafik: http://abload.de/thumb/versuch3c8j7n.jpg]

  • Hi Nicole,


    Beide Sensoren hängen im gleichen Bus und haben unterschiedliche Adressen. Sie sind ansonsten gleich angesteuert.

    Ich versuche mal einen Quertausch.

  • Hallo Mi Ke,


    jedes Bauteil hat eine gewisse Streuung.


    Somit ist es fast unmöglich genau die gleichen Werte zu messen.

    Aber 2 Grad +/- Minus sollte es dann doch nicht sein.


    Es wäre interessant wenn Du den BME280 von Schaltung 1 in Schaltung 2 und umgekehrt einbauen könntest.

    Somit kannst du sehr schnell sehen ob es an den Sensoren liegt.


    Der Code ist ja in beiden Schaltungen der gleiche richtig ?

  • Hallo Nicole,


    Beide Sensoren sind im Gehäuse verbaut. Getestet habe ich sowohl mit als auch ohne, dabei konnte ich keinen signifikanten Unterschied feststellen

    Die Sensoren werden mit 3.3V angesteuert

  • Hallo Mi Ke,


    wie ist der Aufbau genau ?


    Hast Du den Sensor in einem Gehäuse verbaut ?

    Tausche mal den Sensor 1 mit dem Sensor 2.


    Hast Du jetzt immer noch die gleichen Werte ?

  • mehrere Thermometer aus dem Handel unterschiedlicher Hersteller. Die Werte dieser sind ungefähr gleich.

    Hab hier mal ein Beispiel


    Sensor 1 ca. 4cm vom ESP entfernt zeit 17 Grad

    Sensor 2 ca. 2.5 m vom ESP entfernt zeigt 20 Grad


    Bei beiden habe ich schon beim übergeben etwas abgezogen

    Sensor 1 Minus 1.4

    Sensor 2 Minus 3


    Hier könnte ich mit leben, jedoch macht mich stutzig, dass auch die Werte der Luftfeuchtigkeit so stark abweichen.

    [Blockierte Grafik: https://abload.de/img/c889a2a0-79c2-4987-8dvkyx.jpeg]

  • Ich benutze den im Video gezeigten BME280 am ESP32.

    Irgendwie scheint der Sensor höhere Werte bei Temperatur (>2 Grad) und niedrigere Werte bei der Luftfeuchtigkeit (<7%) anzuzeigen.

    Gibt es hier evtl. Einflüsse die den I2C beeinflussen?
    Die Module scheinen intern schon 10K Pullups verbaut zu haben. Wenn ich z.B. 2 BME280 verwende habe ich also 5k Ohm. Der interne Pullup vom ESP ist deaktiviert.

    Habt ihr eine Idee, was ich verändern sollte um vernünftige Werte zu bekommen?