Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
Überblick
Der Raspberry Pi ist ein kompakter Einplatinencomputer (SBC), der von der Raspberry Pi Foundation in Großbritannien entwickelt wurde. Er führt verschiedene ARM-basierte Linux-Distributionen aus und stellt GPIO-Pins bereit, um eine Vielzahl externer Komponenten wie Sensoren und Aktoren anzuschließen. Da der Pi keinen integrierten Analog-Digital-Wandler (ADC) besitzt, können analoge Temperatursensoren wie der TMP36 nicht direkt verwendet werden. Stattdessen ist ein digitaler Temperatursensor wie der DS18B20 die empfohlene Wahl für präzise, serielle Temperaturmessungen.
Benötigte Komponenten
- Raspberry Pi (jedes aktuelle Modell)
- DS18B20 Digitaler Temperatursensor
- 4,7 kΩ Widerstand (Standardwert)
- Experimentierplatine (Breadboard oder Pi-Cobbler)
- Halbgrößen-Breadboard (optional für erweiterte Verkabelung)
- Jumper-Kabel (Male-to-Male oder Male-to-Female nach Bedarf)
Grundlegendes Design
Hardware-Aufbau
Der Kern des Aufbaus besteht aus dem Raspberry Pi, dem DS18B20, einem 4,7 kΩ Pull-Up-Widerstand, einem Pi-Cobbler (oder direkter Breadboard-Verkabelung) und Jumper-Kabeln. Alle Komponenten werden in das Breadboard gesteckt, um schnelles Prototyping und einfaches Debugging zu ermöglichen.
Verkabelungsdiagramm
Der DS18B20 nutzt eine Single-Wire-Serienschnittstelle, die es ermöglicht, mehrere Sensoren an derselben Datenleitung zu betreiben. Unter Raspberry Pi OS (ehemals Raspbian) und Derivaten erscheint der Sensor als serielles Gerät, sobald die entsprechenden Kernel-Module geladen sind. Der Sensor muss an GPIO-Pin 4 (BCM 4) angeschlossen werden, den einzigen Pin, der das 1-Wire-Protokoll unterstützt. Eine visuelle Referenz finden Sie im Adafruit DS18B20 Setup Guide.
Auswahl des DS18B20
Der DS18B20 ist in drei Varianten erhältlich:
- Standard DIP-Gehäuse (für Prototyping)
- Wasserdicht mit angeschlossenem Kabel (geeignet für Umgebungsüberwachung)
- Hochtemperatur-Modell (bis 125 °C)
Alle Varianten beinhalten die 1-Wire-Schnittstelle und die Temperaturumwandlungslogik und liefern digitale Messwerte direkt an den Pi. Moderne Raspberry Pi OS Images enthalten die notwendigen Treiber, was einen einfachen Zugriff über das Dateisystem ermöglicht.
Kommandozeilen-Verifikation
Nach der Verkabelung kann der Sensor im Terminal verifiziert werden:
sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices
ls
cd 28-xxxxxxxxxxxx # Ersetzen Sie dies durch die Seriennummer Ihres Sensors
cat w1_slave
Die Ausgabe enthält eine mit YES endende Zeile, gefolgt von einem Temperaturwert in Tausendstel Grad Celsius in der nächsten Zeile.
Software – Basis-Logger
Das folgende Python-Skript liest die Temperatur jede Sekunde und gibt die Werte auf der Standardausgabe aus. Speichern Sie es als temp_logger_basic.py und führen Sie es mit Root-Rechten aus.
#!/usr/bin/env python3
import os
import glob
import time
# Sicherstellen, dass die 1-Wire-Module geladen sind
os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')
BASE_DIR = '/sys/bus/w1/devices/'
DEVICE_FOLDER = glob.glob(BASE_DIR + '28*')[0]
DEVICE_FILE = f'{DEVICE_FOLDER}/w1_slave'
def read_temp_raw():
with open(DEVICE_FILE, 'r') as f:
return f.readlines()
def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
temp_f = temp_c * 9.0 / 5.0 + 32.0
return temp_c, temp_f
while True:
print(read_temp())
time.sleep(1)
Die Ausführung des Skripts erzeugt eine Ausgabe ähnlich wie:
(18.875, 65.975)
(18.875, 65.975)
(18.875, 65.975) …
Stellen Sie sicher, dass das Skript mit sudo python3 temp_logger_basic.py ausgeführt wird, da die Sensordateien in einem geschützten Systemverzeichnis liegen.
Erweitertes Design
Für den produktiven Einsatz kann eine gelötete PCB-Shield-Platine das Breadboard ersetzen und eine robustere, tragbarere Lösung bieten. Ich habe ein benutzerdefiniertes Shield gefertigt, das direkt in den Pi gesteckt wird und in einem kompakten schwarzen Gehäuse untergebracht ist. Die Software protokolliert die Messwerte stündlich und speichert sie in einer MySQL-Datenbank. Die Daten werden anschließend mit Google Charts visualisiert und bieten eine klare Trendanalyse.
Erweiterte Hardware
Zusätzlich zu allen Komponenten des Basis-Setups werden benötigt:
- Adafruit Raspberry Pi Prototyping Shield (oder equivalentes Custom PCB)
- Optionale Gehäuse und Montagematerial
Für eine detaillierte Anleitung verweisen wir auf den DS18B20 Temperatursensor Guide und die Raspberry Pi Dokumentation zur 1-Wire-Unterstützung.
Herstellungsprozess
- Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
- Präzises Raspberry Pi Temperaturprofiling mit Python, SQLite und LabVIEW
- Raspberry Pi Temperatur- & Feuchtigkeits-Netzwerkmonitor – DIY Setup Guide
- Temperatur mit DS18B20 am Raspberry Pi 2 auslesen
- Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Nahtlose Temperatur- & Feuchtigkeitsüberwachung am Raspberry Pi mit EzTemp
- Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
- DIY Heimbrau-Temperaturregelung: Überwachen & Steuern mit Arduino
- Raspberry Pi BMP085: Präzise Temperatur- & Druckmessung via I2C