Forum: Mikrocontroller und Digitale Elektronik Temperaturmessung mit ESP01S


von Ralf G. (dougie)


Lesenswert?

...kurze Frage:

seit einer Weile versuche ich die Temperatur und Luftfeuchtigkeit in der 
Garage zu messen. Einfache Sache sollte man meinen.

Meine Wahl fiel zunächst auf einen ESP01-S mit eine DHT11 Sensor.
Den ESP8266 hab ich mit tasmota geflashed weil der sich so schön bequem 
und einfach an MQTT anbinden lässt und weil der DHT mit allem auf einer 
Platine kam, auf den man den ESP nur aufstecken musste.

Nach kurzer Zeit stellte ich fest, das die Werte vom DHT Käse waren. Ich 
schob das auf die Qualität des DHT Sensors und den Umstand, das die 
Platinen sich gegenseitig aufheizen.

Also DHT runter; DS1820 drauf und den etwas abseits montiert. Dennoch 
reportet der Dallas Chip auch eine Temperatur die locker 5 Grad zu hoch 
ist.

Also diese Woche mal einen BME280 Sensor (3,3V Version) am Kabel ca 5cm 
neben dem ESP und unterhalb montiert, damit der garantiert keine 
Strahlungswärme ab bekommt. Das 5V Steckernetzteil ist weit weg.
Trotzdem ist die gemessene Temperatur auch hier ca 5 bis 6 Grad zu hoch.

Ja... ich hab gegoogeld ... nein, ich hab keine Idee warum.

Jemand anders ne Idee?

: Bearbeitet durch User
von Jörg K. (joergk)


Lesenswert?

Wie machst Du denn die Verbgleichsmessung um zu dem Urteil "zu hoch" zu 
kommen?

von Ralf G. (dougie)


Lesenswert?

Das ist eine mehr oder weniger frei stehende Garage ohne Heizung und 
Verbraucher. Aktuell haben wir eine von der Hausheizung gemeldete 
Aussentemeperatur von 13,1°C.

Und ich denke ich brauch auch keine Vergleichsmessung, um die vom BME 
gemeldeten 23,6°C als nicht stimmend zu beurteilen. ;-)

von Ralf G. (dougie)


Angehängte Dateien:

Lesenswert?

Nachtrag: Laserthermomenter sagt 13,2°C

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Mach das Gehäuse eher flacher und dafür länglich, Wemos und Sensor nicht 
wie einen Hamburger packen, sondern nebeneinander. Bei der Montage den 
Sensor nach unten. Bei Sensoranwendungen sollte man auch immer eine 
Offset-Korrektur im Code haben ...

von Ralf G. (dougie)


Lesenswert?

Siehe Testaufbau ... so ist eine Abweichung von 10° unerklärlich.

Tasmota sieht eine Offset Korrektur nur im Breich +/- 1,2° vor

von Rahul D. (rahul)


Lesenswert?

Ralf G. schrieb:
> Siehe Testaufbau ... so ist eine Abweichung von 10° unerklärlich.

Hast du den BME schon gegen einen anderen BME (von einem anderen 
Händler) ausgetauscht?
Im Datenblatt soll es den Hinweis geben, dass die Temperaturmessung nur 
der Kompensation der Druckmessung dient.
Ich habe auch einen BME280, der eine höhere Temperatur als ein 
"Billigthermometer" anzeigt.
Das kann auch mit dem Platinen-Design zusammenhängen.
Bei welchen mit dem BME680 ist der Sensor selbst vom Rest der Platine 
meist entkoppelt.

DHT11 sind Schätzeisen...

von Stephan S. (uxdx)


Lesenswert?

