Forum: Mikrocontroller und Digitale Elektronik BME280 hohe Temperaturabweichung


von MarkusS (Gast)


Lesenswert?

Hallo zusammen,

ich lese einen BME280 per I2C aus, funktioniert soweit auch prinzipiell, 
allerdings ist die ausgelesene Temperatur ca. 10 °C zu hoch. Mir ist 
bewusst, dass der BME280 nicht zur Messung der Umgebungstemperatur 
geeignet ist, aber diese hohe Abweichung ist doch irgendwie seltsam. Der 
BME280 ist auf einer Platine verlötet, neben einem ESP8266, beide 
zusammen befinden sich in einem geschlossenen Gehäuse (ca. 8x6x3cm, ABS, 
dies hat nur eine Aussparung für einen weiteren Sensor).

Ich habe leider gerade keine sinnvolles Messgerät um die Temperatur im 
Inneren des Gehäuses zu messen, aber rein vom Gefühl her würde ich 
sagen, dass sich das Gehäuseinnere (und insbesondere die Platine) durch 
den ESP und dem BME280 nicht soweit aufheizt, dass dies eine Abweichung 
von 10 °C erklärt.

Hat jemand evtl. Erfahrungen und kann mir sagen, ob ich damit 
gefühlsmäßig richtig liege? Ich kann leider erst nächste Woche ein 
Thermometer mit entsprechendem Sensor besorgen, um das Gehäuseinnere zu 
messen.

Mir geht es bei der Messung auch nicht um sehr präzise Daten, allerdings 
wäre es schön, wenn die Temperatur nicht mehr als 2 bis 3 °C abweicht.


Danke schonmal im Voraus!

von Hans (Gast)


Lesenswert?

Schon mal offenes Gehäuse + Lüfter versucht???

Ich würde das Erwärmen duch den ESP nicht unterschätzen...

ich hab mit schonmal durch eine Groundplane ein Design mit dem BME 
versaut...Kupfer ist halt ein ziemlich guter Wärmeleiter...

73

von 50c (Gast)


Lesenswert?

MarkusS schrieb:
> aber rein vom Gefühl her

wenn dich da dein Gefühl mal nicht täuscht!

MarkusS schrieb:
> Ich habe leider gerade keine sinnvolles Messgerät um die Temperatur im
> Inneren des Gehäuses zu messen,

ok, dann umgekehrt, wie sehen die Messwerte ohne Gehäuse drumherum aus?

MarkusS schrieb:
> BME280 nicht zur Messung der Umgebungstemperatur

...warum eigentlich nicht?

von MarkusS (Gast)


Lesenswert?

Hi,

danke für eure Antworten. Ich habe es gerade mal mit offenen Gehäuse 
gemessen (allerdings ohne Lüfter), die Abweichung beträgt dann noch ca. 
5 Grad. Scheint also tatsächlich die Erwärmung durch den ESP und das 
Gehäuse zu sein.

Werde dann wohl einfach das entsprechend abziehen, hätte ich echt nicht 
gedacht, dass das soviel ausmacht.


Danke nochmals!

von Michael U. (amiga)


Lesenswert?

Hallo,

wenn der ESP daneben durchläuft und der BME auch ständig aktiv ist und 
noch ein Gehäuse drum halte ich das für normal...

Bei mir läuft ein Sensor mit 1x messen alle 5 Minuten, ESP dazwischen im 
DeepSleep in einem Sensorgehäuse mit seitlichen Schlitzen mit weniger 
als 1 Grad Abweichung.

Der BME auf einem Steckbrettadapter in ca. 2cm Abstand zu einem 
China-AMS117 ohne erkennbare Erwärmung zeigte auch bei mir sofort 
2-3Grad mehr an.

Gruß aus Berlin
Michael

von strongly-typed (Gast)


Lesenswert?

Hallo,

wie ist der BME280 denn verbaut? Auf so einer fern-östlichen Platine mit 
Spannungsregler und Widerständen und Level-Shifter [1]?

