Raspberry Pi Temperatursensor – DS18B20 anschließen & auslesen

NEWS



RASPBERRY PI TEMPERATURSENSOR – DS18B20 ANSCHLIESSEN & AUSLESEN


Raspberry Pi Platine mit Temperatursonde neben einem Wasserglas

Wasserdichte Sonde, ein GPIO-Pin – messen statt schätzen

Kurz gesagt: Wie schließt man einen Temperatursensor am Raspberry Pi an?

Ein Raspberry Pi Temperatursensor ist das klassische erste Elektronikprojekt: drei Drähte, ein Widerstand, ein Häkchen in der Konfiguration – und der Pi liefert Messwerte mit drei Nachkommastellen. Die Kurzfassung:

  • Der Standard-Sensor: Der DS18B20 misst von −55 bis +125 °C und arbeitet zwischen −10 und +85 °C mit einer Genauigkeit von ±0,5 °C. Es gibt ihn als nacktes Bauteil und als wasserdichte Sonde am Kabel.
  • Verkabelung: Rot an 3,3 V (Pin 1), Schwarz an Masse (Pin 6), Gelb als Datenleitung an GPIO4 (Pin 7). Dazu zwingend ein Pull-up-Widerstand von 4,7 kΩ zwischen Datenleitung und 3,3 V.
  • Freischalten: sudo raspi-config, dann 3 Interface Options und I7 1-Wire aktivieren, anschließend neu starten.
  • Auslesen ohne Programm: Jeder Sensor erscheint als Ordner unter /sys/bus/w1/devices/, dessen Name mit 28- beginnt. Die Datei w1_slave darin enthält am Ende t=21937 – das sind 21,937 °C.
  • Ein Pin, viele Fühler: Jeder DS18B20 trägt eine eindeutige 64-Bit-Seriennummer. Deshalb hängen zehn Sonden parallel an derselben Leitung, ohne dass ein weiterer GPIO nötig wird.
  • Python: Die Bibliothek w1thermsensor nimmt das Auslesen ab; alternativ genügen fünf Zeilen, die die Datei selbst einlesen.

Warum der DS18B20 der Standard am Raspberry Pi ist

Der Raspberry Pi hat keinen Analog-Digital-Wandler. Ein klassischer Temperaturfühler, der seinen Widerstand mit der Wärme ändert, ist damit ohne Zusatzchip nutzlos. Der DS18B20 löst das Problem, indem er die Messung selbst erledigt und das Ergebnis fertig digitalisiert herausgibt. Genau deshalb steht er in fast jeder Anleitung – er braucht keinen Wandler, keine Kalibrierung und kein Rechenwerk auf dem Pi.

Die Kommunikation läuft über den 1-Wire-Bus, ein Verfahren, bei dem Daten und Takt auf einer einzigen Leitung liegen. Der Ruhezustand dieser Leitung wird von einem Pull-up-Widerstand gehalten, üblicherweise 4,7 kΩ; die Sensoren ziehen sie zum Senden kurz auf Masse. Da jeder Baustein bei der Herstellung eine unverwechselbare Seriennummer erhält, kann der Bus mehrere Fühler gleichzeitig verwalten und einzeln ansprechen. Für Messreihen an Vorlauf und Rücklauf einer Heizung ist das der entscheidende Vorteil gegenüber Sensoren, die je einen eigenen Anschluss belegen.

Die Auflösung ist einstellbar: von 9 bis 12 Bit, was Schrittweiten zwischen 0,5 und 0,0625 °C entspricht. Höhere Auflösung kostet Zeit, denn eine 12-Bit-Wandlung dauert laut Datenblatt bis zu 750 Millisekunden. Wer im Sekundentakt messen will, senkt die Auflösung und gewinnt Tempo. Für Raumtemperatur und Heizungswasser spielt das keine Rolle – dort ändert sich ohnehin wenig innerhalb einer Minute.

Praktisch am Linux-Unterbau ist, dass das Betriebssystem die gesamte Bus-Logik übernimmt. Die Kernel-Module w1-gpio und w1-therm erkennen angeschlossene Fühler selbstständig und legen sie als Dateien im System ab. Damit lässt sich ein Temperaturwert mit jeder Sprache lesen, die Textdateien öffnen kann – Python ist nur die bequemste Variante.

