Forum: Mikrocontroller und Digitale Elektronik Welcher Feuchte- und Temperatursensor


von Leif B. (leif_b)


Lesenswert?

Hallo,

ich habe im Moment einen BME280 (Breakout Board mit 5 V Versorgung) an 
meinem ESP12. Als ich alles am laufen hatte, hab ich wie so viele Andere 
festgestellt, dass die Temperatur um ein paar K zu viel angezeigt wird.
Bevor ich mir jetzt das Board für 3,3 V hole, hätte ich gerne mal 
gewusst, ob hier jemand eine Empfehlung für ein anderes Board/Sensor 
hat? Gelesen hab ich ua vom SI7021 und dem HTU21D (evtl mit gleichem 
Problem wie BME280) bin aber nicht wirklich auf DAS Board/Sensor 
gekommen.
Vielleicht hat ja hier mal jemand diverse Boards gekauft und verglichen 
und kann eine Empfehlung für ein halbwegs vernünftiges Temperatur- und 
Feuchtesensor Board abgeben?

Vielen Dank!

von Wolle G. (wolleg)


Lesenswert?

Leif B. schrieb:
> Als ich alles am laufen hatte, hab ich wie so viele Andere
> festgestellt, dass die Temperatur um ein paar K zu viel angezeigt wird.

Liegt die Abweichung im Rahmen des zulässigen Messfehlers lt. 
Datenblatt?

von MaWin (Gast)


Lesenswert?

Ich nutze SHT(31,75,etc.) von Sensirion und bin zufrieden.

Ich habe aber die Erfahrung gemacht, dass 1-2K zu viel schon eintreten, 
wenn der Sensor auf derselben Platine wie die Restelektronik sitzt und 
daher deren Abwärme mitmisst oder Sichtverbindung zu wärmenden Bauteilen 
hat, die müssen nicht glühen, es reicht wenn die 5K wärmer sind.

von Wolfgang (Gast)


Lesenswert?

Leif B. schrieb:
> ich habe im Moment einen BME280 (Breakout Board mit 5 V Versorgung) an
> meinem ESP12.

Wie weit entfernt und wie ist die Anordnung?
Wie läuft die Luftzirkulation?
Wie häufig misst du?
Wie ist der Duty Cycle vom ESP (Sleep zwischen Messungen)?

von Leif B. (leif_b)


Lesenswert?

@WolleG

>Liegt die Abweichung im Rahmen des zulässigen Messfehlers lt.
Datenblatt?

Hab ich nciht geschaut. 2-3 K sind mir jedenfalls zu viel, wenn ich 
weiß, dass es mit einem anderen Board besser ist.

@MaWin

Danke. Da werdd ich mal nach dem SHT31 schauen.


@Wolfgang

Im Moment ist das Board mit Sensor 10 cm vom ESP entfernt und misst 
einfach im Raum. Soll später ua in einen Bienenstock kommen.

Board mit Sensor hängt dauerhaft an 5 V

Ich mache 1 Messung mit anschließend 1 min DeepSleep

von Marek N. (Gast)


Lesenswert?

Hi, ich hab auch einen BMP280 (3V-Version) über Steckkabel am ESP32 
angeschlossen und erhalte auch konstant 1,4 K zu viel angezeigt.

von Dave (Gast)


Lesenswert?

They all work that way.

Temperature significantly skews the relative humidity reading.  Do 
yourself a favor and move the sensor away from EVERYTHING that gets 
warm.  Otherwise you have to read a second temperature and remove its 
effects from the relative humidity reading.

von Marek N. (Gast)



Lesenswert?

Hi,

ich konnte das heute mal systematisch untersuchen mit einem kalibrierten 
PT100-Referenzthermometer ALMEMO® 1030 (Auflösung 1 mK!) [1].

Ich verwendete bis dato standardmäßig die Adafruit-Library [2] und das 
Testprogramm ''bme280test.ino'' daraus, welches systematisch zu hohe 
Temperaturwerte liefert.