Die erzeugen meiner Erfahrung nach durchaus 3 bis 5 Kelvin 
Temperaturdifferenz zur Umgebung. Ich habe das entweder tot-gelegt (wenn 
ich in einem 3V3 System unterwegs war), oder hab den Strom nur 
angeschaltet, wenn ich wirklich gemessen habe.

Auch ist der Umrechnungscode für die Kalibrierung nicht trivial. Man 
bekommt unkalibrierte Werte und muss mit den im BME280 hinterlegten 
Kalibrierungswerten die richtige Temperatur ausrechnen, siehe BME280 
Datenblatt. Das ist nicht trivial und ich weiß nicht, welche Codebasis 
Du verwendest. Hier [2], [3], [4] ist getesteter Code.

Und ist der Sensor auch wirklich von Bosch? Oder ein billiger Clone, wo 
vielleicht auch die Kalibrierungswerte kopiert sind?

Viel Erfolg!


[1] 
https://ae01.alicdn.com/kf/HTB1of5CXb1YBuNjSszeq6yblFXar/High-Accuracy-3In1-BME280-Digital-Sensor-Temperature-Humidity-Barometric-Pressure-Sensor-Module-GY-BME280-I2C-SPI.jpg_640x640.jpg

[2] 
https://github.com/roboterclubaachen/xpcc/blob/develop/src/xpcc/driver/pressure/bme280_data_impl_double.hpp

[3] 
https://github.com/roboterclubaachen/xpcc/blob/develop/src/xpcc/driver/pressure/bme280_data_impl_fp.hpp

[4] 
https://github.com/roboterclubaachen/xpcc/blob/develop/src/xpcc/driver/pressure/test/bme280_test.cpp

von MarkusS (Gast)


Lesenswert?

Hi!

Ja der ESP läuft aktuell durch (keine sleep modes aktiv). Der BME280 
sitzt direkt neben dem ESP (quasi kein Abstand). Genau, es ist so eine 
fernöstliche Platine [1]. Ich habe wie gesagt keine absolut genauen 
Werte erwartet, nur die Abweichung von fast 10 °C hat mich doch etwas 
irritiert, hinzu kam, dass ich wie gesagt die Temperatur im Gehäuse auch 
die Tage nicht messen konnte.

Aber es scheint tatsächlich die Abwärme vom ESP und dem BME280 selbst im 
Zusammenspiel mit dem Gehäuse zu sein, wenn ich es öffne wird es 
schonmal deutlich kühler. Ich ziehe jetzt einfach im Code 9 °C ab und 
das passt dann auch soweit für mich.


Danke nochmals an alle für ihre Antworten!

von Bastian R. (bastian_r)


Angehängte Dateien:

Lesenswert?

Guten Morgen.

Ich habe eine Theorie und würde gern eure Meinung hören.
Durch Versuche hab ich festgestellt, dass jenäher der esp am bme280 ist, 
umso höher die abweichung.
Okay das spricht ja für die Erwärmung durch den esp.
Aber wodurch? Letztendlich bin ich der Meinung, dass es das Wlan ist 
welches der esp aussendet. Ich brauche den sensor nur in die nähe zu 
bringen und er steigt um 3-4 Grad an. (Verschiedenste Lagen der beiden 
ausprobiert )
Kann es sein, dass das Wlan Wärme dort induziert.
Ziel war es eigentlich das Board zu betreiben. Aber durch die Erwärmung 
ist das nicht machbar...
Wenn ich den esp auf die andere Seite setze dann ist die Abweichung nur 
noch ca. 1 Grad.

Schönen Tag dann.

von bingo (Gast)


Lesenswert?

Die Wärmeabstrahlung heizt die Platine auf, mach die BME-Platine mal an 
20cm lange Drähte, dann sieht Du den Unterschied.

von Bastian R. (bastian_r)


Lesenswert?

