[GELÖST] 1-Wire DS18B20 Temp. Sensoren funktionieren mit einer langen Leitung nicht

Begonnen von Burny4600, 26 November 2022, 12:56:54

Vorheriges Thema - Nächstes Thema

Burny4600

Ich verwende das Betriebsystem Raspberry Bullseye Lite.
Ich habe DS18B20 1-Wire Sensoren, mit einer langen Leitung von ca. 30m, an dem Raspberry Pi 3 angeschlossen.
Kurz vor den Fühlern wird das Kabel für die zwei Sensoren gesplittet. Die Kabellängen zu den Fühlern sind ca. 1m und ca. 2m lang.
Ein 4,7k Widerstand ist am Raspberry Pi am +3,3V Pin und am GPIO4 Pin angeschlossen.
Der DS18B20 Sensor ist am Raspberry Pi mit dem +5V Pin, dem GND Pin und dem DQ (GPIO4) Pin verbunden.
Die Adern für GND und DQ (GPIO4) sind vom Raspberry bis zum Sensor verdrillt ausgeführt.

Die gemessene Spannung am Sensor am Vdd Pin gegen den GND Pin ist 5,211V.
Die gemessene Spannung am Sensor am DQ (GPIO4) Pin gegen den GND Pin ist 3,285V.

Die Konfiguration der Datei /boot/config.txt
### 1-Wire Temperaturfühler mit externem Pullup Widerstand
dtoverlay=w1-gpio,gpiopin=4

Die Konfiguration der Datei /etc/modules
### 1-Wire Temperaturfühler mit externem Pullup Widerstand
w1-gpio
w1-therm

Überprüft mit
ls /sys/bus/w1/devices/ergibt
w1_bus_master1
Wenn ich einen DS18B20 1-Wire Sensor direkt am Raspberry anschließe, funktioniert die Verbindung zwischen Raspberry und dem DS18B20 1-Wire Sensor.
Überprüft mit
ls /sys/bus/w1/devices/ergibt
28-0516a17948ff  w1_bus_master1
Wenn ich die Spannung am DS18B20 1-Wire Sensor messe, erhalte ich auch die gleichen Spannungswerte wie am Ende der langen Leitung, wo die beiden DS18B20 1-Wire Sensorleitungen aufgeteilt werden.

Ich finde keinen Fehler, und dennoch funktioniert die 1-Wire Ausführung mit der langen Leitung nicht.
Was kann diesen Fehler verursachen?
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

UweH

Moin,

such mal ein bisschen in den alten Threads zu dem Thema, diese Problemstellung hatten wir schon vor 8 oder 10 Jahren diskutiert. Besorg Dir einen korrekten Busmaster und dann läuft das auch.

Gruß
Uwe

Nobbynews

Bei einem ESP-01 hatte ich auch ziemliche Probleme.
Habe dann den Pullup-Widerstand durch Parallelschaltung mit einem 6k8 verkleinert.

Aus der Doku zu ESPEasy:
ZitatThe DS18B20 runs well on 3,3V so no level shifter or special power supply is needed.

The sensor needs a pull up resistor. If you use the breakout board type the resistor usually is already on the board. This gets you into problems if using several DS18B20 breakout boards- As there should be only one resistor on the whole line you might have to remove resistors leaving just one at one end of the line.

Cabling: Do not use very thin cabling! Tested with a 3*0,14mm² cable the length with 5 Sensors was 10 meters, longer cabling did not work. Use a phone cable (2*2*0.6mm²) instead if you need long distances up to 50..100 meters. remember: One (!) pull-up resistor for the whole line!

The preferred structure is a straight line. If possible avoid "stubs". If necessary it can be cabled in a "star" infrastructure. But be aware that stubs and star form reduce the possible cable length.     

ZitatTroubleshooting
Usually the DS18B20 works without issues. It's also usual that most problems result from cabling mistakes... With long cabling you might get wrong data sometimes. It might be helpfull to reduce the resistor a bit, 2,2 KOhm is lowest possible.

If nothing works disconnect all sensors from line and connect back one by one, checking every time. Cable may be too long (or too thin for the given distance). Keep cabling away from other cables to avoid interferences. If necessary place a 10µF capacitor on the sensors between 3,3v and Gnd.

TomLee

Vor meiner Zeit mit einem "korrekten" Busmaster", hab ich den GPIO4 auch genutzt, kann nur bestätigen, das der Widerstand umso länger die Leitungen wurden, nach unten angepasst werden musste. Mit dem Busmaster (Denkovi) ist das dann, bisher (bin etwa geschätzt bei 120-130m), nicht mehr nötig gewesen.

