1-Wire mehrere Sensoren

  • Nun noch einmal zum aktuellen Stand der Dinge:

    Ich habe meine Erweiterungsplatine (umfasst die MCP-ICs, die Klemmen für die Eingänge sowie die Anschlussklemmen des 1-W-Buses) ein wenig umgelötet.

    Nun ist auch noch die letzte Unsicherheit eliminiert:

    ...für die Sensoren ein eigenes Netzteil? Das wäre von Vorteil.

    Es gibt zwar immer noch nur ein Netzteil, mit dem versorge ich aber ZUERST (mit 5,2V bis 5,25V) die Erweiterungsplatine und von da aus dann erst meine Relais-Karten, den 1-Wire-Bus (VCC) und den Raspi (hier sind die 5V-Pins also nun überhaupt nicht mehr belegt).

    Die 3,3V für 1-W kommen dann wieder vom Raspi.

    Der Pullup-(Fest-)Widerstand hat einen Wert von 1k und es sind 3 Fühler angeschlossen.


    Die Datenabfrage (über Python) läuft nun immer einige Zeit stabil, bricht dann aber nach aus unerfindlichen Gründen ab (dann verschwinden auch die Urdner im Verzeichnis sys/bus/1w/devices).

    Ich habe auch schon einen anderen Raspi ausprobiert.

    Das Problem war aber auch hier das gleiche.

    HW: Raspberry PI 3 B+ / 3A-Netzteil / 32 zusätzliche GPIOs über 2x MCP23017 / 4 Relaiskarten zu je 8 Relais / 1-Wire (in Arbeit)

    SW: Raspbian Stretch (4.14.52-v7+) / Python-Programmierung per Geany 1.29 bzw. Thonny 2.1.16

    Einmal editiert, zuletzt von Mr.Ed ()

  • Ich habe auch schon einen anderen Raspi ausprobiert.

    Das Problem war aber auch hier das gleiche.

    ich misstraue immer noch deiner Verkabelung und/oder stretch


    1. versuchs mit jessie!

    2. versuch es mal mit Sensoren direkt an GPIO Pins ohne deine Platine und Kabel

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • versuchs mit jessie!

    Kannst du mir da bitte helfen - ich fürchte, ich stehe ein wenig auf der Leitung: Wer ist jessie? :denker:

    GPIO Pins ohne deine Platine und Kabel

    Irgendwie muss ich die Sensoren ja am Raspi anschließen.

    Und nichts anderes macht meine Platine (ein Elektrotechniker würde das Teil auf Grund der einfachen Ausführung wahrscheinlich nicht einmal so nennen^^)

    Ich habe am jeweiligen Pin des Raspis eine 1-polige Buchse (aus einem Experimental-Kit) angesteckt. Das Kabel führt dann auf die Platine, wo es an eine Print-Schraubklemmenleiste gelötet ist - mehr nicht.

    Dass es eine gegenseitige Beinflussung zwischen den anderen (als Eingänge genutzten) GPIOs gibt, kann ich praktisch ausschließen, da ich beim Versuch mit dem Ersatz-Raspi nur die 2 Pins (+3,3V und GPIO4) angesteckt hatte.

    +5V und GND bekommt der 1-Wire ja direkt vom Netzteil (über die Platine/Schraubklemmen).

    Die Verbindung von DQ der Widerstände (habe mittlerweile einen 1k5 und einen 2k2 parallel in Verbindung mit 6 Sensoren) zum 3,3V-Anschlulss und dem GPIO4 passiert über einen Wago.

    Ich kann gerne Versuchen, das ganze miteinander zu verlöten, dass tatsächlich nur mehr die Steckverbindungen zum Raspberry lösbar sind.


    Könnte mir aber bitte vorher noch jemand folgenden Effekt erklären:

    Nachdem die Sensoren (wie üblich) nach ca. 20 Minuten einwandfreier Funktion ausgefallen waren, habe ich die Spannung zwischen GND und VCC der 1-Wire-Sammelschiene gemessen.

    In dem Augenblick, als ich die beiden Schienen mit dem Multimeter berührt hatte, waren alle Sensoren wieder da und funktionierten weitere 20-30 Minuten!:conf:

    Nach mehreren Durchläufen dann die Erkenntnis: Das Ergebnis ist reproduzierbar!

    Ich habe bei den Messungen stets darauf geachtet, keines der Bauteile zu bewegen, um einen Wackelkontakt ausschließen zu können.

    HW: Raspberry PI 3 B+ / 3A-Netzteil / 32 zusätzliche GPIOs über 2x MCP23017 / 4 Relaiskarten zu je 8 Relais / 1-Wire (in Arbeit)

    SW: Raspbian Stretch (4.14.52-v7+) / Python-Programmierung per Geany 1.29 bzw. Thonny 2.1.16

    Einmal editiert, zuletzt von Mr.Ed ()

  • Kannst du mir da bitte helfen - ich fürchte, ich stehe ein wenig auf der Leitung: Wer ist jessie?

    http://downloads.raspberrypi.o…07-05-raspbian-jessie.zip

    Und nichts anderes macht meine Platine

    Bild?


    so langsam reicht Prosa nicht mehr, wie soll man Fehler ohne Sicht feststellen?

    Du kannst ja raufschauen siehts aber der vermeindlichen Fehler offensichtlich nicht.


    ordentliche GPIO Stecker:

    http://www.segor.de/#Q=FLLAB1x20-180G&M=1

    oder

    http://www.segor.de/#Q=FLK%252Fgold&M=1

    in

    http://www.segor.de/#Q=FL1T&M=1

    bis

    http://www.segor.de/#Q=FL8T&M=1

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Ein 2k2 und ein 1k5 Widerstanf paralell geschaltet, haben einen Gesamtwiderstand von rd. 892 Ohm.

    Bei kurzen Leitungen wird der 1-wire GPIO-Pin damit schon fast kurzgeschlossen (übertrieben).


    Schraubklemmen sind für die Datenleitung unbrauchbar, auch wenn die Leitungen nicht bewegt werden. Es ändert sich laufend der Überbrückungswiderstand zwischen Litze und Klemme.



    Servus !

    Wer nichts weiß, muss alles glauben.

  • Danke für das Image!

    Leider funktioniert es nicht.

    Ich habe mit mehreren Programmen (DD, gnome-disk-utility,...) versucht, es auf die SD zu schreiben.

    Nach dem Einlegen blinkt die Power LED immer 4x lang, dann 4x kurz.


    langsam reicht Prosa nicht mehr

    Du siehst: rechts der Raspi, daneben meine Erweiterungsplatine:

    Bei der linken Klemmenreihe sind die ersten 3 Klemmen von oben: GND, 1-W und +5V.

    Alle anderen Klemmen sind, bis auf ein paar 3,3V-Klemmen dazwischen, noch nicht belegte Eingänge.

    Links im Bild habe ich 2 Verteilerklemmen zum Anschluss der Fühler an GND und +5V.

    Je 3 Datenleitungen der Fühler sind mit einem WAGO (links im Bild) verbunden, die dann zu einem weiteren WAGO (unten im Bild) führen.
    Die beiden Wiederstände führen dann zur einer der 3,3V-Klemmen.

    Die Verbindung zum GPIO4 läuft auch jetzt schon an der Platine vorbei.


    Bei kurzen Leitungen wird der 1-wire GPIO-Pin damit schon fast kurzgeschlossen

    Der geringe Widerstand ist bei mir eine Reaktion auf die 6 Fühler - bei weniger Fühler habe ich den Widerstand entsprechend vergrößert (zb.: 1k5 für 3 Fühler).

    Laut jar liegt die unterste Grenze bei 820 Ohm - diese möchte ich aber nicht unbedingt voll ausreizen.

    Schraubklemmen sind für die Datenleitung unbrauchbar

    Ich habe mich da an der Loxone in unserer Firma (1-Wire-Modul mit 6 Fühlern) orientiert.

    HW: Raspberry PI 3 B+ / 3A-Netzteil / 32 zusätzliche GPIOs über 2x MCP23017 / 4 Relaiskarten zu je 8 Relais / 1-Wire (in Arbeit)

    SW: Raspbian Stretch (4.14.52-v7+) / Python-Programmierung per Geany 1.29 bzw. Thonny 2.1.16

    Einmal editiert, zuletzt von Mr.Ed ()

  • Du siehst: rechts der Raspi,

    Klasse Bild, man sieht sofort das alles richtig verkabelt ist........;)

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Hier noch einmal die Ansicht von Oben:

    Und von unten (um die horizontale Achse gedreht)

    forum-raspberrypi.de/attachment/18375/


    Wie du erkennen kannst, habe ich die geschraubten Klemmen nun auch durch WAGOs ersetzt und versucht, die VCC auf 3,3V zu legen - immer mit dem gleichem Ergebnis (ca. 30 Minuten OK, danach alle Fühler weg).

    Bilder

    HW: Raspberry PI 3 B+ / 3A-Netzteil / 32 zusätzliche GPIOs über 2x MCP23017 / 4 Relaiskarten zu je 8 Relais / 1-Wire (in Arbeit)

    SW: Raspbian Stretch (4.14.52-v7+) / Python-Programmierung per Geany 1.29 bzw. Thonny 2.1.16

    Einmal editiert, zuletzt von Mr.Ed ()

  • die VCC auf 3,3V zu legen - immer mit dem gleichem Ergebnis (ca. 30 Minuten OK, danach alle Fühler weg).

    wie schon geschrieben, gehe mit allen DS Leitungen und besseren Steckteilen direkt an die GPIO und evtl. probierst du noch statt 3,3V VCC einen GPIO Port.

    Dann kannst du im Bedarfsfall die DS die Power abschalten und neu anschalten um einen hart reset der DS zu provozieren.

    Da dein 1k bis 820 Ohm nur Strom für um 3mA benötigt kann das auch ein Port leisten.

    Da du ja Power extra führst wären 100nF an der Power Leitung der DS auch noch denkbar.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Da es mir bei meinem Projekt ja auch um Alltagstauglichkeit (also Stabilität) geht, bin ich ehrlich gesagt drauf und dran, alle Kabel, die die Datenübertragung (DQ mit Pullup und GND) betreffen auch bei der späteren Festinstallaion fix zu verlöten (also auch am Raspi!).

    Die +5V VCC dürften ja nicht so empfindlich sein da es sich hier "nur" um die Spannungsversorgung (ohne Relevanz für die Datenübertragung) handelt.


    Die Idee, den VCC (wenn ich richtig verstanden habe: die 3,3V, mit denen ich den Pullup-Widerstand versorge?) schaltbar zu machen gefällt mir gut!

    Das ließe sich dann über eine Fühlerüberwachung auch ganz einfach automatisieren.

    Da ich noch ein Relais frei habe, könnte ich sogar die 5V schaltbar machen. Oder macht das dann wieder weniger Sinn?


    Fürs Verständnis:

    Die Kapazität müsste dann zwischen DQ und GND des 1-W-Buses geschaltet werden?

    HW: Raspberry PI 3 B+ / 3A-Netzteil / 32 zusätzliche GPIOs über 2x MCP23017 / 4 Relaiskarten zu je 8 Relais / 1-Wire (in Arbeit)

    SW: Raspbian Stretch (4.14.52-v7+) / Python-Programmierung per Geany 1.29 bzw. Thonny 2.1.16

  • Die Idee, den VCC (wenn ich richtig verstanden habe: die 3,3V, mit denen ich den Pullup-Widerstand versorge?)

    eigentlich den Pullup und den DS18B20 den dessen VCC meinte ich, natürlichdamit auch den pullup, an einem anderen GPIO als den 1W GPIO, der DS soll ja einen Power On Reset durchlaufen damit der PI eine Chance hat den wieder zu erkennen, wie einen Neustart.

    Da ich noch ein Relais frei habe, könnte ich sogar die 5V schaltbar machen. Oder macht das dann wieder weniger Sinn?

    ja macht weniger Sinn, wieder einige Kontakte mehr die stören könnten und ausserdem kann die VCC verseucht sein durch Prozessoraktivitäten.

    Die Kapazität müsste dann zwischen DQ und GND des 1-W-Buses geschaltet werden?

    natürlich nicht, zwischen VCC und GND vom DS18B20 als allerletzte Maßnahme wenn deine Umgebung zu verseucht ist.


    so siehts bei mir am NETIO AVR aus und funktioniert seit 2008

    https://www.mikrocontroller.net/topic/459973#5568136

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

    Einmal editiert, zuletzt von jar ()

  • Ich habe am 1WBUS (GPIO4) ca 10 -15m Kabel hängen mit 8 Sensoren. Gemischte Topologie. Stern und Strang.

    Den PullUp habe ich direkt am PI sitzen, und nicht als terminierungs R.


    Da habe ich aber das Signal auf 5V gezogen. Das wird wahrscheinlich nicht den Unterschied bringen.

    Hast Du die Spannungsversorgung mal an ein Oszi angeklemmt? Die billig Netzteile aus China sind da alles andere als LINEAR und können schon massiv auf der Datenleitung stören. Bei mir ist es ein normaler Schaltregler mit 3A der sowohl PI als auch den BUS versorgt.

  • so siehts bei mir am NETIO AVR aus

    Du hast also parasitäre Speisung!

    Die hatte ich ehrlich gesagt noch gar nicht ins Auge gefasst, da ich im Vorfeld aus mehreren Quellen gehört habe, dass diese speziell bei längeren Leitungen und "vielen" Sensoren problematisch sein kann.

    Einen Veruch ist es allemal wert!

    Spannungsversorgung mal an ein Oszi angeklemmt

    Nein. Kann ich mangels Oszi aber auch leider nicht so einfach.

    Das Netzteil ist zwar nicht für den Raspi zertifiziert, (da ich mehr Strom haben wollte als die 2,4A) aber das billigste war es auch nicht.

    Trotzdem soll das nichts heißen...

    Ich könnte versuchsweise mal ein normales PC-Netzteil anschließen - da müsste die Spannungsstabilisierung dann ja eigentlich passen?

    HW: Raspberry PI 3 B+ / 3A-Netzteil / 32 zusätzliche GPIOs über 2x MCP23017 / 4 Relaiskarten zu je 8 Relais / 1-Wire (in Arbeit)

    SW: Raspbian Stretch (4.14.52-v7+) / Python-Programmierung per Geany 1.29 bzw. Thonny 2.1.16

  • Hallo,

    nein ich habe keine Parasitäre Speisung. Ich habe einfach eine Sammelklemme hinter dem Netzteil (aomit alles das gleiche Potential) und dann Versorge ich den DS18B20 und den PI mit +5V=


    DS18B20 und PI hängen an einem Netzteil und die Relaiskarten haben eine eigene Versorgung.


    Der DS18B20 ist somit ganz normal angeklemmt > GND und +5V an der Schiene und DATA auf Sammelklemme für die Stränge die dann an den GPIO4 gehen. Die einzelnen Stränge (CAT6 Kabel SFTP) wobei die Masse jeweils das weisse Känbelchen beim Twisted Pair jerweils Masse ist und GND und +5V jeweils aus zwei Käbelchen besteht


    PC Netzteile ... hmmm auch nicht der Brüller. Muss ein gutes sein und auch nciht so ein billig Ding für 30 EUR.

    [IMG:http://www.porzucek.com/phpforum/download/file.php?id=6]

  • DATA auf Sammelklemme

    Dein Aufbau gefällt mir sehr gut! So ähnlich soll meiner auch mal aussehen :thumbup:

    Darf ich fragen, welche Sammelklemmen du da verwendet hast?



    Ich habe mittlerweile die ganze Konfiguration neu aufgebaut - noch einmal... :X


    Als Netzteil wird nun ein Meanwell Hutschienen-Schalt-Netzteil mit 3A eingesetzt.

    Der mittlerweile dritte Raspberry im Versuchsaufbau ist ein Zero W (V1.1)

    Auf eine neue SD-Karte (man kann ja nie wissen :shy:) habe ich dann Raspbian Stretch (Kernel 4.41.50+) per Noobs 2.8.2 neu aufgesetzt und bis auf die Aktivierung von VNC und 1W per raspi-config keine Einstellungen verändert.

    Die 6 Fühler werden mit 3,3V (an VDD) über den Raspi versorgt und der Pullup-Widerstand hat einen Wert von 892 Ohm.

    Sonst hängt absolut nichts an den GPIOs.

    Falls in irgendeiner Weise relevant: Als Anzeige verwende ich ein 7"-Touch-Display, das per HDMI und USB mit dem Zero verbunden ist.


    Und trotzdem, dass sich praktisch alles geändert hat, ist das Ergebnis wieder das Gleiche:

    Die Sensoren fallen zuverlässig nach 20 bis 30 Minuten aus.


    Ich überlege mittlerweile, ob es nicht besser wäre, die 1-Wire anbindung über I²C zu machen:

    I2C-1Wire-Bridge HS Baustein gefunden auf: https://www.cctools.eu/home.php

    Was sagen die Profis dazu?

    HW: Raspberry PI 3 B+ / 3A-Netzteil / 32 zusätzliche GPIOs über 2x MCP23017 / 4 Relaiskarten zu je 8 Relais / 1-Wire (in Arbeit)

    SW: Raspbian Stretch (4.14.52-v7+) / Python-Programmierung per Geany 1.29 bzw. Thonny 2.1.16

  • Haute habe ich mein Vorhaben, die Themperatursensoren über den GPIO auszulesen endgültig aufgegeben. ;(

    Ich habe die Stern-Topologie in eine Strang-Topologie aufgelöst: an ein ca. 9m langes Kabel (den Hauptstrang) habe ich in gleichmäßigen Abständen 5 Temperaturfühler angelötet.

    Zwischen VCC und GND hängt ein 100nF-Kondensator und der Pullup hat nach wie vor 892Ohm.

    Alle Verbindungen sind gelötet, um auch diese Fehlerquelle ausschließen zu können.

    Anfangs lief alles gut, bis der Bus nach etwas mehr als 24h wieder weg war und nur durch einen Hardreset aller Komponenten (auch den Raspberry) wieder aktiviert werden konnte (und das nur mit Mühe, da anfangs nur 2 Fühler erkannt wurden)

    Ich werde nun mein Glück mit einem DS2482-Chip (also über I²C) versuchen.

    HW: Raspberry PI 3 B+ / 3A-Netzteil / 32 zusätzliche GPIOs über 2x MCP23017 / 4 Relaiskarten zu je 8 Relais / 1-Wire (in Arbeit)

    SW: Raspbian Stretch (4.14.52-v7+) / Python-Programmierung per Geany 1.29 bzw. Thonny 2.1.16