Danke für die schnelle Antwort.
Naja das problem ist. Ich brauche diese feste befestigung. Darum ja die 
Platine.
Und es bringt ja leider nichts wenn der esp sich trotzdem ja noch in der 
Nähe befindet.
Mit der längeren Leitung hatte ich auch schon probiert, aber wenn das 
nachher alles in einer UP-Dose zusammen sitzt reicht die Entfernung 
(Luftlinie) nicht aus.
Wie gesagt ich geh ja davon aus, dass es die Wlan Strahlung ist die den 
BME erwärmt.

: Bearbeitet durch User
von Jens G. (jensig)


Lesenswert?

@ Bastian R. (bastian_r)

>Wie gesagt ich geh ja davon aus, dass es die Wlan Strahlung ist die den
>BME erwärmt.

Warum sollte sie?

von Wolfgang (Gast)


Lesenswert?

Bastian R. schrieb:
> Naja das problem ist. Ich brauche diese feste befestigung. Darum ja die
> Platine.

Der ESP alleine heizt im normalen Betrieb mit gut 1/4W. Leg den ESP 
schlafen, sonst darfst du dich nicht wundern, wenn er den 
Temperatursensor direkt daneben mit aufheizt. Ein anständiger Luftstrom 
hilft aber wohl auch ...

von Mach (Gast)


Lesenswert?

Du kannst ja mal versuchen zwischen ESP und BMP ein Papier zu halten 
(Waermestrahlung) und alternativ ein Blech (Elektromagnetische 
Strahlung). Und dann die Ergebnisse vergleichen.
Am Besten den Sensor dabei nicht auf der gleichen Platine halten, um bei 
geringem Abstand auch effektiv abschirmen zu koennen (nur fuer 
Versuchszwecke).

Wie hast du die unterschiedlichen Abstaende getestet? Kann die 
Waermeuebertragung auch an den GND/Signalleitungen liegen?

von Bastian R. (bastian_r)


Lesenswert?

Wlan Strahlung sind doch elektromagnetische Wellen. Und die können doch 
sicher auch eine Wärme Wirkung in näherer Umgebung haben.

Ich werde den Aufbau komplett mal aufzeigen und meine Ergebnisse dazu.

Danke. :)

von Michael U. (amiga)


Lesenswert?

Hallo,

Bastian R. schrieb:
> Wlan Strahlung sind doch elektromagnetische Wellen. Und die können doch
> sicher auch eine Wärme Wirkung in näherer Umgebung haben.

können schon... Ich würde mehr vermuten, daß die Feldstärke im Nahfeld 
ausreicht, um z.B. eine interne Spannung ein wenig zu verschieben, 
Diodenstrcken findet das WALN im BME280 mehr als genug.

Der BME280 reagiert sehr schnell auf Änderungen seiner Temperatur in 
unmittelbarer Umgebung. Dafür braucht er dann "ewig" bis er wieder 
runterkommt.

Ist ja auch die Frage, was man messen will. Die Umgebungslufttemperatur 
bekommt man in einem Gehäuse ohne brauchbare Durchlüftung und eigenen 
Wärmequellen sowie nicht.

Gruß aus Berlin
Michael

von M. K. (sylaina)


Lesenswert?

Michael U. schrieb:
> Ist ja auch die Frage, was man messen will. Die Umgebungslufttemperatur
> bekommt man in einem Gehäuse ohne brauchbare Durchlüftung und eigenen
> Wärmequellen sowie nicht.

Sehe ich ähnlich. Umgebungstemperatur misst man auch nicht in einer 
UP-Dose sondern da, wo sie ist: In der Umgebung.

In so ner UP kanns schon richtig warm werden, da ist ja bestenfalls 
etwas Mauerwerk, dass vielleicht ein wenig kühlen kann. Auf jeden Fall 
ist das kein guter Ort um die Umgebungsluft/Raumluft zu messen, weder 
von der Temperatur her, noch vom Luftdruck noch von der 
Luftfeuchtigkeit.

Wenn man die Temperatur aber auch nicht so genau braucht: Diode als 
Temperatursensor war keine Lösung? OK, müsste man selbst kalibrieren 
aber wenns kein Serienprodukt werden soll ist das eigentlich auch kein 
Ding.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