Ich habe mich dann durch die Library und das Datenblatt [3] gekaut und 
gelernt, dass es (wie es zu erwarten war) verschiedene Power-Modi gibt: 
SLEEP, FORCED und NORMAL, die über die beiden Bits [1:0] des Registers 
''ctrl_meas'' (0xF4) konfiguriert werden.
So wie ich das verstanden habe, läuft im NORMAL-Mode der interne 
AD-Wanlder kontiniuerlich durch, auch wenn keine Datenabfrage über den 
Bus kommt (mit Scope überprüft), wodurch der Baustein unnötig sich 
erhitzt.

Außerdem gibt es noch eine Menge Oversampling-Einstellungen, die ich mir 
aber noch nicht weiter angeschaut habe.

Das Testprogramm ''advancedsettings.ino'' hingegen gestattet es, die 
verschiedenen im Datenblatt beschriebenen Szenarien mit 
unterschiedlichen MODE- und Oversampling-Einstellungen zu testen.
Ich habe mich dabei auf die Szenarien "Default" (NORMAL-Mode, Abfrage 
alle 5 Sekunden) und "Weather-Station" (FORCED-Mode, Abfrage alle 60 
Sekunden) beschränkt.

Für die Messung habe ich den PT100-Fühler mechanisch mit dem BME-Sensor 
gekoppelt (mit Kapton-Band fixiert), in rosa ESD-Schaumstoff gepackt und 
in einem kleinem Kunststoff-Kästchen vor Zugluft und mechanischen 
Einflüssen geschützt.

Zwischenergebnisse:
* Bei "Weather-Station" (FORCED-Mode, Abfrage alle 60 Sekunden) zeigt 
der BME rund 0,3 K zu wenig an.
* Bei "Default" (NORMAL-Mode, Abfrage alle 5 Sekunden) zeigt der BME 
(erwartungsgemäß) rund 0,3 K zu viel an.
* Es ist jedoch ein Wärmestrom aus dem BME in das Referenzthermometer 
messbar und es wird dabei miterhitzt um rund 0,2 K.
* Bei guter thermischer Kopplung zwischen BME und Referenzthermometer 
wird die Datenblatt-Spezifikation (+/- 0,5 K typ.) locker eingehalten.

To-Do:
* "Weather-Station"-Szenario mit gekoppelten Sensoren im FORCED-Mode, 
aber 5 Sekunden-Abfrage zum Vergleich.
* Sensoren in freier Luft, räumlich getrennt, aber vor Zugluft geschützt 
in beiden Szenarien.

Beste Grüße, Marek

[1] 
https://www.ahlborn.com/de_DE/produkte/referenzmessgeraet-fuer-temperatur-almemo-1030-2-pt-100-aufloesung-0-001-k
[2] https://github.com/adafruit/Adafruit_BME280_Library
[3] 
https://www.bosch-sensortec.com/products/environmental-sensors/humidity-sensors-bme280/

von Ernst H. (eamsel)


Lesenswert?

Hallo,

der BMP280 bzw. hier BME280 von Bosch ist nicht zur Temperaturmessung 
konzipiert.
Der BMP dient zur exakten Luftdruckmessung, und der BME hat zusätzlich 
noch eine Messung der Luftfeuchtigkeit "on board".
Der eingebaute Temperatursensor misst die Temperatur vom Chip, um mit 
diesem Wert den Luftdruck zu korrigieren. Der Luftdruck ist abhängig von 
der Temperatur (p=f(T)). Die Chiptemperatur liegt meist mehrere Grad 
über der Umgebungstemperatur.
Für eine Wetterstation sollte zusätzlich ein anderer Temperatursensor 
eingesetzt werden.
Meine Untersuchungen zum BMP280 haben ergeben, dass der Luftdruck 
wirklich nahezu exakt gemessen wird. Die Luftdruckmessung ist aber ein 
eigenes Thema. (Stichworte Wetterkarten und Messung auf Höhe 
Meeresspiegel (NN))

Ernst

: Bearbeitet durch User
von PittyJ (Gast)