Es gibt BME-Boards für 5 Volt, da ist ein Spannungsregler verbaut
:-(  :-(  :-(  :-(  :-(  :-(

von Ralf G. (dougie)


Lesenswert?

...deshalb hab ich (wie oben geschrieben) den 3,3V Typ verwendet.

von Rainer W. (rawi)


Lesenswert?

Ralf G. schrieb:
> ... ca 5cm neben dem ESP und unterhalb montiert, damit der garantiert
> keine Strahlungswärme ab bekommt.

Strahlungswärme geht in alle Richtungen, egal ob neben oder unterhalb.

> Also DHT runter; DS1820 drauf und den etwas abseits montiert. Dennoch
> reportet der Dallas Chip auch eine Temperatur die locker 5 Grad zu hoch
> ist.

Die thermische Ankopplung beim DS18?20 erfolgt zu einem großen Anteil 
über Anschlüsse, nicht so sehr über die Luft und das eigene Gehäuse.
Welche Bauform verwendest du?

: Bearbeitet durch User
von Ralf G. (dougie)


Angehängte Dateien:

Lesenswert?

Ich hatte einen DS1820 im TO-92 Gehäuse verwendet. Beinchen in voller 
Länge gelassen und nur an die Platine geheftet. Lediglich den 4k7 Pullup 
als 0805 smd zwischen die Beinchen gelötet.

So ... aber jetzt wird's lustig: da mir das keine Ruhe gelassen hat, hab 
ich mal einen DS1820 mit einer 2m Anschlussleitung genommen und den 
zusätzlich an den freien GPIO angeschlossen.

Und auf jetzt zeigt der BME280 auf einmal normale (um 10° !! geringere) 
Temperaturwerte. Und der DS1820 auf einmal auch....

Da brat mir doch einer nen Storch... das einzige was mir einfällt wäre 
Spannungsversorgung. Aber die hatte ich nicht gemessen, weil durch den 
ESP ja eigentlich genug belastet (dachte ich).

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Ralf G. schrieb:
> Da brat mir doch einer nen Storch... das einzige was mir einfällt wäre
> Spannungsversorgung.

Grundsätzlich sind Temperaturmessungen in Luft ein ziemliches 
Glücksspiel. Nicht ohne Grund werden zur Kalibrierung von Thermometern 
gut homogenisierte Kalibrierbäder verwendet. Wie hoch ist deine 
Messrate?
Die Datentelegramme werden ja wohl kaum verfälscht.

Die Stromaufnahme des ESP8266 schwankt recht heftig (mehr als einen 
Faktor 5, wenn man Sleep-Modi außen vor lässt).

: Bearbeitet durch User
von Ralf G. (dougie)


Lesenswert?

Der Laie staunt, und der Fachman wundert sich.

Ich hab jetzt gerade keine Lust dem weiter auf den Grund zu gehen. Aber 
eine gewisse Restneugier bleibt.

von Klaus R. (klara)


Lesenswert?

Ralf G. schrieb:
> Und auf jetzt zeigt der BME280 auf einmal normale (um 10° !! geringere)
> Temperaturwerte.

Ich arbeite auch mit dem BME280. Wenn der von der Erwartung eine um 10°C 
abweichende Temperaturen anzeigt, dann ist die Temperatur tatsächlich so 
hoch.
Das ist kein PT1000 dessen Meßstrom mal abweichen könnte. Der BME280 
misst digital, geht oder geht nicht.

Sollte es über I2C zu Bitfehlern kommen, so wäre es sehr, sehr 
unwahrscheinlich das nur der Meßwert betroffen ist und zudem eine 
konstante Abweichung hat.
mdf Klaus

: Bearbeitet durch User
von Ralf G. (dougie)


Lesenswert?

Eine 10°C höhere Temperatur kann mit Sicherheit ausgeschlossen werden. 
Deshalb hab ich ja extra mit Laserthermometer nachgemessen.

Ich gehe von einem internen Messfehler des BME aufgrund irgendwelcher 
Probleme mit der Spannungsversorgung aus. Vielleicht hätte ein 100n oder 
1µ an den Anschlüssen schon geholfen. Aber aktuell bau ich das nicht 
auseinander um das zu prüfen, sondern beobachte erst mal ne Weile.

Edit...

Und Plopp: jetzt zeigt er wieder 23,6°C an ... und ich bin 40m weit weg

: Bearbeitet durch User
von Helmut -. (dc3yc)


Lesenswert?

Klaus R. schrieb:
> Ich arbeite auch mit dem BME280. Wenn der von der Erwartung eine um 10°C
> abweichende Temperaturen anzeigt, dann ist die Temperatur tatsächlich so
> hoch.

Nein, ist sie nicht. Zumindest die Umgebungstemperatur. Wie einer meiner 
Vorredner schon schrub, ist die Temperaturmessung des BME280 nur zur 
Temperaturkompensation von Feuchte und Druck zu gebrauchen. Als 
Umgebungstemperatur taugt sie nur, wenn du 5°C zu viel akzeptierst. 
Empfehlung: Datenblatt lesen (auch die Fussnoten!!!).

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Ralf G. schrieb:
> Vielleicht hätte ein 100n oder 1µ an den Anschlüssen schon geholfen.

Abblockkondensatoren über der Sensorversorgung (direkt am Chip) sind 
sowieso Pflicht.

von Ralf G. (dougie)


Lesenswert?

So: die Katze ist aus dem Sack! Das ist ein Tasmota Fehler!

Ich hatte vorhin den DS1820 in der Konfig deaktiviert, da meine 
Auswertung mit zwei Temperaturwerten ansonsten durcheinander kommt. War 
ja eh nur zur Kontrolle gedacht.

Nach 15min sprang die BE Temp von 16° wieder auf 26° ... also in der 
Konfig den DS1820 aktiviert und nach dem Restart sind sowohl BME und DS 
Temperatur weniger als 1,4° auseinander.

Also kann es nur die Software sein. Ich verwende übrigens die aktuelle 
Tasmota Sensors Firmware.

PS: Abblockkondensator ist bereits auf der BME Platine vorhanden. Genau 
so wie zwei 10k Pullups für SCL und SDA

: Bearbeitet durch User
von Ralf G. (dougie)


Angehängte Dateien:

Lesenswert?

...eigentlich hätte ich auch früher drauf kommen können, wenn ich mir 
mein Log mal angesehen hätte.

23,6° muss ein Fehlerwert sein. Sonst wäre die Linie nicht wie mit dem 
Lineal gezogen. Ob der Sensor den jetzt liefert oder Tasmota den aus dem 
Nichts generiert, kann ich ohne Studium des BME Datenblatts nicht sagen

: Bearbeitet durch User
von Klaus R. (klara)


Lesenswert?

Helmut -. schrieb:
> Wie einer meiner
> Vorredner schon schrub, ist die Temperaturmessung des BME280 nur zur
> Temperaturkompensation von Feuchte und Druck zu gebrauchen. Als
> Umgebungstemperatur taugt sie nur, wenn du 5°C zu viel akzeptierst.
> Empfehlung: Datenblatt lesen (auch die Fussnoten!!!).

Rainer W. schrieb:
> Abblockkondensatoren über der Sensorversorgung (direkt am Chip) sind
> sowieso Pflicht.

Klar, was Rainer sagt sollte jeder schon wissen, es ist Basiswissen. Und 
ein Blick ins Datenblatt kann macht meistens klüger. Jeder I2C - Chip 
sollte abgeblockt sein.

Ich habe seit 2020 einen Aussensensor am Laufen der misst über einen 
MCP9808 per I2C die Temperatur ist ziemlich genau. Den BME280 habe ich 
für Luftdruck und Feuchte gewählt und die Temperatur speichere ich auch 
noch zusätzlich ab.

Der BME280 weicht bei Zimmertemperatur um 0,5°C ab. Bei tieferen 
Temperaturen werden es schon mal bis zu 1°C. Also eigentlich ist der 
BME280 auch zur Temperaturmessung schon zu gebrauchen.
mfg

von Ralf G. (dougie)


Lesenswert?

...wie gesagt: ich kann den Fehler relativ sicher nachstellen.

Lass das für ca. 20 min laufen und die Temperatur springt auf exact 
23,6° und bleibt da. Mach dann einen Neustart von Tasmota via 
Weboberfläche und der Wert ist wieder korrekt (aktuell 15,9°)

von Jens M. (schuchkleisser)


Lesenswert?

Ich lese das aus Interesse mit und mir fällt da ein das ich mal 
ähnliches gesehen habe an einem DS18B20.
Der war original (aus einem Dallas Demokit von vor 15 Jahren) und mit 
einem Tasmota-Board (irgendeine V14 glaub ich) verbunden. Wenn es da 
eine Störung gab war die Temperatur auch fest auf einem relativ 
glaubhaften Wert ohne weitere Fehlermeldung.
Ich meine aber das es 23,3° waren bei mir, bin mir aber nicht mehr 
sicher.

Du solltest mal nachsehen ob die Kommunikation einwandfrei läuft...
Evtl. kann die Konsole mehr Auskunft geben?

von Jörg K. (joergk)


Lesenswert?

Hatte mit ESPs und DS1820 MAL ÄHNLICHEN ÄRGER: Nach einiger Zeit blieb 
die Kommunikation hängen, Power Aus An half, Software-Neustart nicht.
Kannst Du das eventuell mal probieren? Also bei Sensorfehler einen 
Neustart über das Webinterface auslösen?

von Rainer W. (rawi)


Lesenswert?

Ralf G. schrieb:
> Ob der Sensor den jetzt liefert oder Tasmota den aus dem
> Nichts generiert, kann ich ohne Studium des BME Datenblatts nicht sagen

Guck dir mit einem Logikanalysator die Daten auf dem I2C-Bus an und 
rechne nach, ob sie zur Anzeige passen.

10k Pullups für SCL bzw. SDA auf einem 3,3V-Bus sind arg viel, sollten 
also nicht die einzigen sein.

: Bearbeitet durch User
von Ralf G. (dougie)


Lesenswert?

Ich hatte gestern noch Rücksprache mit den Tasmota Github Jungs. Die 
sagten, das der ESP-01S echt empfindlich sei, was sie 
Spannungsversorgung beträfe, und der Fehler wohl daher käme.

Also jeweils 100µ hinter den 3,3V Regler und direkt an die Platine vom 
BME280. Dazu noch 10µ smd vor den Regler, und seit dem läuft das Ding 
stabil!

Vielleicht hilft's dem ein onder anderen in ner ähnlichen Situation.

Danke für eure Anteilnahme! Topic closed!

von Gerald B. (gerald_b)


Lesenswert?

Die DS18B20, sind das echte von Maxim, oder chinesische Nachbauten? Dann 
sind die Messwerte auch "chinesische °C ;-P
Ansonsten, MAX31820 ist der echte 3,3V Nachfolger. Ist voll 
softwarekompartibel zum DS18B20 und sogar preiswerter (in Relation zum 
Original)

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.