Temperatursensor DS18B20 an einen Raspberry Pi anschließen

Es gibt viele Arten den Raspberry Pi zu nutzen. Neben dem Einsatz als klassischen Desktop-PC, oder aber zum Aufmotzen des Flatscreens mit einem Multimedia-PC kann der Raspberry auch beliebig für Basteleien genutzt werden. Ich habe vor einiger Zeit mal einen kleinen Aufbau gemacht, mit dem die aktuelle Temperatur über einen Sensor eingelesen werden kann. Für den Aufbau benötigt ihr ein 4,7k Ohm Widerstand und einen Temperatursensor. Im Folgenden habe ich dafür den Dallas DS18B20 Sensor verwendet. Optimal für den Aufbau wäre zudem ein Steckbrett, Breakout Cobbler, Flachbandkabel und ein paar Jumperleitungen. Alles zusammen gibt es für kleines Geld in einem Bundle bei Ebay oder Amazon.

Betrachtet man das Datenblatt vom Dallas DS18B20 Temperatursensor, so muss man einen 4,7k Ohm Widerstand parallel schalten. Das ganze schließt ihr nun folgendermaßen auf dem Steckbrett zusammen:
TempSensor_Steckplatine

Ihr schließt also die äußeren Beinchen an die Spannungsversorgung 3,3V und GND an. Betrachtet bitte wie in dem Schaltschema die Polarität. Wenn ihr merkt, dass das Bauteil recht warm wird, habt ihr es verpolt 🙂
Den Widerstand schaltet ihr zwischen 3,3V und Signaleingang GPIO 7.

Sofern ihr nun alles korrekt angeschlossen habt, geht es un weiter mit der softwareseitigen Einstellungen. Der Kernel bietet von Haus aus das Einlesen von Temperaturdaten. Es müssen lediglich einige Befehle in die Kommandozeile eingefügt werden.

sudo modprobe w1-gpio pullup=1
sudo modprobe w1-therm

Damit haben wir auf jedenfall schon mal die nötigen Kernelmodule geladen. Nun müssen wir die ID des Temperatursensors auslesen.

cd /sys/bus/w1/devices/

Nun schauen wir welche Inhalte bereits erkannt wurden. Mit folgenden Befehl können wir den Ordnerinhalt anzeigen lassen:

ls

Nun sehen wir einen Ordner mit kryptischen Namen (gelb markiert).
krypto

Dies stellt die Seriennummer des Bauteils dar. Wir wechseln in diesen Ordner mit:

cd BAUTEILSERIENNUMMER
nano w1_slave

Das ganze Prozedere habe ich hier mal als Screenshot beigefügt. Mit dem letzten Befehl haben wir die Sensordaten eingelesen.

Wie im folgenden Screenshot können wir sogar schon die Temperatur einsehen (gelb markiert)
temp

Kopiert bitte die Seriennummer des Sensors.
Nun wechseln wir wieder ins Homeverzeichnis:

cd /home/pi
sudo nano temperatur.py

Nun fügen wir folgenden Code in den Editor und ersetzen die Stelle ### mit der kopierten Seriennummer.

# Open the file that we viewed earlier so that python can see what is in it. Replace the serial number as before. 
tfile = open("/sys/bus/w1/devices/###/w1_slave")
# Read all of the text in the file. 
text = tfile.read() 
# Close the file now that the text has been read. 
tfile.close() 
# Split the text with new lines (\n) and select the second line. 
secondline = text.split("\n")[1] 
# Split the line into words, referring to the spaces, and select the 10th word (counting from 0). 
temperaturedata = secondline.split(" ")[9] 
# The first two characters are "t=", so get rid of those and convert the temperature from a string to a number. 
temperature = float(temperaturedata[2:]) 
# Put the decimal point in the right place and display it. 
temperature = temperature / 1000 
print temperature

Nun fügen wir das Skript mit folgendem Code aus:

python temperatur.py

Und so sollte das ganze nun aussehen:

temperatur2

Nun viel Spaß beim Rumprobieren. Sofern ihr noch Probleme beim Ausführen habt, dann schreibt einfach ins Kommentarfeld 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.