DS18B20 anschließen und auslesen – Schritt für Schritt

  1. Pi ausschalten: Stecken am laufenden Board endet im schlimmsten Fall mit einem Kurzschluss. Erst herunterfahren, dann verkabeln.
  2. Drei Drähte setzen: Rot an 3,3 V (Pin 1), Schwarz an Masse (Pin 6), Gelb an GPIO4 (Pin 7). Bei Sonden ohne Farbcode hilft ein Blick auf das Datenblatt – die mittlere Ader ist immer die Datenleitung. Welcher Anschluss wo sitzt, zeigt das GPIO-Pinout.
  3. Pull-up einbauen: Ein 4,7-kΩ-Widerstand kommt zwischen Datenleitung und 3,3 V. Ohne ihn bleibt der Bus stumm – dieser eine Bauteil ist die häufigste Fehlerquelle überhaupt. Fertige Sonden aus Sets bringen ihn manchmal schon mit.
  4. 1-Wire freischalten: sudo raspi-config starten, unter 3 Interface Options den Punkt I7 1-Wire auf Ja setzen und neu starten. Wer lieber Textdateien bearbeitet, trägt in /boot/firmware/config.txt die Zeile dtoverlay=w1-gpio ein; ein anderer Anschluss lässt sich mit dtoverlay=w1-gpio,gpiopin=17 wählen. Details zum Werkzeug stehen in der raspi-config-Anleitung.
  5. Sensor suchen: Nach dem Neustart zeigt ls /sys/bus/w1/devices/ alle gefundenen Bausteine. Ein DS18B20 meldet sich mit einem Namen wie 28-3c01d607b6a1; erscheint dort nur w1_bus_master1, stimmt etwas mit der Verkabelung nicht.
  6. Rohwert lesen: cat /sys/bus/w1/devices/28-*/w1_slave gibt zwei Zeilen aus. Endet die erste mit crc=… YES, war die Übertragung gültig; am Ende der zweiten steht t=21937 für 21,937 °C. Neuere Kernel legen zusätzlich eine Datei temperature mit demselben Wert in Tausendstelgrad ab.
  7. In Python auswerten: Ohne Zusatzbibliothek genügt:
    from pathlib import Path
    for datei in Path("/sys/bus/w1/devices").glob("28-*/w1_slave"):
      text = datei.read_text()
      if "YES" in text:
        wert = int(text.split("t=")[1]) / 1000
        print(datei.parent.name, round(wert, 2))
  8. Bequemer mit Bibliothek: w1thermsensor übernimmt Suche und Umrechnung. Seit Bookworm verlangt Raspberry Pi OS dafür eine virtuelle Umgebung: python3 -m venv --system-site-packages ~/.env, danach source ~/.env/bin/activate und pip install w1thermsensor. Im Skript reichen dann drei Zeilen mit W1ThermSensor.get_available_sensors(). Mehr zu diesem Muster steht im Beitrag über GPIO mit Python.

Mehrere Fühler und lange Leitungen: der 1-Wire-Bus in der Praxis

Der eigentliche Reiz beginnt beim zweiten Sensor. Alle Fühler werden schlicht parallel geschaltet – Masse an Masse, 3,3 V an 3,3 V, Daten an Daten –, und der Pull-up-Widerstand bleibt einer für den ganzen Strang. Jeder neue Baustein taucht automatisch als eigener Ordner auf. Ein Heizungsmonitor mit sechs Messpunkten belegt am Ende genau einen GPIO-Anschluss.

Bei der Leitungslänge wird es interessanter. Bis etwa zehn Meter läuft der Bus meist problemlos, Berichte aus der Community reichen mit geschirmtem Kabel deutlich weiter. Wichtig ist die Topologie: Ein durchgehender Strang, von dem nur kurze Stichleitungen abgehen, funktioniert stabil, während eine sternförmige Verteilung mit langen Armen Reflexionen erzeugt und zu Lesefehlern führt. Hilft das nicht, senkt ein kleinerer Pull-up-Widerstand von 2,2 kΩ die Störanfälligkeit, weil die Leitung schneller in den Ruhezustand zurückkehrt.

