NEWS
DS18B20 mit RPi instabil
-
@gari Darf ich mich hier auch noch einschalten und fragen, weshalb du ein separates Skript verwendest und nicht einfach einen der bestehenden Adapter? Es gibt den iobroker.ds18b20 und den owfs Adapter.
-
@gari Habe eine ähnliche Hardware-Config wie Du. Bei mir sind es 10 Stück DS18B20, die ich auf einem Verteiler zusammen führe. Als Pullup-Widerstand habe ich 4K7 genommen. Allerdings habe ich auf der Betriebsspannung am Verteiler noch einen 100nF und einen 100µF Kondensator gesetzt. Läuft seit Jahren stabil bei mir.
-
ich hatte nach dem Wechsel auf den Raspi4 auch das Problem. Bei mir half in der
"/boot/config.txt" den GLIO Pin mit einzutragen.
dtoverlay=w1-gpio,gpiopin=4 -
@volbuss Jo, hab ich bereits .
-
Hey, danke euch alle für die Anregungen!
@Pete0815 Danke besonders dir, für die ausführlichen Erklärungen.
Nach dem ich die Messung allein mit T1 (Außenfühler) laufen ließ und danach mit den Fühlern T2-T9, musste ich feststellen, dass beide Varianten spontan abbrechen.Es liegt also nicht nur am Außenfühler (wie ihr ja schon befürchtet habt).
Beim Überprüfen der PulluP-Widerstände habe ich dann festgestellt, dass durch die 5,5 V die GPIOs der Busse 1 und 2 eine wegbekommen haben. Es stellte sich nämlich zwischen GPIO und dem Spannungspin, ein Widerstand von 27 kOhm ein. Bei den anderen GPIOs hingegen nur 40 MOhm.
Also habe ich nun erstmal die Busse auf neue GPIOs gelegt und teste T2-T9 über 3,3 V (Ohne Außenfühler). Alle anderen Ratschläge habe ich natürlich gelesen. Ich teste mich Stück für Stück durch. -
@josh Hey, Klingt ja interessant.
Wie lang sind deine Kabel?
Welche Art Verschaltung hast du umgesetzt?
Welche Spannung nutzt am DS18B20 als Phase bzw. am PullUp?
Wie hast du die Kondensatoren verschaltet? -
@unclesam Danke für den Tip Uncle Sam, ich kannte die Adapter noch nicht
Ich muss aber auf Jeden Fall auch die Temperaturen abspeichern können. Zur Zeit mach ich das in eine txt. Die kann ich ja dann in Excel gut weiter verarbeiten.
Des Weiteren habe ich die Überlegung (Wenn dann man die Temperaturmessung richtig klappt) ggf. auch aktive Elemente (Pumpen, Stellventile) zu schalten. Das wäre dann natürlich ein eues Vorhaben. Mein Ziel ist aber, dass mit besthendem Skript man dann daran anküpfen könnte.
Würde der Adapter sich dazu als Zwischenglied auch eignen?Nun aber erst mal eins nach dem anderen
-
@gari
klingt als kommst Du einen Schritt weiter auch wenn das Ergebnis gerade noch nicht so erfreulich klingt. Ob man die GPIOs so "durchmessen" kann k.A. Mir ist die Fummellei dort meistens mit Widerständen (Spannungsteilern) zu aufwendig und da ich eh örtlich in Abzweigkästen viel mit Dupontkabeln unterwegs bin führe ich die Sensorseite gerne voll in 5V aus und geht auf GPIOs, kommt ein Logic Shifter davor (Stückpreis 50Cent 4 Kanäle ;)).
https://de.aliexpress.com/item/32771873030.htmlViel Erfolg!
-
@gari sagte in DS18B20 mit RPi instabil:
@josh Hey, Klingt ja interessant.
Wie lang sind deine Kabel?
Welche Art Verschaltung hast du umgesetzt?
Welche Spannung nutzt am DS18B20 als Phase bzw. am PullUp?
Wie hast du die Kondensatoren verschaltet?Vom RPi bis zum Verteiler ca. 0,2m. Dann vom Verteiler sternförmig mit Kabellängen zwischen 3m und 5m. Als Kabel habe ich 3x 0,14mm² PUR-Kabel genommen. Waren halt Kabelreste von Näherungsinitiatoren.
Als Pullup habe ich einen 4K7 genommen. Spannung 3,3V. Alles an nur einem GPIO.
Beide Kondensatoren am Verteiler zwischen 3,3V und GND. Der 100µF ist zum Buffern der Betriebsspannung und der 100nF ist gegen "HF"-Störungen.
Mehr als 10 Stück DS18B20 sollte man aber nicht nehmen, weil der GPIO nicht mehr sicher versorgen könnte.
-
@gari sagte in DS18B20 mit RPi instabil:
Zur Zeit mach ich das in eine txt. Die kann ich ja dann in Excel gut weiter verarbeiten.
Dafür gibt es ja die verschiedenen "history" Adapter: ioBroker.history, ioBroker.sql und Co.
Mein Ziel ist aber, dass mit besthendem Skript man dann daran anküpfen könnte.
Ehrlich gesagt würde ich versuchen, die ganze Logik in ioBroker zu haben und nicht darum herum. Für Logik-Sachen gibt es ja den JavaScript Adapter (mit Blockly, JS/TS und Rules) oder z.B. den Node Red Adapter.
Mein Konzept ist immer:
- Adapter (und wenn nötig eigene Skripte) holen sich die rohen Daten rein
- ioBroker.javascript macht die gesamte Logik
- Adapter schalten Aktoren (Relais, GPIOs, ...)
-
@josh Top! Klingt ja wirklich ähnlich zu meinem Aufbau (ohne Außenfühler)... Eine Frage noch: die beiden Kondensatoren zwischen GND und 3,3 V parallel?
-
@gari sagte in DS18B20 mit RPi instabil:
@josh Top! Klingt ja wirklich ähnlich zu meinem Aufbau (ohne Außenfühler)... Eine Frage noch: die beiden Kondensatoren zwischen GND und 3,3 V parallel?
Ja, beide parallel zwischen 3,3V und GND. Klingt für einen Nicht-Elektrotechniker vielleicht unsinnig, aber die Elektrolytkondensatoren filtern keine bzw. kaum HF-Störungen raus. Dafür der Keramik- oder Vielschichtkondensator mit 100nF.
Sieht bei mir dann so aus (ich weiß, ist noch nicht perfekt):
-
@josh Hallo alle, nun habe ich das Zwischenergebnis, dass auch meine Messung ohne den Außenfühler, bei 3,3 V Betriebsspannung abbricht. Da es mir bisher das Einfachste scheint, möchte ich (bevor ich die Schaltung der slubs verändere) Joshs Kondensatoraufbau testen.
@Josh 100µF habe ich sogar noch da. Der Kondensator ist aber für eine Spannung von 63 V. Meint ihr, der geht trotzdem?
Link zum Produkt: https://www.conrad.de/de/search.html?search=445400Gleiche Frage für die 100nF Kondensatoren. Welche angebene Spannung sollte ich da wählen, wenn ich davon ausgehe mit 3,3 V, bzw. maximal 5,5 V zu betreiben? Ginge da auch ein 50 V Kondensator? Theoretisch müsste das doch gehen, wenn die angegebene Spannung nur die Maximalspannung ausweist. Oder?
-
@josh Sehr hübsche Anzeige übrigens!
-
@gari Ja, die Spannungsfestigkeit ist egal. Hauptsache die Kondensatoren haben die erforderliche Mindestspannung von 3,3V + Reserve. Ich würde also keine unter 5V wählen.
-
@josh Okay, nun habe ich die neuen Kondensatoren (100 nF, 100 µF) eingebaut. Nach 2 h kam es wieder zum Ausfall von 4 Sensoren....mh.
Im Anhang der neue Schaltplan 2021.05.07_Schaltplan_mit_C1_C1.pdf. Vielleicht habe ich ja doch was falsch gemacht. (Anmerkung: Bei Fritzing gab es keinen 100 µF-Kondensator, nur einen mit 47 µF. Tatsächlich habe ich natürlich einen mit 100 µF verwendet.)
Ich habe einfach die Minus-Seite der Kondensatoren mit 3,3 V und die Plus-Seite mit GND verbunden. Parallel zu GND und 3,3V.
Eine andere Frage habe ich noch: Wäre es rein physikalisch nicht sinnvoller die Kondensatoren zwischen GND und Bus zu schalten? Denn soweit ich verstanden habe, ist doch das Problem auch, dass die GPIO-Pins ggf. mit zu viel Spannung (durch eine Induktion) belastet werden könnten.
Ich freu mich auf eure Denkanstöße!
-
@gari sagte in DS18B20 mit RPi instabil:
Ich habe einfach die Minus-Seite der Kondensatoren mit 3,3 V und die Plus-Seite mit GND verbunden. Parallel zu GND und 3,3V.
Für den Elko (100µF) ist das genau falsch rum und der wird dadurch kaputt gehen (eventuell sogar mit einem lauten Knall).
Die gekennzeichnete Minus-Seite muss immer an GND, wie du es auch in deiner Fritzing-Zeichung gemacht hast).
Für den Kerko (100nF) ist es egal wie rum.@gari sagte in DS18B20 mit RPi instabil:
Eine andere Frage habe ich noch: Wäre es rein physikalisch nicht sinnvoller die Kondensatoren zwischen GND und Bus zu schalten? Denn soweit ich verstanden habe, ist doch das Problem auch, dass die GPIO-Pins ggf. mit zu viel Spannung (durch eine Induktion) belastet werden könnten.
Nein. Mit einem Kondensator glättest du eine Spannung. Der Bus ist quasi ein gezieltes Ein-/Ausschalten des Leitung zur Datenübertragung. Durch einen Kondensator zwischen Bus und GND würdest du das stören und damit die Datenübertragung verhindern.
Ich habe bei mir die besten Erfahrungen mit den DS18B20 am Raspi gemacht, wenn ich die Versorgungsspannung der Sensoren an +5V habe und die Datenleitung mit einem Pullup-Widerstand gegen +3,3V habe.
Den Widerstandswert kannst du hier zwischen 4,7 kOhm bis runter auf etwa 1 kOhm wählen. Je geringer der Widerstand, um so steiler sind die Flanken beim Umschalten zwischen High- und Low-Pegel und damit wird das Signal sauberer/besser (einfach gesagt).
Vom Pullup gegen +5V würde ich auf jeden Fall abraten, da damit der Raspi die +5V am GPIO bekommt, wodurch er Schaden nehmen kann.
Was du noch versuchen kannst, ist pro Sensor einen 100nF Keramikkondensator möglichst direkt am Sensor zwischen VCC (+5V bzw. +3,3V) und GND. Der würde noch mal die Versorgungsspannung direkt am Sensor glätten.
-
@gari Nehme doch einfach mal den GPIO4, wie auch @crycode oben. Den habe ich auch genommen. Und warum hast Du mehrere Pins für 1Wire genommen? Reicht doch einer.
Wenn Du den 100µF wirklich verpolt hast, kannste den jetzt entsorgen. Der arbeitet nicht mehr zuverlässig. Manchmal fliegt Dir so ein Ding auch um die Ohren. Glück gehabt.
100nF Kondensatoren nahe an den Sensor bringen ist auch eine gute Idee. Manchmal ist das aber nicht so einfach, wenn man die Dinger schon schön "verpackt" hat.
Und es ist keine gute Idee einen Kondensator auf die Datenleitung zu hängen. Der macht "wechselspannungsmäßig einen Kurzschluss". Damit machst Du das Signal kaputt. Aber das hatte @crycode ja auch schon geschrieben.