Forum: Mikrocontroller und Digitale Elektronik SHT31: falsche Temp.-Werte


von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

Hallo Gemeinde,

ein weiteres Problem mit einem Sensor.
Ich halte mittlerweile den SHT31 in meinen Händen und hatte eigtl. 
gedacht, genaue Werte mit diesem Sensor messen zu können.

Leider Fehlanzeige.
Derzeit befindet sich das Breakout-Board auf einem Steckbrett.
In der Nähe befindet sich ein ESP8266, von dem er über I2C angesteuert 
wird.

Ich erhalte leider Temperaturen, die von mehreren DS1820 (als Referenz) 
um ca. +2 Grad abweichen.

Kann man überhaupt mit dem SHT31 die Umgebungstemperatur messen? (oder 
ist damit eher die Temperatur im Chip gemeint?)
Kann sich der SHT31 durch falsche I2C-Pullup-Widerstände zu sehr 
erwärmen?

Fragen über Fragen...

von dummschwaetzer (Gast)


Lesenswert?

was steht denn im Datenblatt? 2° klingt doch nicht so schlecht. Wie oft 
tastest du den ab?

von Michael B. (laberkopp)


Lesenswert?

Tim S. schrieb:
> Ich erhalte leider Temperaturen, die von mehreren DS1820 (als Referenz)
> um ca. +2 Grad abweichen.

Dasselbe hatte ich mit meinen SHGT11 von
https://www.ebay.de/itm/5-Stueck-SHT11-Feuchte-und-Temperatursensor-mit-Stecker-/282729502469?
auch.

Ok, sie waren billig.

Aber dann habe ich festgestellt, daß sie an einem längeren Kabel 
tatsächlich nicht mehr 2 GradC zu viel messen, sondern nur noch um 0.5 
von den DS1820 abweichen.

Meine Theorie: In der Nähe der Elektronik (ein AVR, ein LCD), die sich 
eigentlich kalt anfühlt, ist es tatsächlich 2 GradC oder zumindest 1.5 
GradC wärmer, und die SHT sind deutlich empfindlicher als die DS1820 die 
viel mehr träge Masse haben.

von (prx) A. K. (prx)


Lesenswert?

Tim S. schrieb:
> Kann man überhaupt mit dem SHT31 die Umgebungstemperatur messen?

Das ist mit der Sinn der Sache.

> (oder ist damit eher die Temperatur im Chip gemeint?)

Natürlich, was denn sonst. Spukhafte Fernwirkung kennt er nicht. Weshalb 
man auch nicht zu häufig messen sollte, denn in Ruhe braucht der 
praktisch keinen Strom, beim messen aber schon.

> Kann sich der SHT31 durch falsche I2C-Pullup-Widerstände zu sehr
> erwärmen?

Ja, wenn man die direkt daneben platziert. Das gilt besonders auch für 
den ESP8266, der deutlich mehr schluckt als die Widerstände.

2°C Erwärmung kriegst du evtl. schon, wenn du deine Pfote eine Weile nah 
genug ran hältst, oder das Szenario hell beleuchtest.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Tim S. schrieb:
> Ich halte mittlerweile den SHT31 in meinen Händen

Das verfälscht ganz sicher. ;-)

von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

Mhhh, allerdings befinden sich ja auf allen Breakout-Boards die 
Widerstände sehr nah am SHT31...
Müssen die runter?

von (prx) A. K. (prx)


Lesenswert?

Bild vom Aufbau!

von dummschwaetzer (Gast)


Lesenswert?

Beim SHT11 schreibt Sensiron:
Important: To keep self heating below 0.1°C, SHT1x
should not be active for more than 10% of the time – e.g.
maximum one measurement per second at 12bit accuracy
shall be made.

und zum Layout:
If the SHT1x shares a PCB with electronic components
that produce heat it should be mounted in a way that
prevents heat transfer or keeps it as low as possible.
Measures to reduce heat transfer can be ventilation,
reduction of copper layers between the SHT1x and the
rest of the PCB or milling a slit into the PCB around the
sensor (see Figure 8)

Villeicht gilt ähnliches auch für den SHT31?

von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

Ok DANKE. Ich werde in einem 1. Schritt mal das Breakout-Board mit Kabel 
auf Abstand zum ESP8266 bringen. Ich werde das Resultat am WE mal 
posten.
Hätte nie gedacht, dass sich das Messen der Temperatur so schwierig 
gestaltet. Vor allem ist so ein SHT31 nicht gerade billig und er sollte 
auf 0,3 Grad genau sein...