Lesenswert?

Ich hatte mal 3 LM-73 direkt nebeneinander auf dem Tisch liegen. Auch da 
war schon ein Temperaturunschied von über einem Grad. (Die haben ein 
auflösung von 0.25 Grad)

Was spricht eigentlich dagegen, den Sensor einmal nachzumessen und eine 
Kalibrierkurve darüber zu legen? Das ist doch eigentlich der 
Normalzustand bei Messgeräten?

von Andreas B. (bitverdreher)


Lesenswert?

PittyJ schrieb:
> Ich hatte mal 3 LM-73 direkt nebeneinander auf dem Tisch liegen. Auch da
> war schon ein Temperaturunschied von über einem Grad.

Das wird Dir mit jedem Sensor passieren. Weil die Temperatur dann 
nämlich keinesfalls gleich ist.
Thermisch koppeln und in Isolation einpacken und dann 20min liegen 
lassen. Danach können wir weiter diskutieren.

Ansonsten sind die DS18B20 für Temperaturmessungen gut. 0.5% Richtigkeit 
sind garantiert und 0.3°C werden i.A. eingehalten.

Besser wird es mit den SHT35 mit 0.2% Richtigkeit, die kosten aber auch 
etwas mehr. Dafür ist dann die rH Messung mit 1.5% Richtigkeit auch 
dabei.

Meine Wetterstation verwendet den BME nur für die Luftdruckmessung, 
ansonsten SHT35.

von Wolle G. (wolleg)


Lesenswert?

Andreas B. schrieb:
> Ansonsten sind die DS18B20 für Temperaturmessungen gut. 0.5% Richtigkeit
> sind garantiert und 0.3°C werden i.A. eingehalten.

Lt. Datenblatt beträgt der Fehler im Bereich von -10°C bis 85°C 
+-0,5°C und nicht 0,5%

von Wolle G. (wolleg)


Lesenswert?

Ernst H. schrieb:
> Der Luftdruck ist abhängig von
> der Temperatur (p=f(T)).

Wirklich?

von Seismo (Gast)


Lesenswert?

Wolle G. schrieb:
> Ernst H. schrieb:
>> Der Luftdruck ist abhängig von
>> der Temperatur (p=f(T)).
>
> Wirklich?

Würde keinen allzu hohen Betrag drauf setzen.

von Falk B. (falk)


Lesenswert?

Marek N. schrieb:
> Hi, ich hab auch einen BMP280 (3V-Version) über Steckkabel am ESP32
> angeschlossen und erhalte auch konstant 1,4 K zu viel angezeigt.

Woher weißt du, daß es WIRKLICH 1,4K zuviel sind? Nur weil ein anderer 
Temperatursensor oder ein Thermometer 1,4K weniger anzeigen, heißt das 
NICHT, daß der BMP180 falsch liegt.

von Andreas B. (bitverdreher)


Lesenswert?

Wolle G. schrieb:
> +-0,5°C und nicht 0,5%

Fehler sind immer +/-

von Pandur S. (jetztnicht)


Lesenswert?

Dann sollte nicht vergessen werden, dass die Temperatur des Sensors 
nicht automatisch die Temperatur des zu Messenden Mediums ist. Speziell 
bei Luft in einem Raum.

von Gerd E. (robberknight)


Lesenswert?

Marek N. schrieb:
> Für die Messung habe ich den PT100-Fühler mechanisch mit dem BME-Sensor
> gekoppelt (mit Kapton-Band fixiert), in rosa ESD-Schaumstoff gepackt und
> in einem kleinem Kunststoff-Kästchen vor Zugluft und mechanischen
> Einflüssen geschützt.

Da hast Du aber immer nur einen Punkt zum Vergleich, nämlich die 
aktuelle Raumtemperatur. Besser wäre noch die Abweichung in Abhängigkeit 
zur Temperatur zu kennen.

