DS18b20 falsche readings

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Habe seit mehreren Monaten 3 DS18b20 laufen ohne Probleme.

    Plötzlich wird eine Aussentemperatur an allen von 85 C angezeigt.

    Wenn ich die Sensoren im Terminal auslese

    [font="Menlo"]pi@SlaveGarten /sys/bus/w1/devices/28-000005fa8d99 $ cat w1_slave[/font]
    [font="Menlo"]50 05 4b 46 7f ff 0c 10 1c : crc=1c YES[/font]
    [font="Menlo"]50 05 4b 46 7f ff 0c 10 1c t=85000[/font]

    wird wie man sieht auch 85 C ausgelesen und zwar an allen drei das gleiche.

    Hat da jemand eine Idee dazu? Raspi bereits neu gestartet. Betriebsspannung müsste auch ok sein, sonst würde der Raspi nicht laufen. Die DS18b20 sind Wasserdicht vergossen.

  • Hallo rmjspa,

    hierbei handelt es sich lt. Datenblatt um "Fehlermeldungen" des Sensors. Irgendwas passt ihm nicht, z.B.
    - Spannungsversorgung
    - Widerstand
    - Leitungsprobleme

    Ich würde hier mal am Widerstand "drehen".

    Wenn Du magst, kannst Du mal die Schaltung posten und Daten über die Kabellänge und Qualität der Leitungen mitteilen.

    Was auch noch denkbar ist: Alterung des Netzteils, das bis kurz vor dem Fehler gerade noch so die Leistungskriterien erfüllte - kurz danach nicht mehr. Ich weiß zwar, dass die DS18B20 recht wenig Strom verbrauchen - aber irgendwo muss ja die Ursache liegen.

    Mit welchem Material hast Du die Sensoren wasserdicht vergossen? Ich frage, weil Temperaturen wie heute und 1-2 Tage davor hat es in den vergangenen 3 Monaten nicht gegeben. Vielleicht ist da irgendwas eingedrungen und sorgt für Kriechströme, die dann letztlich das Fehlerbild "Spannungsprobleme", "Leitungsprobleme" vorgaukeln.

    In welchem Intervall fragst Du die Sensoren ab?

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (28. November 2015 um 01:27)

  • Die "85000" sind quasi der "Blue Screen" des D18b20!

    Die Ursache kann vielfältig sein - meine Sensoren zeigen die auch ab und an, beruhigen sich dann jedoch bei der nächsten Messung i.d.R. wieder. Falls sie nicht wieder korrekte Werte anzeigen ist meistens irgendetwas mit der Verkabelung nicht in Ordnung.

    Prüfe daher einmal sehr genau - und ich meine wirklich !!sehr genau!! - alle Verbindungen! Klemme u.U. auch mal welche ab und messe die einzelnen Sensoren alleine. Meistens findet sich ein nahezu loses Drähtchen, eine nicht 100%ige Verbindung . Insbesondere wenn es vorher einige Wochen/Monate problemlos funktioniert hat. (Ich kann es nicht beweisen, aber nachts kommen kleine Wichtelmänner und reißen so lange an den Kabeln bis irgendetwas lose ist was sich eigentlich niemals nicht hätte lösen könnte!!)

    Die 85C-Fehlermeldung kann auch vorkommen wenn verschiedene Prozesse zu schnell oder gleichzeitig auf den Sensor zugreifen. Hatte ich z.B. immer mal als ich bestimmte Sensoren mit zwei verschiedenen Programmen abgefragt hatte und diese sich zeitlich einfach überschnitten hatten. In dem Fall hilft es die Lesungen einfach weit genug auseinander zu programmieren.

    Prüfe auch mal den Widerstand. Sollten die Leitungen länger sein, dann können die immer genannten 4.7kOhm zu viel sein. In diesem Fall kann man den Wert verringern. Da hilft dann meist nur ausprobieren bis es passt! Bei mir sind es um die 800 Ohm bei ca. 90 Metern Sternförmig verteilter Kabel.

  • Die Sensoren sind die in den Metallhülsen und Schrumpfschlauch. Die Schaltung ist seit April fehlerfrei gelaufen. Der Raspi selbst ist in einer trockenen Gartenhütte und alle anderen Funktionen wie das schalten von GPIO's und das auslesen von einem DHT22 geht auch.
    Das Netzteil bringt 3A.

    Fehlersuche an der Hardware kann ich erst morgen im hellen machen.

    Der Fehler ist mit unterschreiten von 0C aufgetreten. Da vermute ich den Fehler, da ich mich auch erinnere, dass es da allgemein schon mal Probleme mit dem DS18b20 gab.

    Ich weiß bloß nicht mehr, ob der Fehler damals an der Software zum Darstellen der Werte lag, oder schon beim lesen der raw Daten.

  • Da du den Raspi und wohl auch die Sensoren draussen in/vor der Gartenhütte hast, könnten evtl. auch angeknabberte Kabel schuld sein (Kurzschluss).
    Also wenn dein Script keine Werte unter 0C auslesen kann, würde ich den Fehler mal da suchen.
    Sollte es wirklich am Script liegen, kann ich dir gerne meins zur Verfügung stellen.


  • Die Sensoren sind die in den Metallhülsen und Schrumpfschlauch. Die Schaltung ist seit
    Der Fehler ist mit unterschreiten von 0C aufgetreten. Da vermute ich den Fehler, da ich mich auch erinnere, dass es da allgemein schon mal Probleme mit dem DS18b20 gab.

    allgemeine Fehler?
    kann ich kaum glauben, bei mir laufen die seit 5 Jahren, aauch einer draussen.

    Der Fehler muss an der Verkabelung, dem Widerstand oder der PI SW liegen.

    Bei mir habe ich am PI aufgegeben die laufen seit 5 Jahren am Atmel.

    Ich habe die Standardtreiber noch im Timing "gepached" mit mehr Leseversuche und mehr Pausen, das war es aber auch, alles korrekt.

    Mein Balkon DS18B20 ist nur im Schrumpfschlauch, aktuell 1,1°C

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Ein wichtiger Aspekt, welcher zum Reset des Sensors beiträgt ist der der Spannungsversorgung (parasitär vs. direkt). Werden im parasitäten Mode viele 0en übertragen , dann können sich die Pufferkondensatoren innerhalb der Sensoren ggf. nicht mehr aufladen. Die folgenden Dinge gehen alle in die gleiche Richtung:
    - viele Busteilnehmer
    - häufige Abfragen
    - kurze Pausen
    - viele Nullen im Temperaturwert
    - zu hoch bemessener Pullupwiderstand (bei parasitärer Speisung)

    Jar's Hinweis...


    Ich habe die Standardtreiber noch im Timing "gepached" mit mehr Leseversuche und mehr Pausen, das war es aber auch, alles korrekt.


    ...geht auch in diese Richtung.

    Unbenommen davon bleiben Betrachtungen zu diversen anderen Störquellen. Miß doch mal die Spannung am besten am betroffenen Sensor nach. 5V werden dort im Schnitt vermutlich nicht anliegen - eher etwas am unteren Ende um 3V herum... nur so eine Vermutung.

    Was sagen denn die CRC's der anderen Sensoren? Viele CRC Fehler würde ich als unterstützendes Merkmal der o.g. Hypothese werten (bevor der Resetkreis im Sensor anspringt, kann es durchaus zur fehlerhaften Decodierung am Master kommen), das Fehlen von CRC-Fehlern jedoch nicht unbedingt als deren Widerlegung werten (da wir nicht genau wissen, wie die Verkabelung zwischen Sender und Empfänger ausgeführt ist).

  • Vielen Dank für die reichhaltigen Antworten.

    Mit der "0C Unterschreitung" war eine erste Vermutung, die sich aber nicht bestätigt hat. Kurze Zeit nach meinem ersten Beitrag gingen sie wieder und heute Vormittag in der Sonne bei deutlichen plus Graden gehen sie wieder nicht.

    Der Raspi selbst hängt in der trockenen Gartenhütte und macht ansonsten das was er soll. Relais schalten und einen DHT22 in der Aussensauna auslesen.

    Ich muss mir die Verkabelung anschauen. Es sind ca. 12 Meter zu einer Verteilerdose und von dort je 3 Meter zu den einzelnen Sensoren. Zwei davon hatte ich zur Messung der Pooltemperatur im Sommer verwendet und einer für die Lufttemperatur. Da der Pool im Winter nicht in Betrieb ist, messen nun alle drei die Aussentemperatur.

    Das für mich seltsame ist, dass alle drei in der Konsole, also die raw Daten, den gleichen falschen Wert anzeigen, ohne CRC error.

    Entweder hat vielleicht doch ein Tier die Leitung vom Raspi zum Verteiler angeknabbert, oder einer der Sensoren stört die gesamte Datenübertragung.

    Feuchtigkeit an den Sensoren, Verteiler und und vor allem am Raspi möchte ich ausschließen, es sei denn eine Feldmaus hat daran geknabbert.

    Nachtrag: Jetzt geht wieder einer und zwei zeigen falsche Werte an. Ich verstehe einfach nicht, wie digitale Signale mit CRC check übertragen werden können und es kommen falsche Werte an. Obendrein noch zwei oder drei davon. Ausgelesen werden sie mit der Standartlibary.


  • Vielen Dank für die reichhaltigen Antworten.
    ......Ich verstehe einfach nicht, wie digitale Signale mit CRC check übertragen werden können und es kommen falsche Werte an. Obendrein noch zwei oder drei davon. Ausgelesen werden sie mit der Standartlibary.

    50% Verkabelung, 50% falsche Software (Timing)

    zur Verkabelung, sie muss perfekt sein!
    der Widerstand kann/sollte beim PI bis 1k runter gehen, üblicherweise wird 4,7-10k empfohlen, erster Fehler 4,7k bezieht sich meistens auf 5V, 10k auf Kurzstrecke!

    zur SW, die Wartezeiten zwischen 2 Auslesungen sollte mindestens 1s betragen, bei mehr als 1 Sensor auch größer!

    CRC Fehler können vorkommen durch Störungen!
    Deswegen lese ich im Atmel immer bis zu 5x aus und erst wenn 2 Werte plausibel sind -> Abweichung <1% und der CRC OK sagt nehme ich diese.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!