Burny4600

Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

TomLee

Vielleicht noch was, weil das heute passt -> auch wenn Burny4600 gar nicht danach gefragt hat ist er und andere die hier mitlesen bestimmt nicht traurig wenn jemand eine günstige Alternative zu dem Denkovi empfehlen kann (hab vor ein paar Wochen gesehen das der jetzt für mehr als 60 € angeboten wird, hab vor ein paar Jahren ca. 24€ gezahlt).

TomLee


TomLee

Die günstigste Lösung ist mMn (voübergehend) ein kleinerer Widerstand, die kostet fast nix. Rantasten !

Burny4600

Ich bin mit dem Widerstand schon bei 1,1k angelangt.
Funktioniert aber trotzdem nicht mit der langen Leitung. Den 1-Wire direkt am Raspberry angeschlossen funktioniert.
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

TomLee

Rantasten, bedeutet bei mir auch nicht ganz unten anzufangen, versuch mal auf einen Wert zu kommen irgendwo zw. 4 und 4,5 .

Nobbynews


UweH

Zitat von: Burny4600 am 27 November 2022, 19:57:24
Gibt es auch günstige Busmasterlösungen?
Kommt drauf an, ob es eine fertige und käuflich zu erwerbende Lösung sein muss oder ob Du auch selbst zum Lötkolben greifen willst (kannst)? Es gab seinerzeit einige Entwicklungen eines LAN- (WLAN)/1-Wire- Interfaces und auch ein USB-Interface (bei mir laufen beide Versionen seit Jahren ohne Probleme mit über 30 Devices auf teilweise sehr langen Strecken). Für beide könnte ich die Schaltpläne zur Verfügung stellen (sind aber auch alle hier im Forum und im Wiki verfügbar). Wenn ich ganz tief grabe, finde ich sicher auch noch Platinen. Darüber hinaus kann ich aber aus Zeitmangel keinen weiteren Support anbieten.

Gruß
Uwe

Burny4600

ZitatBeide gleichzeitig?
Es funktioniert nur der 1-Wire Sensor der direkt am Pi angeschlossen wird.
Hänge ich die beiden anderen Sensoren am Pi an wird kein Sensor erkannt.
Wenn der lokale Sensor der direkt am Pi angeschlossen (der der funktioniert), und anschließend die exponierten dazu hänge, wird kein Sensor angezeigt.
Die Leitung ist OK. Ebenso die exponierten Sensoren (zum Test wurden diese direkt am Pi getestet).
Die Spannungen die ich beim funktionierenden Sensor anliegen habe (GDN ^ +5V = +5,21V , GND ^ DATA = +3,282V), sind auch bei Verwendung der Sensoren mit der langen Leitung.
Ich habe für weitere Tests ein Drehpoti mit 4,7k anstatt des 4,7k Widerstandes an die Anschlüsse +3,3V ^ DATA angeschlossen. Zwischen 4,7k und 1,2k hat sich bei den Schrittweisen Test nichts geändert. Nach jedem neu eingestellten Widerstandswert, habe ich immer einen Neustart durchgeführt.

ZitatKommt drauf an, ob es eine fertige und käuflich zu erwerbende Lösung sein muss
Ich habe für die ganze Haustechnik vieles selbst gelötet. Was ich betreffen der 1-Wire Angelegenheit errichte, soll nur funktionieren. Ich brauche nämlich noch zwei Stränge mit langen Leitungen auf anderen Pis.
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

buec65

Firmata mit Arduino Nano an USB oder ESPeasy mega mit ESP8266, ESP32 oder z. B. WT32-ETH01 (LAN-Anbindung) wären Alternativ möglich.

Nobbynews

Zitat von: Burny4600 am 28 November 2022, 14:09:51
Es funktioniert nur der 1-Wire Sensor der direkt am Pi angeschlossen wird.
Hänge ich die beiden anderen Sensoren am Pi an wird kein Sensor erkannt.
Alles ein wenig verworren für mich.
Also insgesamt 3 Stück?
Ich würde jetzt mal nacheinander die anderen beiden abgesetzen Sensoren direkt an den Pi hängen.
Scheint, dass da evtl. einer der beiden kaputt ist??
Zitat von: buec65 am 28 November 2022, 14:42:20
Firmata mit Arduino Nano an USB oder ESPeasy mega mit ESP8266, ESP32 oder z. B. WT32-ETH01 (LAN-Anbindung) wären Alternativ möglich.
An einem D1-Mini habe ich unter ESPEasy 6 Stück an einem Port dran hängen. Keine Probleme.