Daher folgender Vorschlag: nimm Dein Referenzthermometer und den Sensor 
und pack sie zusammen in eine wasserdichte Plastiktüte, Kondom, etc. Die 
dann in eine mit heißem Wasser gefüllte Thermoskanne tauchen. Wenn beide 
Sensoren die Folie berühren, bekommst Du eine sehr gute Kopplung des 
Sensors ans Wasser außenrum.

Jetzt das Wasser in der Thermoskanne langsam abkühlen lassen und dabei 
kontinuierlich mit beiden Sensoren messen. Das selbe kannst Du dann mit 
Eiswürfeln und Salzwasser noch von negativen Temperaturen bis zur 
Raumtemperatur wiederholen.

Dann hast Du schöne Kurven zum Vergleich der Abweichung bei 
verschiedenen Temperaturen.

: Bearbeitet durch User
von Wolle G. (wolleg)


Lesenswert?

Andreas B. schrieb:
> Fehler sind immer +/-
der Einwand betraf die Angabe % (in Worten: Prozent)

von Marek N. (Gast)



Lesenswert?

Falk B. schrieb:
> Woher weißt du, daß es WIRKLICH 1,4K zuviel sind?

Das weiß ich nicht.
Ich hatte mich nur gewundert, dass drei andere Raumthermometer 
unterschiedlicher Hersteller am gleichen Platz sich einig waren auf 0,2 
°C und der BME als einziger herausgerissen ist. Und andere Leute hier 
haben ja auch systematisch zu viel gemessen.

Mittlerweile weiß ich: Ja, die Konfiguration des Power-Modes und die 
Zugriffshäufigkeit bewirken eine Eigenerwärmung des BME, aber er hält 
seine Spec ein.

Heute habe ich mal ein paar Messungen mit Luftzirkulation im Pappkarton 
unterm Tisch gemacht. BME280 und PT100 waren ca. 50 mm voneinander 
entfernt. Keine Zugluft, keine Sonneneinstrahlung.

Auch da werden die o.g. Einflüsse zwar sichtbar, aber die Spec wird 
eingehalten.

Jetzt muss ich nur noch rausfinden, warum meine anderen drei 
Zimmerthermometer zu wenig anzeigen.

Danke für den Tipp mit dem Wasserbad! Damit könnte man tatsächlich den 
gesamten interessanten Temperaturbereich abfahren.

von Marek N. (Gast)


Lesenswert?

P.S.
Da fällt mir grad ein:
Ich habe diese Vergleichsmessungen am PT100 mit der 5V-Version also 
integriertem LDO (sogar von einem deutschen Händler) und einem Arduino 
nano gemacht und sie waren gut.

Am ESP32 hatte ich die "nackte" 3,3V-Version. Kann ja sein, dass dieser 
Sensor wirklich daneben liegt. Also weiter suchen...

von Ernst H. (eamsel)


Lesenswert?

Hier die Fußnote (3) aus dem offiziellen Datenblatt von Bosch (Seite 8) 
für den BMP280:
"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."

Da kann man messen und Kurven aufstellen, soviel man möchte, die 
Temperatur wird immer höher liegen als die Umgebungstemperatur. Die 
Differenz ist aber nicht immer gleich!

Dies gilt genau so für den fast gleichen BME280.

Ernst

: Bearbeitet durch User
von caargoo (Gast)


Lesenswert?

Guckst Du:
Beitrag "Re: China-BME280 Problem"
4 verschiedene Sensoren liegen innerhalb von 0,4 Grad!

von Rainer V. (a_zip)


Lesenswert?

Ernst H. schrieb:
> Da kann man messen und Kurven aufstellen, soviel man möchte, die
> Temperatur wird immer höher liegen als die Umgebungstemperatur

Dann hilft doch nur ein weiterer Temperatursensor. Außer der TO ist mit 
dem Ergebnis zufrieden. Es würde so oder so also eine Referenz-Meßreihe 
mit dem aktuellen BMExxx reichen, um die Temperaturmessung in den 
tatsächlichen Wert zu rücken. Kein Aufwand über den man meckern möchte 
oder?
Gruß Rainer

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.