von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

Bild vom Aufbau stelle ich rein... Aber nicht lachen!

von Rene K. (xdraconix)


Lesenswert?

Du verstehst da, glaube ich, etwas völlig falsch. Im Datenblatt steht 
explizit das man mit den SHT Sensor KEINE Umgebungstemperatur messen 
kann / sollte. Der Temperatursensor ist ausschließlich für das Membran 
des Feuchtesensor. Um den Temperaturdrift zu berechnen / kompensieren.

Beim SHT3x-DIS kann man zwar die Temperatur auslesen, braucht sie aber 
nicht mehr, wie bei den älteren SHT selbst zu berechnen, das macht 
dieser schon selbst.

Im übrigen, schalte mal deinen Membran Heater ein und schau was deine 
Temperatur dann macht ;-)

Übrigens ist das der Hundertste Thread zu genau diesem Thema.

von (prx) A. K. (prx)


Lesenswert?

Rene K. schrieb:
> Der Temperatursensor ist ausschließlich für das Membran
> des Feuchtesensor. Um den Temperaturdrift zu berechnen / kompensieren.

Wenn die Temperatur des Feuchtesensors krass abweicht, dann kann doch 
auch der %RH Wert nicht mehr stimmen.

von Rene K. (xdraconix)


Lesenswert?

A. K. schrieb:
> Rene K. schrieb:
> Der Temperatursensor ist ausschließlich für das Membran des
> Feuchtesensor. Um den Temperaturdrift zu berechnen / kompensieren.
>
> Wenn die Temperatur des Feuchtesensors krass abweicht, dann kann doch
> auch der %RH Wert nicht mehr stimmen.

Nein, genau dafür ist er da, aus dem DB:

"Please note: The temperature reading will display the
temperature of the heated sensor element and not
ambient temperature."

Und er ist auch nicht dafür da %RH korrekt zu halten sondern die 
DEW-Point Berechnung. Wie gesagt: Schalte den Heater ein. Dann sollte 
die Temperatur steigen, RH sinken und der DEW-Point muss gleich bleiben. 
Sollte dies so sein, dann arbeitet der SHT absolut tadelfrei.

von Wolfgang (Gast)


Lesenswert?

Tim S. schrieb:
> Ok DANKE. Ich werde in einem 1. Schritt mal das Breakout-Board mit Kabel
> auf Abstand zum ESP8266 bringen. Ich werde das Resultat am WE mal
> posten.

Solange du den ESP8266 nicht in irgendwelchen Stromsparmodi betreibst, 
heizt der munter mit 400 mW vor sich hin. Du könntest deine Anordnung 
mal senkrecht betreiben, so dass der Sensor unten hängt und irgendwelche 
Warmluft frei nach oben weg kann.

Echter Temperaturvergleich unter Sensoren setzt allerdings mehr Aufwand 
voraus. Du wirst dich wundern, was es in einem Raum für 
Temperaturunterschiede gibt. Ein thermisch gut von der Umgebung 
entkoppeltes Volumen mit guter Durchmischung sollte es schon sein, um 
zwei Sensoren auf ausreichend ähnliche Temperatur zu bringen.

von (prx) A. K. (prx)


Lesenswert?

Rene K. schrieb:
> Und er ist auch nicht dafür da %RH korrekt zu halten sondern die
> DEW-Point Berechnung.

Wenn die Temperatur des %RH Sensors nicht der Umgebungstemperatur 
entspricht, dann weicht auch die relative Feuchte der Luft vom Sensor 
von derjenigen der Umgebung ab. Ich will aber die Feuchte der Umgebung 
wissen, nicht eine davon abweichende Feuchte des Sensors.

> Wie gesagt: Schalte den Heater ein. Dann sollte
> die Temperatur steigen, RH sinken

Eben. Falsche Temperatur bedeutet falsche Feuchteanzeige. Bezogen auf 
das, was ich eigentlich wissen will.

von Rene K. (xdraconix)


Lesenswert?

Dem Sensor ist es völlig irrelevant wie die Umgebungsluft temperiert 
ist. Ihm ist ausschließlich wichtig wie die Temperatur und die 
Luftfeuchte am Membran ist! Und nicht ein Meter oder fünf Millimeter 
entfernt. Die Sensoren sind alle auf genau 25°C kalibriert - 
wohlgemerkt: am Membran - alles davon abweichende muss kompensiert 
werden. Und das ist in einem normalen Umfeld halt nun mal nicht gegeben, 
konstante 25°C am Membran.

