In diesem Tutorial soll gezeigt werden, wie man mit einem Raspberry Pi Temperatursensor die Temperatur der Umgebung auslesen kann. In einem weiteren Tutorial werden wir mittels Sensor und Lüfter für das RaspberryPi Gehäuse eine Kühlung bauen.
Vorweg sei gesagt, dass der in diesem Tutorial verwendete Raspberry Pi Temperatursensor keine Luftfeuchtigkeit oder Luftdruck messen kann. Dies ist jedoch auch ohne weiteres am Pi möglich. Wie das funktioniert, habe ich in einem anderem Tutorial erklärt.
Zubehör
- Breadboard
- Temperatursensor
- Jumper Kabel
- Widerstand (4.7k Ω)
Den Temperatursensor DS18B20 gibt es auch als wasserfeste Variante.
Beschreibung des 1-Wire Raspberry Pi Temperatursensor
Der Temperatursensor gibt einen 9 bis 12bit langen Wert zurück, welcher ausgelesen und umgewandelt werden kann. Das ist allerdings (bisher) nur an GPIO Pin 4 (Pin 7) möglich. Dafür kann man allerdings auch mehrere Sensoren in Reihe schalten (da es auf dem 1-Wire Protokoll basiert).
Aufbau
Dargestellt ist ein Aufbau mit einem Temperatursensor, als Widerstand habe ich einen 4,7k Ω genommen.
Wenn alles entsprechend verkabelt ist, können wir das 1-Wire Protokoll damit aktivieren:
sudo modprobe w1-gpio
sudo modprobe w1-therm
Und wir fügen noch eine Zeile hinzu:
sudo nano /boot/config.txt
Dies wird ans Ende gepackt:
dtoverlay=w1-gpio,gpiopin=4,pullup=on
Speichere mit STRG+O und schließe mit STRG+X.
Ob es geklappt hat, können wir herausfinden, indem wir folgendes eingeben:
lsmod
Die Module und müssten nun aufgelistet sein, falls nicht wird ein anderer GPIO Pin als 4 benutzt oder es trat ein Fehler beim aktivieren auf.
Damit nicht bei jedem Start die Module geladen werden, tragen wir sie in die Datei /etc/modules ein:
sudo nano /etc/modules
und fügen als letztes die folgenden zwei Zeilen ein:
w1_gpio w1_therm
Für den nächsten Schritt benötigen wir als erstes die ID des Sensors. Falls du vorhast mehrere in Reihe anzuschließen, teste am besten jeden einzeln und notiere dir die ID, damit du sie später nicht verwechselst.
Wir wechseln das Verzeichnis und geben uns die Dateien aus
cd /sys/bus/w1/devices/ ls
Eine der Dateien heißt 10-000802b4ba0e (bei dir anders) und ist die ID, mit der wir den Sensor abfragen (bitte ID anpassen):
cat /sys/bus/w1/devices/10-000802b4ba0e/w1_slave
In der Ausgabe sehen wir als letzte Angabe die Temperatur (in „Milligrad“)
31 00 4b 46 ff ff 05 10 1c : crc=1c YES 31 00 4b 46 ff ff 05 10 1c t=24437
Durch 1000 geteilt macht das 24.437°C.
Um die Temperatur einfacher auszulesen, habe ich ein kleines Skript geschrieben. Wer später durch einfache eingabe von temperature die Ausgabe erhalten will, sollte es in /usr/bin/ anlegen:
sudo nano /usr/bin/temperature
Der Inhalt:
1 2 3 4 5 6 7 8 9 |
#! /bin/bash # Temperatur auslesen tempread=`cat /sys/bus/w1/devices/10-000802b4ba0e/w1_slave` #Formatieren temp=`echo "scale=2; "\`echo ${tempread##*=}\`" / 1000" | bc` #Ausgabe echo "Die gemessene Temperatur beträgt" $temp "°C" |
Nun noch entsprechende Rechte geben
sudo chmod +x /usr/bin/temperature
und wenn man nun in die Konsole
temperature
eingibt, so erscheint die aktuell gemessene Temperatur. Falls eine Fehlermeldung kommt, so musst du wohl bc nachinstallieren.
sudo apt-get install bc
Abschließend noch ein kleinner Tipp: Wer mit den Sensor außerhalb (z.B. aus dem Fenster hängend) messen will und durch die Fensterdichtung keine großen Kabel bekommt, dafür eignet sich ein Flachbandkabel (altes IDE oder Diskettenlaufwerkkabel). Gut eingepackt in einen Frischhaltebeutel ist das ganze dann auch wetterfest (Luft rauslassen und gut zukleben, dann beeinflusst es die Messung auch nur minimal).
83 Kommentare
Danke für diesen Informativen Beitrag,
die Formatierung
temp=`echo "scale=2; "`echo ${tempread: -5 }`" / 1000" | bc`
hatt aber einen Fehler:Ist die Temperatur kleiner 10 °C gibt es keine ausgabe mehr!
Lg
Vielen Dank für den Hinweis, du hast natürlich recht. Das lag daran, dass ich immer die letzten 5 Zahlen genommen haben.
Ich habe es nun mal geändert, indem nur noch die Zahlen nach dem letzten Gleichheitszeichen genommen werden. Damit sind auch kleinere Werte möglich.
temp=`echo "scale=2; "`echo ${tempread:##*=}`" / 1000" | bc`
LG Felix
Hallo,
ich komme schon bei „cd /sys/bus/w1/devices/ und ls“ nicht weiter. Der Pfad ist leer, also keine ID vorhanden.
Ich hoffe du kannst mir helfen.
Mfg
Roland
Hallo Roland,
werden dir die Module und w1_gpio aufgelistet (
lsmod
)?habe das gleiche Problem, dass der pfad leer ist. mit lsmod werden die module aufgelistet
Hallo,
habe auch das Problem dass das Verzeichnis /sys/bus/w1/devices/ leer ist. lsmod listet die Module korrekt auf. Gibt es hierfür schon eine Lösung?
Onewire aktivieren.
https://florianmai.de/2016/02/05/raspberry-pi-1-wire-temperatursensor-18b20-auslesen-unter-linux-und-codesys/
Hallo,
erstmal vielen Dank für das tolle Tutorial.
Bei mir klappt es jetzt.
Allerdings musste ich die eine Zeile so schreiben:
temp=`echo "scale=2; "`echo ${tempread##*=}`" / 1000" | bc`
Also ohne den Doppelpunkt in den geschweiften Klammern.
Viele Grüße
Sven
Hallo,
wieso muss eigentlich die Stromversorgung (5.0V) mittels eines 4.7k Widerstand an den Data-Wire des DS18B20 angeschlossen sein. Also erstens wieso die Spannung dahin und wieso die 4.7k Ohm. Ich verstehe, dass der Raspberry am GPIO keine 5V verträgt aber wie lautet die Formel, mit der man errechnet, dass mittels eines 4.7k Widerstand die Spannung von 5.0V auf die des GPIO (3.3V) angepasst wird.
– Bin ein Laie ^^
Der GPIO darf maximal 3.3V bekommen, aber das Problem ist, wenn gar keine Spannung anliegt wird ein zufälliger Wert (High oder Low) ausgegeben. Um das zu verhindern schalten wir über einen sehr großen Widerstand eine Spannung (an VCC oder GND, je nachdem ob Pull-Up/Down), um diesen Effekt zu verhindern.
Hallo zusammen,
ist bei diesem Setup eine Leitungslänge zwischen dem PI und dem Temperatur Sensor von circa 15-20 Meter möglich?
Danke vorab!
Peter
Du müsstest mal schauen wie hoch der Spannungsabfall bei 15-20m ist. Kommt aber auch auf das Trägermaterial (Kupfergehalt etc.) an.
Falls du es testest, würde mich das Ergebnis auch interessieren.
LG Felix
Hallo,
bei mir wird keine Datei angezeigt, wenn ih im Verzeichnis w1/devices bin. Also ich gebe ls ein und nichts passiert.
Bin totaler Anfänger.
LG Björn
Hallo,
habe das gleich Problem wie Felix, Jan und Björn. Die Module sind geladen, auch nach einem Neustart, aber der devices Ordner ist leer.
Jemand eine Idee
Welche Raspbian Version benutzt ihr denn? Die normale oder Lite Version?
Alternativ kann ich den DHT22 empfehlen, der kann auch Luftfeuchtigkeit messen: Raspberry Pi: Luftfeuchtigkeit und Temperatur messen
So geht’s erst mal weiter:
Die /boot/config.txt wie hier im Link beschrieben editieren:
http://www.golem.de/news/mitmachprojekt-temperatur-messen-und-senden-mit-dem-raspberry-pi-1604-120188-3.html
Danke, das war der Hinweis, den auch ich benötigt habe. Bei mir war das Verzeichnis ebenso leer, aber nach dem Anpassen der boot/config.txt und Neustart funktioniert nun alles wunderbar!
Die Lite auf der ersten Revision des B Modells
P.S: Schöne Seite übrigens!
Prima Tutorial, hat auf Anhieb funktioniert, vielen Dank!
Aber Du meinst bestimmt : mehrere Sensoren werden parallel geschaltet, oder?
Wie soll man denn sonst ein 1-Wire-System anschließen?
gibt es eine Möglichkeit die Temperatur irgendwie grafisch darzustellen? Wenn Ja wie? ählich dem RPI-Monitor.
Schau mal hier: Raspberry Pi Sensordaten mit ThingSpeak loggen und auswerten
wie ist das auf den Temperatursensor DS18S20 anzuwenden?
Einfach den Code, der für den DHT11 ist, mit diesem hier ersetzen (ggf etwas anpassen).
Shell Code kann man in Python mit os.system ausführen.
Kannst du mir vielleicht noch ein klein wenig helfen. Ich möchte das so realisieren, das ich eine e mial bekomme wenn ich gewisser wert überschritten wird.
Vielen Dank für diese hilfreiche Seite. Die Sensoren lassen sich problemlos auslesen.
Ich habe folgene Fragen zur Funktion:
1.) Wie häufig aktuallisiert des System die Temperaturwerte?
2.) Es finden ja ständig Schreibzyklen auf dem Flashspeicher statt. Flashspeicher erlauben im allgemeinen nur eine begrenzte Anzahl von Schreibzyklen (zwischen 10.000 und 1.000.000)
Bei angenommen einer Aktuallisierung pro Sekunde sind das 3600 Schreibzyklen pro Stunde. Ist meine Annahme korrekt? Wie sieht das mit der Langzeitstabilität aus?
Vielen Dank für die Bemühungen im Voraus.
Hi Torsten,
das ist eine gute Frage. Ich habe eben mal einen Blick ins Datenblatt geworfen, aber konnte dazu nichts genaueres finden, außer dass beim Initialisieren der Speicher einmal ausgelesen wird. Ich nehme an, dass erst beim Aufruf doe Aktion zum auslesen getriggert wird und somit nicht zwischengespeichert wird.
LG, Felix
Danke erstmal für das Tutorial.
Ich möchte mehrere Temperatur Sensoren an den anschliessen (8 Stück) das geht in 1-Wire kann ich dann jeden einzelnen auslesen es sollen mehrere Temperaturen erfasst werden um dieverse Pumpen und Elektro Ventile zu steuern.
ist die zeichnung korrekt mit der wölbung nach hinten und rechts vcc?
Denn im datenblatt steht es anders herum
Im Datenblatt ist die Sicht von unten gezeigt, hier von oben.
Hallo Felix
ich habe auch das Gefühl, dass in der Grafik was nicht stimmt.
Bisher dachte ich der LM34 ist ein reiner Analog-Temperatur-Fühler der nicht für 1-wire genutzt werden kann oder liege ich hier falsch?
Die Wölbung des LM34 in der Grafik scheint mit zudem verkehrt herum zu sein. Lt. Datenblatt ist beim LM34 wenn man von unten auf Pin schaut (flache Seite nach oben ) folgende Pinfolge: +Vs/Vout/GND.
Stammt die Grafik vielleicht von einem DS18B20? Da würde die Wölbung zu den Anschlüssen passen – beim DS18B20 ist die Pinbelegung (bei gleicher Betrachtungsweise) genau umgekehrt zum LM34: GND/Vout/+Vs.
Kannst du das vielleicht nochmal prüfen? Danke
Ja, das ganze Tutorial ist nur für den DS18B20 bzw. DS18S20, nicht für den LM34.
Hallo Felix..
Super tut – vielleicht solltest Du aber die notwendige Änderung der /boot/config.txt in Dein tut aufnehmen…
Eine Frage hab ich dennoch: wie kann ich es anstellen mehrere Temperatursensoren zyklisch auszulesen und für eine GUI (in python) zur Verfügung zu stellen?
LG Skipper
Hi Skipper,
Ich stehe vor der gleichen Aufgabe und würde mich interessieren ob du mittlerweile eine Lösung gefunden hast, um mehrere Sensoren auszulesen und per GUI anzeigen zu lassen.
Ich möchte mehrere Temperatur- und Luftfeuchtigkeitswerte per Raspy loggen und suche dafür eine passende Lösung / Programm.
Schön wäre eine Anzeige in Tabellenform aber auch in einer GUI Maske und idealerweise mit Kurvendiagramm (mit einstellbarem Zeitfenster per GUI)….
Gruss
Jay
Alsoo…
Das mit den mehreren auslesen ist eigentlich ganz einfach…
Man kann das script ganz einfach mit strg+c ; strg+v (kopieren/einfügen) so umschreiben, dass es mehrere Sensoren nacheinander abfragt…
Man brauch nur immer die richtige ID der Sensoren…
Für eine GUI Programmierung empfehle ich TKinter…
Sehr einfach und es gibt viele Tutorials auf YouTube
Hallo, ich muss gestehen, ich scheitere schon am Schaltbild. Wieso geht der rote Draht rechts zum Pluspol (über die untere Verbindung) und verbindet sich über die selbige mit dem Widerstand zum grünen Draht in der Mitte? Ist das wirklich so? Dacht der mittlere Wäre die Datenverbindung, die zum GPIO geht und nicht an irgendwelchem Pol anliegt.
Das rote Kabel signalisiert den positiven Spannungspol
Hallo Felix
Ich habe alles soweit angeschlossen
Und auch die ID abgeändert die bei mir
Angezeigt wird .Dennoch wenn ich Temperatur eingebe kommt zwar “ Die Temperatur ist“ aber kein Wert. Hast Du eine Idee .
Udo
Der Sensor und die Verkabelung sind in Ordnung? Was kommt denn stattdessen?
hat sich erledigt ,ich habe vergessen die ID in den Editor zu ändern.
Dankeschön für die Promte Antwort .
Und auch von mir noch einmal ,eine sehr schöne HP und Super Tutorials und sehr gut erklärt
Udo
Hallo Felix,
Wie kann man den die Temperatur in ein anderes Programm mit einbinden möchte den Schrittmotor 28BYJ-48 mit ULN2003 Driver Board bei z.b 90° eine volle Umdrehung nach Links machen lassen und bei z.b. 100° eine volle Umdrehung nach Rechts.
MFG Daniel
Wenn du Python nutzt, kannst du die Werte bspw. mit
os.system
auslesen.Hallo Felix ,ich möchte den temperatur wert im programm mit verarbeiten,
Wie muss ich das machen ,hast du eine Idee .
Udo
Wie meisnt du das? Du speicherst den ausgelesenen Wert in einer Variablen und verarbeitest in dann wie du möchtest.
Hier in dem Artikel wird geschrieben die Sensoren in Reihe zu schalten, das ist falsch sie werden Parallel geschaltet anders macht es bei einem 1 wire bus gar keinen sinn.
Hallo Felix,
Ich möchte meine Heizung der Waschmaschine damit Regeln .
Wenn zB. 30 C erreicht ist soll er sie abschalten .Die Temperratur kann ich mit os.system („Temperatur“)auslesen das Funktioniert .
Udo
Genau, dann musst du nur noch das Shell-Skript so umändern, dass es nur noch den Wert zurück gibt, bzw.
cat /sys/bus/w1/devices/10-000802b4ba0e/w1_slave`
per os.system ausführen und entsprechend formatieren.Hallo Felix ,
Das ganze werde ich so machen ,ich gebe bescheid wenn es Funktioniert
Dankeschön für deine prompte hilfe
Udo
Hallo Felix ,
ich habe das Shell Skript so abgeändert das ich es per os.system(„temperature“) aufrufen kann ,
dann bekomme ich nur die Temperature angezeigt ,aber das programm kann damit nichts anfangen.
Hast Du noch einen Tipp .
Udo
Speicherst du die Ausgabe in einer Variable? Poste mal deinen Code.
Hallo Felix ,
das Programm ist noch ein bisschen einfach bin es noch am ausbauen .Die Komponenten der Maschine Funktionieren aber schon. Ich hoffe es kommt so an .Danke für deine Hilfe .
Udo
Hallo Felix ,
habe ich was falsch gemacht ? oder warum bekomme ich keine Antwort ?
Udo
Hi Udo,
hatte den Code nur überflogen. Was war denn deine konkrete Frage?
Herzlichen Dank für dieses gelungene Tutorial.
Habe eine Frage bezüglich der Abtastrate der Temperatursensoren.
Habe im Netz folgenden Satz gefunden:
Über das 1-Wire-Interface wird der, in 750 ms gemessene, Wert als 12-Bit Wert übertragen. Mit einer Konfiguration sind außerdem noch Auflösungen von 9, 10 und 11-Bit möglich. Je kleiner die Auflösung, desto kürzer ist die Messzeit.
Ich möchte gerne die Messzeit verkürzen.
Wie muss ich da vorgehen?
MfG Örni
Wie funktioniert das denn mit dem Pi 3? Habe gelesen das es dort anders ist aber keine Lösung gefunden
Ok habs schon hinbekommen nun die Frage wie ich dem Temperatur wert eine Variable zuweise um mit ihr weiter programmieren zu können?
Muss man denn zwingend den GPIO4 benutzen? Dieser ist bei mir schon durch was anderes belegt.
Hallo,
Kann ich anstatt dem 4,7k Ohm Widerstand auch einen 5,1k Ohm Wiederstand benutzen?
Gruß
Niklas
Ja, kannst du. Da kein Strom fliesst (oder nur geringer) entsteht auch kein Spannungsabfall und der Spannungspegel ist garantiert. Ebenso kénnte man einen 1M Widersatand benutzen.
Was passiert, wenn ich einen viel kleineren Wiederstand zum Beipsiel 100 Ohm verwende? Kann sich das negativ auf die Messergebnisse Auswirken?
Ich habe mir ein kleines Programm in C++ geschrieben, das den Wert auslesen soll und dann in eine Variable speicher. Wenn ich in einer selbst geschrieben Text Datei lese, funktioniert mein Programm, aber bei dieser Datei eben nicht. Weiss jemand warum?
Eine Frage, ich möchte Bauteiltemperaturen auslesen (Kontakttemperatur) und einen Sensor mit wärmeleitendem Kleber anbinden.
Wo hat denn der DS18B20 seine Messfläche? Auf der flachen Seite? D.h. wenn ich diese Seite an das Bauteil anbinde messe ich korrekt? Oder muss ich für eine solche Anwendung Drahtfühler und sowas hier nehmen? https://learn.adafruit.com/adafruit-1-wire-thermocouple-amplifier-max31850k
Danke!
Hallo,
ich habe das Tut durchgearbeitet und es scheint auch größtenteils zu funktionieren.
Wenn ich folgendes in meine PY Datei schreibe, wird die Temperatur im Shell-Fenster angezeigt allerdings ist der gespeicherte Wert im Variables-Fenster 0. Damit lässt sich dann nicht weiterarbeiten.
import os
temp = os.system(„temperature“)
Wo liegt der Fehler? Wie bekomme ich es hin, dass die aktuelle Temperatur als Variable temp gespeichert wird?
Vielen Dank im vorraus
Tim
Der Tempsensor arbeitet bei mir, sehe auch die Temperatur wenn ich alles manuell eingebe. Mit der Ausführung des Skriptes klappt es aber nicht (habe die Sensor ID natürlich ausgetauscht). Auch die Rechtevergabe sudo chmod +x /usr/bin/temperature habe ich ausgeführt (ohne Quittierung?), es kommt bei der Skriptausführung immer nur die Rückmeldung „Defekter Interpreter: Keine Berechtigung“.
Habe das Skript auch mal in den Ordner „Dokumente“ angelegt und entsprechend ausgeführt-gleiches Ergebnis.
Hat einer eine Idee, was da los ist?
Hallo,
bei mir kommt immer nur:
Traceback (most recent call last):
File „/home/pi/Temperatur.py“, line 4
tempread=`cat /sys/bus/w1/devices/28-3c01a8162a33/w1_slave`
^
SyntaxError: invalid syntax
Hab das gleiche Problem.
Hast du inzwischen herausgefunden wie es funktioniert?
hi,
gibt es auch die Möglickeit das ganze mit einem A20 zu realisieren?
Alle Anschlüsse scheinen beim A20 auch da zu sein. der einzige Anschluss den ich nicht finde ist (4) die lange grüne Linie.
Gruß
Alero
Falsch ist: dtoverlay=w1-gpio,gpioin=4,pullup=on
Richtig wäre: dtoverlay=w1-gpio,gpiopin=4,pullup=on
MfG
Albert
Hi bei mir ändert sich alle 10 Sekunden diese ID !
Gibt es dafür eine Lösung ?
Danke im vorab
Gruß Ansgar
Hallo,
ich habe die parasitäre Version mit nur zwei Drähten.
Ich schließe ihn ähnlich an wie hier:
https://imgaz.staticbg.com/customers_images/large/2016122713124256-986819.png
Spannung natürlich 3,3 V.
Der Sensor wird nicht erkannt. Die Liste in /sys/bus/w1/devices/ enthält nur den Master.
Funktioniert der Sensor überhaupt am RPi? Am Arduion funktionert er wie gewünscht.
Danke.
Andreas
Hallo Felix,
ich lese mit dem Raspberry 5 Sensoren (18D20), (20meter) ein.
Musste hierfür den pullup auf 1200 Ohm erniedrigen.
Funktioniert einwandfrei.
Nun wollte ich noch einen anhängen, aber in 150meter Entfernung.
Auf Grundlagen das der GPIO Port max 30mA verträgt,
habe ich nochmal 1200Ohm parallel geschaltet.
Funktioniert nur Fehlerhaft.
Habe dann festgestellt, dass schon das offene Ende (schon mit Pullup am Raspberry)
den Fehler verursacht.
Wirkt die Leitung hier schon wie Akku (Kondensator)?
Gibt es hier Lösungsansätze?
Ähnliche frage wurde hier (siehe oben)schon einmal gestellt.
Gruß
Karl
Tipp: Für größere Leitungslängen Pegelwandler einsetzen:
https://wiki.fhem.de/wiki/1-Wire_Pegelwandler
Hallo
Meine frage an Alle.
Beim messen der Außentemperatur mit DS18B20 kommt es bei minus Graden
immer zur einem Fehler (zeigt Werte um +4090,00 an).
Plus Grade werden richtig angezeigt.
Gibts eine Lösung ?
Hallo,
bei mir das Gleiche: 4095 bei Minus Graden – sobald es ins Plus geht, stimmts wieder …
Hallo,
Raspi mit 6 Sensoren lief über Monate tadellos. Seit ca. 14 Tagen werden für den Temperaturminusbereich (Sole-Vor- und Rücklauf) plötzlich 4090…. angezeigt.
Habe überhaupt keinen Plan, wieso. Habe die beiden betroffenen Sensoren schon ausgetauscht, leider mit demselben o.g. Ergebnis.
Bin für jeden Hinweis dankbar. Danke.
L.G. Michael
Hallo,
falls ihr die Probleme mit den negativen Temperaturen und Werten von 4090 noch nicht gelöst habt…
ich hatte das Problem auch nachdem ich meinen Raspberry (3b) am 10. Februar aktualisiert hatte (auf Kernel 5.10.11-v7+). Nach längerer Suche habe ich diesen Artikel gefunden:
https://github.com/raspberrypi/linux/issues/4124 und wie beschrieben gestern nochmal ein Update mit rpi-update (jetzt Kernel 5.10.17-7v+) gemacht was die Probleme beseitigt hat.
Grüße,
Patrick
Hallo
Bei mir funktioniert das Auslesen der Temperatur meist, aber nicht immer.
Mein Raspi hat eine frische Installation mir Kernel 5.10.17+.
Der Sensor DS1820 wird aktiv gespeist.
Meine Frage ist:
Wie oft wird der Wert in der Datei w1_slave aktualisiert?
Und warum ist diese Datei öfters leer?
Ich lese die Daten mit einem Script aus und schreibe sie in eine Textdatei.
Das Ergebnis sieht so aus:
Fr 4. Jun 04:29:38 CEST 2021
Die gemessene Temperatur beträgt °C
Fr 4. Jun 04:30:58 CEST 2021
Die gemessene Temperatur beträgt 19.18 °C
Fr 4. Jun 04:32:38 CEST 2021
Die gemessene Temperatur beträgt °C
Fr 4. Jun 04:33:58 CEST 2021
Die gemessene Temperatur beträgt 19.18 °C
Fr 4. Jun 04:35:38 CEST 2021
Die gemessene Temperatur beträgt 19.12 °C
Fr 4. Jun 04:36:58 CEST 2021
Die gemessene Temperatur beträgt 19.12 °C
Fr 4. Jun 04:38:38 CEST 2021
Die gemessene Temperatur beträgt 19.12 °C
Fr 4. Jun 04:39:58 CEST 2021
Die gemessene Temperatur beträgt °C
Fr 4. Jun 04:41:38 CEST 2021
Die gemessene Temperatur beträgt 19.12 °C
Wie man sieht, fehlen oft die Temp-Werte.
Auch wenn ich manuell auslese fehlen die Werte oft:
pi@raspi:~ $ cat /sys/bus/w1/devices/28-000006b62257/w1_slave
pi@raspi:~ $ cat /sys/bus/w1/devices/28-000006b62257/w1_slave
9f 01 4b 46 7f ff 01 10 40 : crc=40 YES
9f 01 4b 46 7f ff 01 10 40 t=25937
pi@raspi:~ $ cat /sys/bus/w1/devices/28-000006b62257/w1_slave
pi@raspi:~ $ cat /sys/bus/w1/devices/28-000006b62257/w1_slave
a0 01 4b 46 7f ff 10 10 6e : crc=6e YES
a0 01 4b 46 7f ff 10 10 6e t=26000
pi@raspi:~ $ cat /sys/bus/w1/devices/28-000006b62257/w1_slave
pi@raspi:~ $ cat /sys/bus/w1/devices/28-000006b62257/w1_slave
a0 01 4b 46 7f ff 10 10 6e : crc=6e YES
a0 01 4b 46 7f ff 10 10 6e t=26000
pi@raspi:~ $ cat /sys/bus/w1/devices/28-000006b62257/w1_slave
a0 01 4b 46 7f ff 10 10 6e : crc=6e YES
a0 01 4b 46 7f ff 10 10 6e t=26000
pi@raspi:~ $ cat /sys/bus/w1/devices/28-000006b62257/w1_slave
a0 01 4b 46 7f ff 10 10 6e : crc=6e YES
a0 01 4b 46 7f ff 10 10 6e t=26000
pi@raspi:~ $ cat /sys/bus/w1/devices/28-000006b62257/w1_slave
a0 01 4b 46 7f ff 10 10 6e : crc=6e YES
a0 01 4b 46 7f ff 10 10 6e t=26000
und es steht auch oft nur exakt dasselbe in dieser Datei drin.
Hi.
Ich habe das mal nachgebaut und 4 Sensoren an GPIO 4 angeschloßen. Das klappt auch wunderbar. Im ersten Versuch (1 Sensor) habe ich alles am Breadboard und mit Spannungsversorgung über den Pi verkabelt. Beim zweiten Aufbau habe ich dann eine externe Stromquelle ans Breadboard angeschloßen und nur den gelben Draht an GPIO 4 des Pi. Dies hat aber leider nicht geklappt. Es wurden die Sensoren nicht erkannt und erst als ich wieder 5V und GND vom Pi ans Board gesteckt habe ging es. Woran liegt das. Ich würde die Sensoren später gerne auf Platine löten und mit einem ESP32 verbinden, welches dann per WLAN mit dem PI kommunizieren soll. Die Stromversorgung soll dann generell ein DC/DC Wandler mit 12V Einspeisung (Auto) übernehmen. Um die Leitungswege kurz zu halten war geplant nur die Datenleitung mit dem ESP zu verbinden, der dann zentral zwischen den Sensoren platziert wird und die Sensoren sollten direkt ans Bordnetz um mit Strom versorgt zu werden. Muss ich den Plan aufgeben oder habe ich was falsch gemacht?
Bei mir wird gar nicht erst ein Verzeichnis /sys/bus/w1 angelegt (/sys/bus schon, aber darunter nichts). Auch bleiben die beiden neuen Zeilen in /etc/modules nicht über den nächsten boot erhalten. Die Datei ist dann immer wieder leer.
Raspbian Lite auf einem alten PI 2
Any hints?
Gibt es diese 1-wire auch im Zero (W) ?
den pfad /sys/bus/w1 finde ich da schonmal nicht.
Wünschenswert wäre es, wenn man nicht von „dem Raspberry“, sondern von den Modellen, die das können, sprechen würde
Hi, ich habe meinen Temperatursensor nach den Anweisungen implementiert.
Mein Problem ist aber, wenn ich nach den devices frage, 3 Instanzen angezeigt bekomme.
Den w1 master bus und nochmals 2 Zahlencodes, die sich aber auch nicht auslesen lassen.
Kann mir da jemand weiterhelfen?
Hi zusammen,
ich habe hin und wieder ein seltsames Problem: der Raspi „verliert“ die Thermoelemente nach einiger Zeit. Ich habe die Ursache bisher nicht finden können. Manchmal läuft es Wochenlang problemlos, manchmal ist es täglich. Die Elemente werden dann nicht mehr unter /sys/bus/w1/devices angezeigt, die Temperaturwerte sind dann in meiner Heizungssteuerung alle Null – somit funktioniert nix mehr. Leider hilft hier auch kein reboot (sonst könnte ich es so machen, dass ich bei Verlust der Sensoren einfach reboot absetze), sondern ich muss den Raspi stromlos setzen und neustarten. Ich kann natürlich mir was basteln, dass der Raspi sich per externer Elektronik stromlos setzt, aber das wäre nur die Notlösung. Daher die Frage: weiß jemand, wie man die GPIO Pins aus dem gebooteten System neustarten kann? Oder hat zumindest jemand sonst das selbe Problem?
Viele Grüße
Sebastian
Warum verwenden wir `pullup=on` in der `config.txt`? schaltet das nicht den internen pull-up ein?