Zwei Betriebsarten stehen zur Wahl. Bei normaler Versorgung liegt an der Sonde eine eigene Spannung an – das ist der empfohlene Weg. Im sogenannten parasitären Betrieb entfällt die Versorgungsader, der Baustein zieht seine Energie aus der Datenleitung. Das spart einen Draht, macht den Bus aber empfindlicher und ist bei vielen Fühlern an einem Strang keine gute Idee. Auf dem Raspberry Pi 5 heißt das passende Overlay übrigens w1-gpio-pi5; die Firmware setzt die richtige Variante selbst ein, sodass der Eintrag in der Konfiguration unverändert bleiben kann.

DS18B20, DHT22, BME280 oder Funksensor – was wofür?

Nicht jede Messaufgabe verlangt denselben Fühler. Diese Übersicht ordnet die gängigen Bausteine ein:

SensorMisstStärkeSchwäche
DS18B20TemperaturWasserdicht erhältlich, viele Fühler an einem Pin, robustKeine Luftfeuchte
DHT22Temperatur und LuftfeuchteGünstig, ein Bauteil für zwei MessgrößenTräge, gelegentliche Lesefehler
BME280Temperatur, Luftfeuchte, LuftdruckPräzise, am I2C-Bus schnell eingebundenEigenerwärmung bei dichter Bauweise
SCD40CO2, Temperatur, LuftfeuchteEchte CO2-Messung für die LüftungsampelDeutlich teurer
Zigbee-FühlerTemperatur und LuftfeuchteKabellos, batteriebetrieben, überall platzierbarNicht für Wasser, Rohre oder Erdreich

Die Faustregel: Überall dort, wo in etwas gemessen wird – Wasser, Erde, Rohr, Kühlschrank –, führt am DS18B20 kaum ein Weg vorbei. Geht es um Raumklima, sind BME280 oder ein CO2-Sensor die bessere Wahl. Und wenn zwanzig Räume erfasst werden sollen, ist Funk über Zigbee2MQTT billiger als jeder Meter Kabel.

Was aus dem ersten Messwert wachsen kann

  • Heizungsmonitor: Je eine Sonde an Vor- und Rücklauf zeigt die Spreizung und damit, ob die Anlage sinnvoll arbeitet. Ein häufiges Aha-Erlebnis in der Heizperiode.
  • Pool, Teich und Regentonne: Die wasserdichte Sonde ist genau dafür gebaut. Der Messwert landet per Nachricht auf dem Handy, bevor jemand vergeblich ins kalte Wasser steigt.
  • Serverschrank und Technikraum: Steigt die Temperatur über eine Schwelle, schaltet Home Assistant den Lüfter ein oder schickt eine Warnung.
  • Gewächshaus und Hochbeet: Bodentemperatur entscheidet über den Aussaatzeitpunkt – ein Wert, den kein Wetterbericht liefert.
  • Langzeitaufzeichnung: Ein Cronjob schreibt alle fünf Minuten in eine CSV-Datei oder in InfluxDB; die Kurven zeichnet anschließend Grafana.
  • Verknüpfte Logik: In Node-RED lassen sich Messwerte ohne Programmierkenntnisse mit Schaltvorgängen und Benachrichtigungen verbinden.
  • Ausbaustufe Wetterstation: Kommen Luftdruck, Feuchte und Wind dazu, entsteht daraus die eigene Wetterstation mit Verlaufsdaten aus dem eigenen Garten.

Fehler und Stolpersteine beim Temperatursensor

  • Kein 28er-Ordner sichtbar: Drei Ursachen decken fast alle Fälle ab – Pull-up-Widerstand vergessen, 1-Wire nicht aktiviert oder Neustart ausgelassen. In dieser Reihenfolge prüfen.
  • Immer 85,0 °C: Dieser Wert ist der Startwert des Bausteins nach dem Einschalten. Er erscheint, wenn die Versorgung zu schwach ist oder die Messung nie abgeschlossen wurde – meist ein Verkabelungsproblem.
  • Sporadische Lesefehler: Steht in der ersten Zeile NO statt YES, war die Prüfsumme falsch. Solche Messwerte gehören im Skript verworfen, nicht gemittelt.
  • Falscher Pin: Standard ist GPIO4, also Pin 7 der Leiste. Wer die Position mit der GPIO-Nummer verwechselt, landet bei 3,3 V – dann bleibt der Bus leer.
  • Zu viel Wärme von innen: Ein Fühler direkt neben dem Prozessor oder im geschlossenen Gehäuse misst den Pi statt der Umgebung. Zwei Zentimeter Abstand ändern das Ergebnis spürbar.
  • Billige Nachbauten: Im Umlauf sind Klone, die nur mit 12 Bit arbeiten oder eine schlechtere Genauigkeit liefern. Bei größeren Abweichungen zwischen zwei nebeneinander liegenden Sonden lohnt ein Vergleich mit einem geprüften Thermometer.
  • Zu schnelles Abfragen: Jede Anfrage stößt eine neue Wandlung an, die bis zu 750 Millisekunden dauert. Ein Intervall unter einer Sekunde bringt keine neuen Erkenntnisse, sondern nur Last.

