DS1820 bringt alle dreieinhalb stunden falschen wert

  • Hallo Zusammen,


    ich habe mir einen kleinen Webserver mit dem RPi aufgebaut, der alle 5 Minuten die Temperatur über einen DS1820 ausliest, diesen Wert in eine RRD Datenbank abspeichert und dann Grafiken erstellt. Alles zusamen wird dann auf meiner HP gezeigt.
    Beim Anschauen ist mir jetzt aufgefallen, dass zuverlässig alle 3 1/2 stunden die Messung fehlschlägt! Vgl hier:


    [Blocked Image: http://staengle.selfhost.eu/graph/day_big.png]


    den Thread von "Pfaelzer" habe ich schon durchgelesen, finde die Lösung dort jedoch nicht so toll...
    Der DS1820 hängt über Flachbandkabel auf einer seperaten Platine, auf der auch ein RFM12 modul sitzt, da ich später auch von anderen Räumen die Temperatur über Funk ermitteln möchte.
    Als ich den Sensor direkt am RPI hatte traten diese Fehler nicht auf. Müsste doch also an der Hardware liegen? Stichwort Pullup oder Leitungslänge?!
    Kann jemand vlt. was dazu sagen?


    grüße Grasshopper

  • CRC Check ? pullup kann lt. anderen Meldungen bis 820 Ohm runtergesetzt werden


    etwas mehr dürftest du schon mitteilen


    welcher pullup ? machst du CRC check ? müssen wir den Beitrag von pfälzer suchen ?


    was genau machst du ?

    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)

  • Aus "Flachbandkabel" & "Platine" schließe ich mal das der Sensor direkt neben dem Pi angesiedelt ist, daher dürfte der 4.7kOhm Widerstand schon passen, Die 820 Ohm habe ich bei 12 Sensoren auf gut 90 meter Kabel :).


    Einen CRC Check sollte man unbedingt einbauen, denn der Sensor kann sich manchmal recht dickköpfig anstellen und sendet zunächst mal was er will, insbesondere dann, wenn er beim lesen irgendwie gestört wird. Daher solltest Du auch mal schauen, ob Du alle 3 1/2 Stunden irgendetwas am Pi laufen hast, was die Lesung des Sensors stören könnte.


    Ich lese die Temperaturen via Cronjob alle 30 Minuten, ein weiterer Cronjob sollte alle 6 Stunden eine Mail absetzen und das hakte gewaltig mit dem ersten Job und produzierte Fehler. Nachdem ich den Mailjob ein paar Minuten verlagert hatte und sich die beiden Messungen nicht mehr in die Quere kommen läuft alles sauber.


    Aber auch bei sauberster Installation und besten Voraussetzungen kann es immer mal wieder zu Fehlern kommen. Die muss man dann halt per Hand aus der Datenbank löschen - oder eine entsprechende Abfrage in den Code einbauen... aber das mache ich morgen (und sage es bereits seit 4 Wochen! :-D)

  • Meiner ließt alle Minute aus und ich hab ab uns zu auch werte von -0,0


    ich denke mal das liegt einfach in der Toleranz vom Messen und übertragen :)


    @ pfarrerbraun, du hast 90 Meter Kabel verlegt?
    Hast du dann jeden Sensor selbst mit einem passenden Widerstand ausgestattet??


  • @ pfarrerbraun, du hast 90 Meter Kabel verlegt?
    Hast du dann jeden Sensor selbst mit einem passenden Widerstand ausgestattet??


    soviel habe ich nicht


    bei mir am Atmel treibt ein 2,2k ! alle Kabel bis 25m in onewire mit parasitärer Speisung 1+3 = GND, 2 Data.


    ein Kabel 10m kleines Zimmer -> ein Sensor
    ein Kabel 25m Wohnzimmer Warmwand + Balkon -> 2 Sensoren
    ein Kabel 20m Wohnzimmer Kaltwand -> 1 Sensor
    ein Kabel 20m Schlafzimmer -> 1 Sensor


    ein Sensor auf dem Board


    alle Kabel parallel

    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)

    Edited once, last by jar ().

  • @ pfarrerbraun, du hast 90 Meter Kabel verlegt?
    Hast du dann jeden Sensor selbst mit einem passenden Widerstand ausgestattet??


    Nein, ich habe einen Widerstand vor dem ersten Sensor, dieser steckt in einer Platine und von dort schlängeln sich 2 Kabel durch die Wohnung, mal schön an der Wand lang, mal mitten dadurch zum nächsten Zimmer. An einigen Stellen spalten sich die Kabel dann nochmal auf damit auch, somit sind beide Kabelstränge sowohl in Reihe als auch Sternförmig verlegt. Momentan hängen 12 Sensoren daran und ich habe nach jedem Sensor die Schaltung getestet, dabei war dann mit höheren Widerständen irgendwann schluss und es wurden keine Sensoren mehr erkannt. So habe ich den 4.7k immer weiter runtergeschraubt bis ich wieder Signal hatte.
    Das alles funzt mit 3.3V.