Fragen zur Temperaturmessung mit DS 18B20

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    als allererstes Hardwareprojekt überhaupt will ich eine Temperaturmessung aufbauen. Dabei habe ich eine knapp 3m lange Teststrecke, in der ich in unterschiedlichen Abständen insgesamt 8 Messfühler DS 18B20 unterbringen will. Die DS 18B20 sind in Reihe geschaltet und mit Klingeldraht für 0V und 5V sowie 0.752mm für die Datenleitung verbunden. Verschaltet ist das so:

    Ich muss noch gestehen, dass ich mangels eines 4,7kOhm-Widerstands ein Poti genommen habe, das ich möglichst genau eingestellt habe.

    Wenn ich mir nun erste Messungen anschaue, ist das unbrauchbar:


    Zum eine die vielen Aussetzer. Die Sensoren verschwinden immer mal unter /sys/bus/w1/devices und bauen sich dann wieder auf. Wenn zu diesem Zeitpunkt gerade eine Messabfrage erfolgte, gibt es keinen Messwert. Aber damit könnte ich leben, weil das Messobjekt relativ träge ist.
    Viel schlimmer sind aber die Ausreißer. Die machen den Durchschnittswert völlig unbrauchbar. Die Ausreißer sind auch bei unterschiedlichen Sensoren zu unterschiedlichen Zeiten, also nichts Zentrales, was sie bewirkt.

    Ist das Normal???

    Wo könnte ich bei der Fehlersuche ansetzen? Würde eine sternförmige Verdrahtung was bewirken? Die 3 Leitungen sind leicht miteinander verdrillt und ungeschirmt. Ich dachte, bei so kurzen Strecken ist das egal. Oder doch nicht??

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

    Einmal editiert, zuletzt von docadams (6. Dezember 2013 um 10:06)

  • ich hatte auch einige Probleme mit dem Timing und dem Widerstand am Atmel, habe den Widerstand auf 2,2k verringert (am PI schreiben andere sogar 820 Ohm !) CRC Check ist Pflicht und dann IMHO mehrfach lesen bis der CRC Check erfolgreich ist, am Atmel habe ich nur sehr selten LEsewiderholungen, maximal 2 Stück.

    Am PI wollte ich mir den Eingriff im Sourcecode nicht mehr antun und weil ich eh einen AVR daneben habe der die AD Wandlung macht kann der auch die DS18B20 lesen mit dem von mir erweiterten Code.

    Am Atmel läuft das nun über 2 Jahre mit gemischter Stern- Bus- Topologie für 6 DS18B20 am Telefonkabel auf 2 Drähten bis 25m mit parasitärer Speisung ohne zusätzliche Vcc Leitung.

    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)

    Einmal editiert, zuletzt von jar (6. Dezember 2013 um 10:17)

  • Zitat


    CRC Check ist Pflicht


    Ich stehe ganz am Anfang meiner Experimente :)
    Damit meinst du das in der Datei ... w1_slave?

    Zitat


    3c 01 13 46 7f ff 04 10 cf : crc=cf YES

    Wie kann ich einen solchen Check wo einbauen?

    Und sind solche Aussetzer, also dass die Devices richtig verschwinden und dann wiederkommen, normal?

    Wenn ich in die Datei schaue, steht dort entweder YES und eine realistische Temperatur ODER es steht NO und 0 Temperatur. Wäre das dann ein solcher Ausreißer, der in der Grafik erzeugt wird?
    Ich dachte, wenn ein Ausreißer entsteht, steht dort auch konkret t=99000 oder t=61123 oder so.

    Und sind solche Aussetzer, also dass die Devices richtig verschwinden und dann wieder kommen, normal?

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

    Einmal editiert, zuletzt von docadams (6. Dezember 2013 um 10:39)


  • 3c 01 13 46 7f ff 04 10 cf : crc=cf YES

    Wie kann ich einen solchen Check wo einbauen?

    mit CAT in der Datei auf das Vorhandensein von YES prüfen ?
    ich bin nicht so der Linux scripter, dann erst den Wert auslesen, sonst neu aufrufen bis YES


    Und sind solche Aussetzer, also dass die Devices richtig verschwinden und dann wiederkommen, normal?

    habe ich am PI weil mein Sockel miese Kontaktgabe zum DS18B20 hat.
    Ist bei dir irgendwo unsichere Verbindung ?

    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)

  • Meine Programmiererfahrungen endeten vor ca. 30 Jahren mit BASIC...
    Ich kann nur vorhandenen Code nehmen, versuchen zu verstehen und im Rahmen meiner Möglichleiten anzupassen. Muss mich mal auf die Suche begeben, denn eigentlich ist das ja etwas Grundlegendes, nicht wahr?

    Du vermutest also, es sind die Kabelverbindungen. OK, muss ich nachsitzen...

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

  • ich vermute auch mal das es an den Kabeln liegt.

    Ich hatte hier  schon mal beschrieben das ich mit 10 m Litze keinen Empfang hatte obgleich alles korrekt verkabelt war. ich griff dann den Hinweis von Jar in einem anderen beitrag auf und nahm Telefonkabel und alles war gut.

    Bei der Litze kam übrigens am Ende bei meinen Messungen immer die 3.3V an. Ich vermute daher mal das die Sensoren in irgendeiner Art empfindlich auf Fremdstrahlungen reagieren - oder das sich die ungeschirmeten Kabel gegenseitig stören. Auf kurzen Strecken macht das nichts - am Ende meiner Fühlerstrecke geht es mit knapp 1.5 Metern Litze ab in den Kühlschrank und der Sensor misst die letzten Wochen dort friedlich vor sich hin.

    Teste doch mal mit ein paar Metern geschirmtes Kabel, ev. hilft es ja auch bei Dir.

Jetzt mitmachen!

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