Hallo,
ich lese einen BME mit einem PIC18 über SPI aus.
Leider ist die Temperatur immer ca. 1,2K±0,6K zu hoch. Die Abweichung zu
meinem Referenzthermometer ist nicht linear. Eigentlich dachte ich, dass
der Sensor genauer ist.
Das Setup liegt aktuell offen auf meinem Tisch. Konvektion ist möglich.
Ich benutze den "Forced Mode", bei dem genau eine Messung gemacht wird,
dazwischen schläft der Sensor. Die Messintervale sind 1 Minute. Ich will
damit Eigenerwärmung auschließen.
Der BME hat eine recht komplizierte Kalibrierkurve. Ich befürchte, ich
habe hier einen Fehler gemacht und kann ihn nicht finden.
Die Kalibrierwerte lese ich so aus:
Das liegt eher am Sensor. Das Thema gab es hier auch schon hin und
wieder.
Die Seite hat mal diverse Sensoren Verglichen.
https://www.kandrsmith.org/RJS/Misc/Hygrometers/calib_many.html#thermometerhttps://www.kandrsmith.org/RJS/Misc/Hygrometers/absolutetemperature.html
Ich hatte vor ein paar Wochen auch mal ein paar Sensoren Verglichen 3x
TMP117 2x SHT31 und eben BMP280/BME280 (von Digikey) je auf einer
eigenen Platine. Während die Werte von TMP117 und SHT31 sehr eng
zusammen lagen waren die Zwei BME280 um mindestens 0.5°C-1°C wärmer.
Das Bosch Datenblatt sagt dazu:
"Its output is used for temperature compensation of the pressure and
humidity sensors and can also be used for estimation of the ambient
temperature."
und
"Temperature measured by the internal temperature sensor. This
temperature value depends on the PCB temperature, sensor element
self-heating and ambient temperature and is typically above ambient
temperature."
Tobias S. schrieb:> Ist es normal, dass der Sensor solche Abweichungen hat?
Ja.
Kai B. schrieb:> Während die Werte von TMP117 und SHT31 sehr eng> zusammen lagen waren die Zwei BME280 um mindestens 0.5°C-1°C wärmer.
Kann ich fuer den SHT <-> BMP bestaetigen.
Fuer genaue Temperaturmessungen sind die Bosch absolut nicht zu
empfehlen.
Andreas B. schrieb:> Fuer genaue Temperaturmessungen sind die Bosch absolut nicht zu> empfehlen.
Dafür sind sie auch nicht gemacht, siehe Datenblattauszug oben!
Tobias S. schrieb:> Was mache ich falsch?
Datenblatt nicht gelesen
Andreas B. schrieb:> Fuer genaue Temperaturmessungen sind die Bosch absolut nicht zu> empfehlen.
Das ist bei dem Sensor auch nicht der Anspruch von Bosch - wer lesen
kann, ist klar im Vorteil:
"... estimation of the ambient temperature"
estimation = (engl.) für Abschätzung
Vielen Dank für die schnellen Reaktionen.
+-0.3K wären erträglich gewesen. Denn die zu messenden Temperaturen
bewegen sich zwischen 19-24°C. Ich hatte auch einen Offset-Parameter
vorgesehen, um Sensor-zu-Sensor-Abweichungen auszugleichen, aber so sind
sie wirklich nicht zu verwenden.
Ich werde mir mal die genannten Alternativen anschauen.
Tobias S. schrieb:> aber so sind> sie wirklich nicht zu verwenden.
Doch, der Temperaturwert aus dem BME280 ist exakt für einen Zweck zu
verwenden:
Als Input für die Formeln um Luftdruck und -Feuchtigkeit zu berechnen.
Dafür ist er da, und wenn du in die Formeln einen anderen (egal ob
präziser) Temperaturwert von einem Fremd-Sensor einsetzt, erreicht der
BME nicht mehr die Genauigkeit aus dem Datenblatt...
Das habe ich gar nicht gemeint.
Ich werde die Funktion des BME so lassen wie sie ist und zusätzlich
einen geeigneten T-Sensor einzubauen.
Eigentlich sollte die Schaltung primär die Temperatur in den Räumen
messen, Luftdruck und Feuchte waren eine nette Zugabe.
Wegen des Displays habe ich mich für SPI entschieden. Entweder ich
ersetze den BME durch einen besseren T Sensor und verzichte auf die
anderen Parameter oder ich finde einen, den ich noch dazu einbauen kann.
Tobias S. schrieb:> Ich werde die Funktion des BME so lassen wie sie ist und zusätzlich> einen geeigneten T-Sensor einzubauen.
Da wirst Du nicht drumrumkommen.
SHT4x wenn Du auch rH gebrauchen kannst (in Kombination mit dem BMP).
Der BME liefert bereits Feuchte. Ich dachte einfach einen DS1820 zu
nehmen. Das hat für mich einige Vorteile:
Die Schaltung und das Druckteil, wo sie rein soll, ist weitgehend
fertig.
Eine Bibliothek für Onewire und DS1820 hab ich auch.
Ich muss keine weitere Platine mit mir fast unlötbaren Teilen machen.
Ich weiß nicht, ob es "bequeme" Sensoren für SPI gibt, denn die könnte
ich recht leicht anschließen.
Tobias S. schrieb:> Der BME liefert bereits Feuchte.
Stimmt, ich dachte, das macht nur der BMP.
> Ich dachte einfach einen DS1820 zu> nehmen.
Die Dinger sind gut. Kommen meist auf 0.1 Grad Abweichung (jedenfalls,
wenn sie richtig angesteuert werden. Da gibt es hier schon einige
THreads dazu).
> Ich muss keine weitere Platine mit mir fast unlötbaren Teilen machen.
Hmm, dann den BMP/BME auswaehlen? ;-)
Andreas B. schrieb:>> Hmm, dann den BMP/BME auswaehlen? ;-)
Den gab es beim Chinamann auf einer kleinen Platine. Ich hatte mal ein
paar einzelne bestellt, aber nicht gelötet bekommen.
Tobias S. schrieb:> Den gab es beim Chinamann auf einer kleinen Platine. Ich hatte mal ein> paar einzelne bestellt, aber nicht gelötet bekommen.
Ah, ok. Ich muß zugeben, bei diesen Dingern stoße ich auch ziemlich an
meine Grenzen. Geht aber gerade noch so (T-962 mit handgeschmierter
Paste ;-) ).
Es gibt von den SHTs auch Breakoutboards (die würde ich aber nicht in CN
bestellen), z.B:
https://www.mouser.jp/ProductDetail/DFRobot/SEN0428?qs=Rp5uXu7WBW%252BVV8ZyuS6LxQ%3D%3D
Auch Sensirion selbst hat welche. Nur falls Du mal mit spielen möchtest
(abgesehen von Deinem aktuellen Projekt).
> Die Dinger sind gut. Kommen meist auf 0.1 Grad Abweichung (jedenfalls,> wenn sie richtig angesteuert werden.
Erzaehl mal wie das geht wenn das DAtenblatt auf Seite 1 sagt:
• ±0.5°C accuracy from –10°C to +85°C
Und der 1820 ist deshalb relativ teuer weil er vom Hersteller mit
dem Laser abgeglichen wird. Wenn man glaubhafte Messungen im Bereich
0.1Grad haben will dann wird das sehr aufwendig und teuer. Und dann
kommen noch die ganzen Fehler vom Aufbau hinzu. Es macht eigentlich
keinen Sinn bei den ueblichen Sensoren eine Nachkommastelle anzuzeigen.
Ich weiss, ist doof weil man das irgendwie gewohnt ist. :)
Vanye
Vanye R. schrieb:> Erzaehl mal wie das geht wenn das DAtenblatt auf Seite 1 sagt:>> • ±0.5°C accuracy from –10°C to +85°C
Das ist die max Abweichung, die garantiert wird!
In der Praxis kommst Du meist auf 0.1°C.
> Wenn man glaubhafte Messungen im Bereich> 0.1Grad haben will dann wird das sehr aufwendig und teuer.
Das Problem ist generell die Messung in der Luft. Da ist es schon schwer
1° Abweichung einzuhalten (Konvektion/Wärmestrahlung).
Um die o.a. 0.1°C nachzuweisen, habe ich mal ein 10er Pack Sensoren in
mehrere Lagen Luftpolsterfolie eingewickelt, in eine Box gestopft und 1h
gewartet. Dann liegt man bei den meisten Sensoren (ich meine, 7 wären
das gewesen) bei der gleichen T +/- 0.1°C.
Edit: Ah, ja, wirf mal einen Blick auf Fig. 17 im DB.
Edit 2: Sorry, beim aktuellen DB ist das Figure 1. Typical Performance
Curve
> Das ist die max Abweichung, die garantiert wird!
Das ist das einzige was zaehlt. Wirf mal einen Blick auf die
heiligen Woerter von Bob Pease wie man Datenblaetter liesst. :-)
> In der Praxis kommst Du meist auf 0.1°C.
Und ich gehoere zur Gruppe der Menschen die typisch 100m in 10s laufen
koennen. Es gibt aber Absolutwerte die ich jetzt nicht definieren will.
:-D
Aber wenn es nur um die Anzeige der Zimmertemperatur geht dann ist es ja
egal.
BTW: Bei Sensoren wie den BME280 oder anderen ist schon das erste
Problem das sie auf einer Platine geloetet werden. Die ist ja fuer
gewohnlich dann auf einer Platine mit anderen Dingen und
schlimmstenfalls auch noch in einem Gehaeuse. Danach misst man sowieso
nur noch hausnummern. Aber wie ja schon jemand sagte, beim BME ist das
vollkommen egal weil dessen Werte nur zur Berechnung des Luftducks
gebraucht werden.
Vanye
Vanye R. schrieb:> Das ist das einzige was zaehlt. Wirf mal einen Blick auf die> heiligen Woerter von Bob Pease wie man Datenblaetter liesst. :-)
Wenn Du was verkaufen willst, ja, da stimme ich Dir zu.
Hier geht es aber um Eigenbau und einer gewünschten Abweichung von 0.3°C
Zimmertemperatur, die in der realen Messung eh nicht realisierbar ist,
egal mit welchem Sensor.
Wenn Du Dir die Typical performance curve mal angeschaut hättest,
würdest Du feststellen, daß innerhalb des vom TO gewünschten
Temperaturbereiches die Abweichung (mit 3 sigma) etwa -0.45 + 0.05
beträgt. Jetzt noch 0.2 °C zu den gemessenen Wert addieren und Du bist
auch lt. DB schon recht nahe an der 0.1 °C Abweichung dran.
Typisch ok und nicht garantiert. Das habe ich schon verstanden. Und wie
ich oben festgestellt hatte, lagen 7 von 10 Sensoren auf der gleichen T
+/- 0.1°C.
> Bei Sensoren wie den BME280 oder anderen ist schon das erste> Problem das sie auf einer Platine geloetet werden.
Bosch nennt auch die Abweichungen/Drift nach 5 Reflow Zyklen im DB. Also
so völlig zufällig sind die Ergebnisse dann nicht.
Und was den Montageort betrifft: Natürlich misst man die Chiptemperatur
und nicht irgendeine gewünschte Aussentemperatur. Die spukhafte
Fernwirkung gibt es hier wirklich nicht. ;-) Ich gehe mal davon aus, daß
dies auch dem TO bekannt ist.
Eigentlich sind wir ja einer Meinung. Ich sehe es halt für diesen
Anwendungfall aus o.g. Gründen etwas lockerer.
Ich möchte diesen Thread nochmal aufwärmen.
Ich habe jetzt einen DS1820 verbaut. Und ich habe wieder das Problem,
dass er um 1-3K über meiner Referenz liegt. Und das nicht mit einem
konstanten Offset.
Dabei habe ich ihn schon 10mm von der Leiterkarte abgesetzt. Er sitzt in
einer Fassung unten in der Frontblende und hat ein 2mm Loch zum Raum
hin.
Die Schaltung sitzt in der UP-Dose und braucht sicher nicht mehr als
100mW.
Wie kann denn das sein? Muss ich den Sensor immer von der Versorgung
trennen damit er sich nicht erwärmt? Ich frage ihn nur einmal pro Minute
ab.
Wie macht ihr das denn?
Tobias S. schrieb:>> Wie macht ihr das denn?
Die Referenz thermisch mit dem Sensor koppeln. Du wirst naemlich
feststellen, dass die Raumtemperatur sich ganz erheblich aendert, je
nachdem wo Du misst. Und die T in irgendeiner Unterputzdose hat mit der
RT nun mal recht wenig zu tun.
20cm Abstand koennen schon locker 1 Grad Differenz bringen. Nicht
umsonst sind die Wetterstationen einheitlich aufgebaut, um die an
verschiedenen Standorten gemessenen T vergleichen zu koennen.
Tobias S. schrieb:> Dabei habe ich ihn schon 10mm von der Leiterkarte abgesetzt. Er sitzt in> einer Fassung unten in der Frontblende und hat ein 2mm Loch zum Raum> hin.> Die Schaltung sitzt in der UP-Dose und braucht sicher nicht mehr als> 100mW.>> Wie kann denn das sein?
Deine Mauer speichert ja Wärme. Lange mal an eine Außenmauer in deinem
Zimmer und dann an eine Innenmauer. Da wirst du momentan ganz schöne
Unterschiede merken. Außer du hast so stark gedämmte Außenwände, dass
kein Luftaustausch stattfindet. Oder du misst am Fußboden und an der
Decke. Auch da gibt's beträchtliche Unterschiede, da warme Luft nach
oben steigt.
Als Abhilfe könntest du hinter das Loch einen kleinen Lüfter setzen, der
die Raumluft ANsaugt und auf den Fühler bläst.
Ich messe an einer Innenwand auf 1,5m, wo normalerweise die Thermostate
angebracht sind. Ja, wir haben sehr gut gedämmte Wände und eine aktive
Belüftung. Die Raumtemperatur schwankt um max. +-1K. Ich gehe davon aus,
dass Wand und Raum nahe dem thermischen Gleichgewicht sind. Die
Luftfeuchtigkeit ist aktuell auch niedrig.
Meine "Referenz" ist ein kleines Batteriethermometer. Wenn ich das in
die UP-Dose stelle, ändert sich dessen Temperatur gar nicht (20.9°C).
Die Schaltung hängt jetzt am Kabel vor der Dose und misst 22,1°C.
Tobias S. schrieb:> Meine "Referenz" ist ein kleines Batteriethermometer. Wenn ich das in> die UP-Dose stelle, ändert sich dessen Temperatur gar nicht (20.9°C).
Wenn du sowas als Referenz nimmst, kannst du deine weiteren "Messungen"
vergessen.
> Wenn du sowas als Referenz nimmst, kannst du deine weiteren "Messungen"> vergessen.
Mag sein, aber kalibrierte Thermometer sind mir zu teuer. Die
Absolutgenauigkeit muss ja nicht 0,1 sein. Es wäre doch aber schön, wenn
sich beide Messungen annähernd gleich verhalten würden. Wir haben es
sicher nicht 24-25°C zuhause, sondern eher die 21C.
Vanye R. schrieb:> . Es macht eigentlich keinen Sinn bei den ueblichen Sensoren eine> Nachkommastelle anzuzeigen. Ich weiss, ist doof weil man das irgendwie> gewohnt ist. :)
Das kommt immer noch drauf an, ob man am absoluten Wert oder an
Änderungen interessiert ist.
Tobias S. schrieb:> Meine "Referenz" ist ein kleines Batteriethermometer.
Nimm einen SHT4x Sensor als Referenz. Einem unbekannten
Batteriethermometer würde ich nicht trauen.
Und die Boschsensoren als Feuchtemesser sind auch nicht das wahre. Ich
habe ein paar verglichen in einem geschlossenen Gehäuse mit Salzlösung.
Nur die Boschsensoren Wochen ca. 7% von den anderen an. Ich habe mehrere
probiert.
Und ähnliches haben auch schon andere Leute heraus gefunden.
Tobias S. schrieb:> Ich habe jetzt einen DS1820 verbaut. Und ich habe wieder das Problem,
Wo gekauft? Was hat er gekostet?
> dass er um 1-3K über meiner Referenz liegt. Und das nicht mit einem> konstanten Offset.
Fake? Schlechte Kopie?