Häufige Fragen zum Temperatursensor am Raspberry Pi

Wie viele DS18B20 passen an einen Anschluss?
In der Praxis problemlos zehn und mehr, denn jeder trägt eine eigene Seriennummer. Grenzen setzen eher Leitungslänge und Aufbau als die Zahl der Fühler.

Brauche ich den 4,7-kΩ-Widerstand wirklich?
Ja. Ohne ihn hat die Datenleitung keinen definierten Ruhezustand, und es erscheint kein Sensor im System. Manche fertig konfektionierten Sonden haben ihn bereits eingebaut – dann darf kein zweiter dazu.

Funktioniert das auf dem Raspberry Pi 5 genauso?
Ja. Raspberry Pi OS bringt für den Pi 5 die Overlay-Variante w1-gpio-pi5 mit und wählt sie automatisch aus. An Verkabelung und Auslesen ändert sich nichts.

Kann ich den Sensor an 5 V betreiben?
Der Baustein selbst verträgt 3,0 bis 5,5 V, die GPIO-Eingänge des Pi jedoch nur 3,3 V. Deshalb wird sowohl die Versorgung als auch der Pull-up an 3,3 V gelegt.

Wie genau misst der DS18B20?
Zwischen −10 und +85 °C gibt das Datenblatt ±0,5 °C an, außerhalb dieses Bereichs steigt die Abweichung. Für Haustechnik, Garten und Aquarium ist das mehr als ausreichend.

Kann ich die Messwerte ins Smart Home bringen?
Ja, üblich sind zwei Wege: ein kleines Skript, das die Werte per MQTT verschickt, oder ein Sensor-Setup auf einem ESP32, das sich direkt als Gerät anmeldet.

Was ist besser für Räume – Kabel oder Funk?
Für einzelne Messpunkte in der Nähe des Pi ist Kabel günstiger und zuverlässiger. Sobald mehrere Zimmer erfasst werden sollen, gewinnen batteriebetriebene Funkfühler, weil die Verlegearbeit entfällt.

Fazit

Ein Raspberry Pi Temperatursensor auf Basis des DS18B20 ist das seltene Projekt, bei dem Aufwand und Ergebnis in einem geradezu unfairen Verhältnis stehen: eine halbe Stunde Arbeit, Materialkosten im einstelligen Bereich – und danach steht statt einer Vermutung eine Zahl. Unsere klare Empfehlung: Nimm gleich das Fünferpack wasserdichter Sonden statt eines einzelnen Bauteils. Der zweite Fühler kommt garantiert, und da alle an derselben Leitung hängen, kostet er weder einen weiteren Anschluss noch zusätzlichen Aufwand. Wer von Anfang an mitschreibt, statt nur auf den Momentwert zu schauen, hat nach einer Heizperiode etwas in der Hand, das keine App liefert: den echten Verlauf im eigenen Haus.

* = Affiliate Link (raspi-config.de ist Teilnehmer des Partnerprogramms von Amazon EU, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu Amazon.de Werbekostenerstattung verdient werden kann.)


VORSCHAU


Was Dich im Raspberry Pi Videokurs erwartet.


Play klicken & Video abspielen.

QUIZ


Prüfe Deinen aktuellen Wissensstand.

Raspberry Pi Quiz starten

Bild anklicken & Quiz starten.

NEWS



EMPFEHLUNG



Danke für Deine Weiterempfehlung!

© 2026 raspi-config.de | Datenschutz | Impressum