von (prx) A. K. (prx)


Lesenswert?

Rene K. schrieb:
> Dem Sensor ist es völlig irrelevant wie die Umgebungsluft temperiert
> ist.

Aber mir ist das nicht egal. Ich will beispielsweise wissen, wie feucht 
die Raumluft ist, nicht wie wohl sich der Sensor fühlt. Und wenn die 
Luft am Sensor wärmer als die Raumluft ist, dann zeigt der Sensor nicht 
mehr die Feuchte der Raumluft an, sondern sein Privatklima. Das 
interessiert mich aber nicht.

Also muss ich dafür sorgen, dass der Sensor ungefähr die Raumluft 
abkriegt, nicht die Abluft vom ESP8266 oder vom Spannungsregler daneben. 
Und dass er sich nicht durch zu häufige Messungen selbst aufheizt. Und 
wenn das Sensorklima einigermassen der Raumluft entspricht, dann auch 
die gemessene Temperatur.

Dass es die Raumluft nicht gibt - geschenkt. Darum gehts nicht.

: Bearbeitet durch User
von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

Ich habe den SHT31 jetzt ca. 50cm (4poliges Kabel) entfernt vom ESP8266 
im Betrieb genommen. Und ich muss sagen: sehr sehr sehr viel bessere 
Werte!
Die Werte die der SHT31 jetzt liefert, befinden sich IMMER innerhalb der 
Messreihe meiner 8x DS1820.

Danke für eure Hilfe!

PS: Um eine evtl. Eigenerwärmung des SHT31 zu verhindern bräuchte dieser 
doch eigentlich eine Art DeepSleep-Mode (wie z.B. der BME280). Ich finde 
allerdings nichts darüber...

PPS: Der Außensensor der Netatmo Weather Station setzt für die Messung 
ein SHT-21, also den schlechteren Vorgänger, ein. Ich denke also schon, 
dass man die SHT´s für die Messung der Temperatur hernehmen kann.

von (prx) A. K. (prx)


Lesenswert?

Tim S. schrieb:
> PS: Um eine evtl. Eigenerwärmung des SHT31 zu verhindern bräuchte dieser
> doch eigentlich eine Art DeepSleep-Mode (wie z.B. der BME280). Ich finde
> allerdings nichts darüber...

Stromverbrauch idle typ 0,2µA ist dir zu viel?

Bei einer Messung pro Sekunde sind es im Mittel 2µA. Da ist die 
Selbsterwärmung irrelevant, bei 10/s nicht mehr: "At the highest mps 
setting self-heating of the sensor might occur."

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

A. K. schrieb:
> Und wenn die
> Luft am Sensor wärmer als die Raumluft ist, dann zeigt der Sensor nicht
> mehr die Feuchte der Raumluft an, sondern sein Privatklima. Das
> interessiert mich aber nicht.

Das kommt drauf an, wie der kalibriert ist. Wenn der inklusive 
"Privatklima" kalibriert ist, zeigt er die Daten der Raumluft an, obwohl 
am Sensor das "Privatklima" gegenüber dem Raum verschoben ist.

von (prx) A. K. (prx)


Lesenswert?

Wolfgang schrieb:
> Das kommt drauf an, wie der kalibriert ist. Wenn der inklusive
> "Privatklima" kalibriert ist, zeigt er die Daten der Raumluft an, obwohl
> am Sensor das "Privatklima" gegenüber dem Raum verschoben ist.

Yep, das geht auch. Aufs hiesige Beispiel bezogen hiesse das, zusätzlich 
die aktuelle Wärmeleistung des ESP8266 und den Luftdurchsatz zu messen. 
Um das dann nach umfangreichen Testreihen aufs Roh-Ergebnis des SHT31 
anzurechnen. ;-)

Ich kann mir schon vorstellen, dass man in bestimmten Mess-Szenarien so 
vorgeht. Aber meistens dürfte es grad beim SHT31 einfacher sein, den 
Sensor geeignet zu platzieren. Wie ja auch geschehen.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Wolfgang schrieb:
> Das kommt drauf an, wie der kalibriert ist. Wenn der inklusive
> "Privatklima" kalibriert ist,

Natürlich nicht, die übliche Betriebsart ist ja schlafen
und nur kurz mal messen.

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.