In diesem Beitrag und dem dazugehörigen Video zeige ich dir neben dem Anschluss und der Installation, wie du einen Temperatur-Sensor DS1820 am Raspberry Pi mit Python auslesen kannst.
Projekt Demonstration
Hardware
Für die Temperaturmessung kannst du alle vorhandenen Modelle des Raspberry Pi verwenden. Solltest du noch keinen besitzen, würde ich an deiner Stelle gleich den Raspberry PI 2 Model B Raspberry Pi 3 kaufen.
In diesem Video verwende ich den DS18B20 IC digital Temperatursensor inklusive 1m Kabel in der wasserdichten Ausführung.
Der Anschluss an den Raspberry Pi erfolgt über den Pin 1 (3,3 Volt Spannung), Pin 6 (GND) und Pin7 (Datenleitung). Zwischen die 3,3Volt-Leitung und die Datenleitung wird ein 4,7 K-Ohm Widerstand geschaltet.
Die fritzing Projektdatei habe ich für dich zum Download bereitgestellt.
Installation des DS18B20
Folgende Befehle werden über das Terminal eingegeben. Zuerst lasse ich mir die vom System geladenen Module anzeigen.
1 |
sudo lsmod |
Danach kommt die Aktivierung des 1-Wire Buses mit folgenden Befehlen.
1 2 3 |
sudo modprobe wire sudo modprobe w1-gpio sudo modprobe w1-therm |
Damit man sieht, ob die Aktivierung des Moduls geklappt hat, wiederholt man den lsmod Befehl.
Als nächstes erweitern wir die notwendigen Dateien für die automatische Aktivierung des Buses und des Sensors nach einem Neustart. Ab der Kernel Version 3.8 ist die Ergänzung der Datei /etc/modules nicht mehr notwendig, in dem Video habe ich es trotzdem gemacht. Hierzu öffnest du die Datei in deinem Texteditor mit dem Befehl
1 |
sudo nano /etc/modules |
und fügst folgende drei Zeilen ein.
1 2 3 |
wire w1-gpio w1-therm |
Ab Kernel 3.8 ist die Datei config.txt für das Laden der Module zuständig. Diese rufst du mit dem Befehl
1 |
sudo nano /boot/config.txt |
auf und hängst folgende zwei Zeilen an, der Kommentar ist optional.
1 2 3 |
# Temperatursensor an 1-Wire dtoverlay=w1-gpio gpiopin=4 |
Danach führst du einen Neustart des Raspberry Pi aus.
1 |
sudo reboot |
Nach dem Neustart kannst du mit dem Befehl
1 |
sudo lsmod |
die korrekte Aktivierung des 1-Wire Bus überprüfen.
Das System schreibt immer den aktuellen Wert des Sensors in eine Datei. Diese befindet sich in einem durch die Sensor-Kennung bestimmten Verzeichnis. Dieses findest du, indem du mit
1 |
cd /sys/bus/w1/devices |
in das Busverzeichnis wechselst und den Befehl zur Anzeigen des Inhaltsverzeichnisses ausführst.
1 |
ls |
Bei einem Sensor werden dir nun zwei Verzeichnisse angezeigt. Ein Verzeichnis ist “w1_bus_master1”, das für uns wichtige Verzeichnis ist das mit einer Code-Bezeichnung, in meinem Fall “28-000005d2e508”.
Mit dem folgenden Befehl kannst du dir nun den Inhalt der Datei “w1_slave” mit dem Sensor-Wert bzw. der Temperatur anzeigen lassen.
1 |
cat /sys/bus/w1/devices/28-000005d2e508/w1_slave |
das Python-Programm
Als Erweiterung zu dem folgenden Programm-Code stelle ich in meinem Beitrag “Mehrere DS1820 Sensoren am Raspberry Pi mit Python einlesen” ein Programm mit Funktionen zur automatischen Einbindung der DS1820 Sensoren zur Verfügung.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#!/usr/bin/python # coding=utf-8 # messprogramm.py #---------------- import os, sys, time def aktuelleTemperatur(): # 1-wire Slave Datei lesen file = open('/sys/bus/w1/devices/28-000005d2e508/w1_slave') filecontent = file.read() file.close() # Temperaturwerte auslesen und konvertieren stringvalue = filecontent.split("\n")[1].split(" ")[9] temperature = float(stringvalue[2:]) / 1000 # Temperatur ausgeben rueckgabewert = '%6.2f' % temperature return(rueckgabewert) schleifenZaehler = 0 schleifenAnzahl = 20 schleifenPause = 1 print "Temperaturabfrage für ", schleifenAnzahl, " Messungen alle ", schleifenPause ," Sekunden gestartet" while schleifenZaehler <= schleifenAnzahl: messdaten = aktuelleTemperatur() print "Aktuelle Temperatur : ", messdaten, "°C", "in der ", schleifenZaehler, ". Messabfrage" time.sleep(schleifenPause) schleifenZaehler = schleifenZaehler + 1 print "Temperaturabfrage beendet" |
Grundlage für meinen Beitrag bzw. die Umsetzung des Einsatzes des Temperatursensor an meinem Raspberry Pi ist der Beitrag “Raspberry Pi – Temperaturmessung mit DS18B20 1-Wire Sensor” von Marcus Hottenrott und der Beitrag “Raspberry Pi: 1-Wire Temperatursensor DS1820” von Prof. Jürgen Plate.
In diesem Beitrag verwende ich Affiliate Links zum Amazon Partnerprogramm. Für dich entstehen dadurch keine Mehrkosten.
Hallo Wolfgang, ich habe Dein Beispiel in ein Programm übernommen und wollte damit eine Zweipunktregelung zum Beheitzen eines Whirl-Pools realisieren.
Leider “hängt” sich der gemessene Temperaturwert des DS18B20 nach Erreichen des oberen Grenzwertes auf und wird im anschließend kälter werdenden Wasser leider nicht mehr aktuallisiert.
Hast Du eine Ahnung, an was das liegen könnte?
Vielen Dank für Deine Hilfe
Wolfgang
Hallo Wolfgang,
das hört sich nach einem schönen Projekt an.
Leider kann ich dir hierzu nichts sagen. Erstmal wäre zum Klären, ob der Fehler im Programmcode oder im System liegt. Wenn der Wert sich auch im Busverzeichnis nicht ändert, würde ich einmal einen anderen Sensor ausprobieren. Ändert sich dieser Wert allerdings, scheint es an einem Fehler im Programmcode sein. Um hier eine Hilfestellung geben zu können, müsste ich diesen einsehen. Hierzu kannst du in mir gerne mal per E-Mail zusenden.
Viele Grüße
Wolfgang
Hallo Wolfgang,
ich bin recht neu auf dem gebiert aber bin guter dinge das ganze mit deiner Anleitung umsetzen zu können.
Ich habe hier nur 5,1kOhm Wiederstände zur Hand.
wie würden sich die 400 Ohm mehr auswirken?
kann ich bedenkenlos 5,1kOhm verwenden?
vielen dank
Carmelo
Hallo Carmelo,
herzlich Willkommen unter den Makern 🙂
Da es auch ein wenig auf die Länge und Art der Datenleitung ankommt, würde ich sagen, probiere es einfach mal aus. Im schlimmsten Fall liefert der Sensor keinen Wert.
Liebe Grüße
Wolfgang
Hallo Wolfgang, vielen Dank für diesen tollen Beitrag, den ich bei der Suche nach meinem ersten Pi + GPIO Projekt gefunden habe.
Eine Frage: laut Datenblatt benötigt der Sensor zwischen 1 – 1,5 mA
Web ich allerdings die Stromstärke bei 3,3 V und 4,7 kOhm ausrechne, komme ich auf etwa 0,7 mA für die Datenleitung. Kann es da nicht zu Problemen wegen der zu geringen Stromstärke kommen?
Wenn ich den 5 V Pin verwende, komme ich bei den gleichen Widerstand auf die richtige Stromstärke. Sollte ich dann nicht lieber diese verwenden?
Danke und Gruß,
Dominik
Hallo Dominik,
vielen Dank für Dein Lob.
Zu Problemen mit der geringen Stromstärke kommt es meiner Erfahrung nicht. Die Energieversorgung per 5 Volt ist möglich, allerdings musst du beachten, die GPIO-Ports vertragen nur 3,3 Volt. Eine gute Erklärung findest du auf folgende Seite: http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-Onewire/index.html
Viele Grüße
Wolfgang
Hallo Wolfgang,
habe dein Projekt jetzt auch zum laufen gebracht:-)
Kurze Frage:
wie aknn ich jetzt die Messungen über 24 Stunden aufzeichen lassen bzw abspeichern?
Hallo Markus,
herzlichen Glückwunsch zur Umsetzung und vielen Dank für Deinen Kommentar.
In meiner Betragskategorie “Temperatur WebApp” findest Du entsprechende Anregungen zu Deiner Frage.
Viele Grüße
Wolfgang
Hallo Wolfgang
Besteht auch die Möglichkeit an ein gpio Pin ein Windmesser wie den technoline TX 23 anzuschließen und damit Wind Messung zu machen ? Gruß Michael
Hallo Michael,
selbst kenne ich den TX 23 nicht. Eine kurze Google-Recherche hat mir aber verschiedene Ergebnisse gebracht. Anscheinend gibt es verschiedene Versionen, die eine bietet eine UART Schnittstelle, die andere eine 1-Wire Version. Beide könntest du am Raspberry an den entsprechenden Schnittstellen anschließen und auslesen. Zum Auslesen musst du evtl. das richtige Protokoll kennen, aber hierfür liefert Google mehrere Ansätze.
Viele Grüße
Wolfgang
Hallo!
Erstmals danke für dieses tolle Einführung, wenn ich es für meinen Zweck hier adaptiert habe dann werde ich Sie gerne über den Donation Button Unterstützen, denn solche Beiträge sind für Anfänger auserordentlich wichtig!
ich würde gerne die Programmwerte in einem File speichern und wenn der Wert einen bestimmten Wert unterschritten hat soll ein Email (mit Phyton Script? versendet werden.
Den Schleifentimer habe ich erhöht damit nur alle 30 min die Temperatur gemessen wird, dafür würde ich gerne das das Programm endlos läuft. (Schleifenanzahl = 1.000.000.000)
“nice to have” und vermutlich sehr aufwändig:
Es wäre cool wenn man den aktuellen Wert in einem Extra Fenster ganz groß darstellen lässt, z.b grüne Werte für OK und rote Werte für einen Wert unter z.b Nullgrad.
lg aus Österreich
Hallo Jürgen,
vielen Dank für Deine Nachricht.
Damit dein Skript in einer Endlos-Schleife abläuft, würde ich es über eine Statusabfrage statt der von dir erwähnten Zählermethode realisieren. Umgesetzt habe ich dies u.a. in meinem Beitrag “Mehrere DS1820 Sensoren am…”. Bei der Speicherung der Temperaturwerte empfiehlt sich die Speicherung im SQLite3 Format, hierzu empfehle ich dir meinen Beitrag “SQLite 3 Datenbank mit Python erstellen und auslesen”. Zum Thema E-Mail Versand würde ich dir den Beitrag “E-Mails versenden mit Python” auf Coding World empfehlen.
Wenn du den Raspberry Pi mit Monitor verwendest, solltest du dich mit dem Thema grafische Oberfläche beschäftigen. Siehe hierzu den Beitrag “9. Graphische Benutzeroberfläche” auf der Seite pythonbuch.com.
Wenn dir zwei oder drei LED’s ausreichen, empfehle ich dir meinen Beitrag “Ansteuerung von 3 LEDs…“. Weitere Beiträge zu diesem Thema habe ich unter der Kategorie “Temperatur WebApp” zusammengefasst.
Viele Grüße
Wolfgang
Hallo Wolfgang
Dein Video hat mir Sehr geffalen.
Köntest du villeicht noch ein video wie dieses zum AM 2302 (DHT22) machen.
Mit dem DHT22 bzw.AM2302 kann man ja Feuchtigkeit und Temperatur messen.
Da muss aber dann auch ein Script geschrieben werden mitten s python.
Gruß Michael
Hallo Michael,
vielen Dank für Deinen Kommentar und Anregung. Wenn Du Dir das Skript meines Beitrages “OLED Display mit SSD1306 Controller am RaspberryPi und Python verwenden” ansiehst, findest Du die Ansteuerung und Auslesung des DHT Sensors in Python. Den Anschluss des Sensors kannst Du ebennfalls dem Beitrag, oder der entsprechenden Frizing-Projektdatei entnehmen. Die Einbindung der notwendigen Python Bibliothek erfolgt über die Befehle:
git clone https://github.com/adafruit/Adafruit_Python_DHT.git && cd Adafruit_Python_DHT
sudo python setup.py install
Viele Grüße
Wolfgang
Danke für die schnelle Rückantwort auf meine Frage
Das Problem St glaube ich das wenn das messprogramm 7 Tage Woche läuft die Daten Bank sprengen könnte. Was ich gerne noch umsetzen würde wäre Datum NDR Uhrzeit zur messspalte hinzu zufügen Gruß Michael. Das nächste ist das Projekt von dir mit der Web App und der Auswertung der messdatemessadapter. Gruß Michael
Hallo Michael,
gerne doch. Die Datenbankgröße ist natürlich von der Anzahl der Einträge abhängig, allerdings sind die Einträge doch sehr platzsparrend, sodass du dir am Anfang deines Projektes bei einer entsprechend großen SD-Karte keine Gedanken machen musst. Vielleicht verlegst du die Daten ja auch auf ein externes Datenmedium (NAS, Netzlaufwerk, USB-Medium usw.)
Viele Grüße
Wolfgang
Wie kann ich endlos Messwerte erfassen im bereich des Temperatursensor s?
Wie heißt dieser Befehl ?
Gruß Michael
Ich würde mir gerne daraus eine Wetterstation bauen
Ihre Videos sind sehr gut erklärt und machen es einem Anfänger wie mir recht einfach dies nachzuvollziehen
Hallo Michael,
einen direkten Befehl für die ununterbrochene Messwerterfassung gibt es nicht. Aber du kannst die in diesem Beispiel vorhandene while-Schleife abändern bzw. auf unendlich, setzten indem du den Zähler löschst bzw. auskommentierst.
Auskommentierte Zeile 37: #schleifenZaehler = schleifenZaehler + 1
Viele Grüße
Wolfgang
Sehr tolles Portal die Erklärung der Programmierung von Python und auch das konfigurieren des wir eine sensor s an einem Py ist echt super verständlich erklärt worden . Bin auf das nächste Toturial das aufzeichnen und anzeigen von Messwerten des One wirke Sensors gespannt . Großes Lob an den Autor.
Vielen Dank für die positive Rückmeldung. 🙂
Viele Grüße
Wolfgang
Hallo, ich bin anfänger mit dem Pi finde deine seiten prima aber habe eine Frage zur GPIO Bezeichnung.
Ich habe gelesen das die Bezeichnungen sehr unterschiedlich gehändelt werden und um Missverständnisse zu vermeiden es sinnvoll ist die GPIO bzw BCM bezeichnungen zu nutzen.z.B.
GPIO.setmode(GPIO.BCM)
Nun finde ich in deinem Programm aber nicht die zuweisung auf diese Kennzeichnung oder habe ich etwas übersehen?
Lese ich den P-Code richtig das ein vorgesetztes # ein Kommentar ist ?
Ich möchte mit zwei sensoren die Vor und Rücklauf Temperatur der Heizun an den Rohrleitungen bestimmen und dann in einer Datei ( stick ) speichern um diese als Grafik später auf dem Rechner z.B. über excel auzuwerten
Hallo Dieter,
deine Anmerkung zur GPIO Bezeichnung ist durchaus richtig. Ich selbst verwende diese Schreibweise auch, siehe hierzu zum Beispiel meinen Beitrag Ansteuerung von 3 LEDs am Raspberry Pi mit Python.
Zur Auslesung der Temperatur-Sensoren benötigst du allerdings die 1-Wire Schnittstelle, welche nicht über die GPIO’s ausgelesen wird. Auch wenn sich diese Schnittstelle auf einem GPIO-Pin befindet. Daher findest du auch diese Kennzeichnung nicht in diesem Programm.
Das vorgesetzte # liest du richtig, es handelt sich um einen Kommentar.
Um die beiden Sensoren auszulesen, kannst du dir ja mal meinen Beitrag “Mehrere DS1820 Sensoren am Raspberry Pi mit Python einlesen” ansehen. Die von dir ausgelesenen Dateien kannst du in einer entsprechend formatierten Textdatei auf deinem Stick abspeichern und mit Excel zur Auswertung aufrufen.
Viele Grüße
Wolfgang
Hallo Vincent,
das Programm gibt es nicht als Datei. Du musst dir die Datei selbst anlegen und den angebotenen Quellcode kopieren.
Wie du die Datei anlegst kommt darauf an, wie du mit dem Raspberry Pi arbeitest. Zum Beispiel kannst Du über das Terminal und den Befehl “sudo idle” die Python-Oberfläche öffnen. Dann legst du eine neue Datei an und kopierts den Quellcode hinein. Danach speicherst du die Datei und führst sie aus.
Viele Grüße
Wolfgang
Hallo,
ich bin ein absoluter Python-Anfänger, dadurch war ich echt glücklich das deine Anleitung so detailliert ist.
Die Installation und das Abschreiben vom Pythonprogramm ging auch gut. Wenn ich jetzt allerdings versuche das Programm zu starten,
soll man es ja erst speichern und dann kommt folgende Meldung:
I/O Warning
Non-ASCII found, yet no encoding declared. Add in a line like “# -*- coding: utf-8 -*.” to your file
Choose OK to save this file as utf-8
Edit your generall options to silence this warning
Wenn ich dann Ok drücke kommt:
I/O Error
[Errno 2] No such file or directory:
‘/var/www/messprogramm.py’
Kann mir vielleicht jemand helfen?
Danke im vorraus
Hallo Lea,
das Programm kannst du in jedem Verzeichnis abspeichern. Die Fehlermeldung bedeutet nur, der gewählte Pfad /var/www/ ist nicht vorhanden. Daher öffne deinen Editor nicht mit /var/www/messprogramm.py sondern nur mit z.B. messprogramm.py. Im Normalfall befindet sich die Datei dann im Verzeichnis /home/pi/.
Viele Grüße
Wolfgang
Servus Wolfgang!
Ich habe folgendes Problem, und zwar wenn ich cat /sys/bus/w1/devices/ meine Bezeichnung /w1_slave eingebe kommt folgende Meldung:
cat: meine Bezeichnung: Datei oder Verzeichnis nicht gefunden.
Mir ist allerdings auch aufgefallen, dass ich eine sehr komische Bezeichnung für meinen Sensor habe: 00-400000000000 00-800000000000 00-c00000000000
Ich hoffe du kannst mir weiterhelfen 🙂
Liebe Grüße
Felix
Hallo Felix,
die Sensoren müssen beim Booten des Systems angeschlossen sein. Die angegebenen Bezeichnungen lassen darauf schließen, dass dein Sensor nicht im System eingebunden wurde. Ein Neustart dürfte in solchen Fällen helfen.
Viele Grüße
Wolfgang
Servus Wolfgang,
bei der Suche nach einer Lösung um die Vor- und Rücklauftemperaturen unserer Heizung auszulesen, bin ich über Deine Seite “gestolpert” 🙂
Vielleicht kannst Du mir einen Tipp geben.
Das Script läuft soweit ohne Fehler durch – nachdem ich die Sensor-ID ersetzt und die Hinweis von Matthias mit den Prix befehlen in Klammern gesetzt habe. Allerdings bekomme ich keine Werte ausgegeben. Hast Du eine Idee, woran es liegen kann?
Gruß
Jörn
Hallo Jörn,
hast Du Dir zum Test den Messwert vor dem return am Ende der Funktion aktuelleTemperatur() mit einem print ausgeben lassen? Dies wäre mein erster Schritt um der Sache etwas näher zu kommen, wenn auch hier kein Wert ausgegeben wird, über das Terminal mal mit “cat /sys/bus/w1/devices/DEINE SENOSORBEZEICHUNG/w1_slave” den Wert auslesen, vielleicht liegt ja dort das Problem.
Viele Grüße
Wolfgang
Moin Wolfgang,
vielen Dank fuer Deine schnelle Antwort!
Ich weiss nicht, ob ich hier den ganzen Code posten kann. Ich hab nun zwischen der Zeile rueckgabewert = ‘%6.2f’ % temperature und return(rueckgabewert) ein print (aktuelleTemperatur) eingebaut.
Als Ergebnis bekomme ich nun ausgegeben!?
Frage ich den Sensor mit cat /sys/bus/w1/devices/28-0316556d5fff/w1_slave ab, erhalte ich die Temperatur.
Hallo Jörn,
das print soll den Wert von “rueckgabewert” ausgeben, daher musst Du den Befehl entsprechend angeben, also print rueckgabewert bzw. print (rueckgabewert).
Kaum macht man es richtig 😉
Die Temperatur wird nun ausgegeben.
Aktuelle Temperatur :
17.94
Also liegt das Problem wohl im unteren Teil des Codes.
Sehr schön 😉
Wie lautet den Dein print Befehl im unteren Bereich?
print “Aktuelle Temperatur : “, messdaten, “°C”, “in der “, schleifenZaehler, “. Messabfrage”
bzw.
print (“Aktuelle Temperatur : “), messdaten, (“°C”), (“in der “), schleifenZaehler, (“. Messabfrage”)
Hallo, ich bin Anfänger was Sachen Programmierung angeht. Der Temp Sensor ist angeschlossen und es geht auch soweit das ich ihn mir anzeigen lassen kann beim Befehl
cat /sys/bus/w1/devices/ meine id eingetragen /w1_slave
Wo es bei mir aufhört ist bei dem Pyton Programm . Habe mit sudo nano test.py aufgerufen und das Programm dort reinkopiert. Die Temp id natürlich abgeändert. und gespeichert. aber egal was ich versuche ich bekomms nicht zum laufen.
Wer könnte mir da helfen?
Vielen lieben dank schon mal im vorraus
Gruß Matthias
Hallo Matthias,
da es sich um ein Python-Programm handelt, kannst du das Programm direkt mit der IDLE schreiben und ausführen. Rufe hierzu dein Programm mit sudo idle test.py aus dem Terminal auf und führe es über den Menüpunkt “Run” oder mit der Funktionstaste F5 aus.
Viele Grüße
Wolfgang
Vielen lieben dank für die schnelle Antwort. Finde ich echt Klasse.
Leider kommt diese Fehlermeldung dabei raus:
Traceback (most recent call last):
File “/usr/bin/idle”, line 5, in
main()
File “/usr/lib/python2.7/idlelib/PyShell.py”, line 1545, in main
root = Tk(className=”Idle”)
File “/usr/lib/python2.7/lib-tk/Tkinter.py”, line 1813, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, want objects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
Bor , keine Ahnung was der von mir will, Grübel.
Herzlichen Dank nochmal für deine Hilfe , hoffe du kannst mir hier auch weiterhelfen ?
Gruß Matthias
Gerne doch…
Wenn ich die Meldung richtig deute, verwendest du den Raspberry Pi nicht im Desktop-Modus. Die IDLE benötigt meines Wissens allerdings diese. Solltest Du ohne Desktop arbeiten wollen/müssen, dann musst du dich in dieser Richtung beschäftigen oder Python zum Beispiel über den Webserver aufrufen.
Viele Grüße
Wolfgang
Wie heißt es so schön, viele Wege führen zum Ziel … 😉
Auf alle Fälle freut es mich, dass du es zum Laufen gebracht hast. 🙂
Viele Grüße und viel Spaß mit deinem RasPi
Wolfgang
So nach langer suche Problem gelöst. Als 1. Aufruf mit Python 2.7.9 dann die print Befehle in Klammern setzten.
print(“Temperaturabfrage für “), schleifenAnzahl,
print(” Messungen alle “), schleifenPause ,(” Sekunden gestartet”)
Jetzt gehts.
Danke für die Hilfe 🙂
So jetzt bin ich meinem Prob doch schon viel näher gekommen , dank dir 🙂
Hast recht muss den Befehl über Desktop aufrufen ABER dann kam trotzdem eine Fehlermeldung und das Programm läuft jetzt erst wo ich die Zeile:
print “Temperaturabfrage für “, schleifenAnzahl,
” Messungen alle “, schleifenPause ,” Sekunden gestartet”
rausgelöscht habe.
Jetzt bringt er mir alle sec die Aktuelle Temp in Schleife. Komisch oder ?
Hallo,
Ich verwende genau das Python Script was auf der Seite angegeben ist,
aber leider führt der Raspi das Script nicht vollständig aus, und gibt die Meldung aus :
Das die Zeile 33 nicht definiert ist .
woran könnte das liegen ?
Gruß Stephan
Hallo Stephan,
in der Zeile 33 mit “messdaten = aktuelleTemperatur()” wird der Rückgabewert der aufgerufenen Funktion aktuelleTemperatur() bestimmt. Stimmt den der Funktionsaufruf und in der Funktion der Name der Datei?
Viele Grüße
Wolfgang
Is there a way to wire the thermometer to a USB and then connect to the Pi via USB (instead of going through the board and pins)?
Hello Nick,
a 1 wire to USB possibility is not known to me. Perhaps such a solution would be realized via an Arduino or similar.
Best wishes
Wolfgang
Leider klappt es bei mir nicht, wenn ich den Code so übernehme. Ich bekomme folgenden Fehler:
file = open(“/sys/bus/w1/devices/28-000005d2e508/w1_slave”)
IOError: [Errno 2] No such file or directory: ‘/sys/bus/w1/devices/28-000005d2e508/w1_slave’
Ich arbeite über Eclipse und einer SSH Verbindung zum Pi. Könnte es daran liegen? Hast Du vielleicht einen Lösungsansatz für mich?
Vielen Dank!
Hallo Tom,
an Eclipse liegt es nicht. Du musst das verwendeten Verzeichnis “28-000005d2e508” mit dem Sensor-Kennung bestimmten Verzeichnis auf Deinem Raspberry Pi ersetzen. Das Verzeichnis findest Du über die Terminaleingabe: cd /sys/bus/w1/devices
Viele Grüße
Hat alles geklappt.
Schön wäre eine detailiertere Aufschlüsselung der einzelnen Anweisungen. z.B. die Definition der split-Anweisung.
Aber dafür gibt es sicher was zum Nachlesen…
Klasse Arbeit. Danke!
Hallo Viktor,
vielen Dank für Deinen Kommentar.
Viele Grüße
Wolfgang
Zuletzt aktualisierte Beiträge
Kategorien
KATEGORIEN
Neuste Beiträge
Neuste Reaktionen