MarkusS schrieb:
> Ich habe leider gerade keine sinnvolles Messgerät um die Temperatur im
> Inneren des Gehäuses zu messen

In dem BME280 ist doch sogar ein weiterer Sensor eingebaut. Wenn die 
Temperatur wirklich hoch geht, darf sich die (berechnete) absolute 
Feuchte nicht ändern.

von Bild1 (Gast)


Angehängte Dateien:

Lesenswert?

So dei vorläufigen Ergebnisse.
Getestet habe ich wie folgt meine leiterplatine und ein 
breadboardaufbau.

Entfernung BME(Breadboard) zum ESP(Breadboard) ca. 12cm
Entfernung  BME(Platine) zum ESP(Platine) ca. 4cm

Auf dem Breadboard haben die Werte immer mit dem Thermometer, welches 
ich zur Kontrolle hab, übereingestimmt.

1.Durch das versetzen des ESP(Platine) auf die Rückseite gibt es einen 
Unterschied von 1K zum Breadboard und Thermometer und das trotz 
Sleepmode.
Abfrage: BME(Platine) einnmal alle 110s (on: 10s) (sleepmode),
         BME(breadboard) alle 10s

2. Durch das Annähern des BME280(Breadboard) an den BME(Platine) 
(Parallel nebeneinander ca 1cm Luft zwischen den Sensoren), also kein 
Physischer Kontakt zur Platine, hat sich der BME(Breadboard) erwärmt und 
das trotz sleepmode des ESP(Platine).
(siehe Tabelle1)
Der ESP(Breadboard) war vom BME(Platine) ca. 12cm entfernt

3. Durch Wiederherstellen der Entfernung(30 cm) hat der BME(Breadboard) 
innerhalb von 270s die Ursprungswerte angenommen
(siehe Tabelle2)

Wie zu sehen ist, hat sich der BME(Platine) auch leicht erwärmt.

von Bild1 (Gast)


Lesenswert?

M. K. schrieb:
> Sehe ich ähnlich. Umgebungstemperatur misst man auch nicht in einer
> UP-Dose sondern da, wo sie ist: In der Umgebung.

Die Sensoren sollen auch hinter einer Blindabdeckung mit Blüftung 
sitzen.
Wie ich das dann Designen muss ist erstmal 2 rangig wenn es ja schon 
nicht klappt den BME und ESP auf eine Platine zu bekommen.

Und das mit den Feldstärken muss ich mir nochmal anschauen bzw. erstmal 
belesen.

Danke für die zahlreichen Antworten und Ideen.

von Bastian R. (bastian_r)


Lesenswert?

Oh sorry ich merke jetzt erst, dass da was schief gegangen ist beim 
erstellen. Die beiden Beiträge mit Bild1(Gast) gehören zu mir...

von Wolfgang (Gast)


Lesenswert?

Bild1 schrieb:
> versuch.txt (1022 Bytes, 3 Downloads)

Da kann ich die anfangs genannte Temperaturüberhöhung von 10K nicht 
wiedererkennen. Was passiert dabei mit dem gemessenen Feuchtewert?

von Bastian R. (bastian_r)


Lesenswert?

Wolfgang schrieb:
> Bild1 schrieb:
>> versuch.txt (1022 Bytes, 3 Downloads)
>
> Da kann ich die anfangs genannte Temperaturüberhöhung von 10K nicht
> wiedererkennen. Was passiert dabei mit dem gemessenen Feuchtewert?

Die Temperaturüberhöhung war ca 1K bis 2K(Kelvin)
und wenn ich dich richtig verstanden habe:
Es sind jeweils Temperatur des BME280(breadboard und Platine) und weil 
ich ihn noch hatte ein BME680 und die Feuchtigkeitswerte direkt 
darunter.
Und die Feuchtewerte der (Platine): Der ist in der Zeit im DEEPSLEEP 
daher keine Werte bekommen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.