Raspberry Pi konfigurieren

Der Raspberry Pi unterstützt den DS18B20 mit Hilfe zweier Kernelmodule, die wir aber erst aktivieren müssen.

Stellenmarkt
  1. Spezialist*in für Monitoring, Evaluierung und Informationssysteme
    GIZ Deutsche Gesellschaft für Internationale Zusammenarbeit GmbH, Eschborn
  2. IT-Systemadministrator Production (m/w/d)
    cadooz rewards GmbH, München
Detailsuche

Zuerst wird in der Datei /boot/config.txt folgender Aufruf eingetragen:

dtoverlay=w1-gpio,gpiopin=4,pullup=on

Damit weiß Linux, dass der Pin GPIO04, gemeint ist hier der physische Pin 7, für die One-Wire-Kommunikation verwendet werden soll.

Als Nächstes fügen wir zwei Einträge in /etc/modules ein:

w1-gpio pullup=1
w1-therm
Golem Akademie
  1. Java EE 8 Komplettkurs: virtueller Fünf-Tage-Workshop
    29. November–3. Dezember 2021, virtuell
  2. Kotlin für Java-Entwickler: virtueller Zwei-Tage-Workshop
    14.–15. Oktober 2021, Virtuell
Weitere IT-Trainings

Die erste Zeile lädt das One-Wire-Kernel-Modul, die zweite ein Modul, das für die Auswertung des Temperatursensors zuständig ist. Jetzt müssen wir den Raspberry Pi neu starten.

Temperaturdaten auslesen

Das w1-therm-Kernelmodul legt für unseren Temperatursensor ein Verzeichnis in /sys/bus/w1/devices an. Der Name dieses Verzeichnisses entspricht der eindeutigen ID des Sensors. Sie - und damit auch der Verzeichnisname - ist unveränderlich. Bei unserem Sensor lautet diese 28-01146403b1ff. Innerhalb des Verzeichnisses existiert ein Dateiobjekt mit dem Namen w1_slave. Diese virtuelle Datei liefert uns die Temperatur. So können wir einen kleinen Test auf der Kommandozeile durchführen.

cat /sys/bus/w1/devices/82-01146403b1ff/w1_slave

Die Temperatur befindet sich am Ende der zweiten Zeile und muss noch durch 1000 geteilt werden. Außerdem ist die angegebene Genauigkeit illusorisch. Der Wert sollte auf die erste Stelle nach dem Komma gerundet werden.

Temperaturdaten übermitteln

Um die Temperatur an einen Server zu übermitteln, schreiben wir ein Python-Skript. Es liest die Ausgabe der w1_slave-Datei, extrahiert die Temperaturangabe und übermittelt sie an den Golem.de-Server. Das vollständige Skript steht auf Github zur Verfügung.

Das Skript beginnt mit der Deklaration der erforderlichen Python-Module und der Angabe der ermittelten Sensor-ID und des Pfades:

  1. import re, os, urllib2
  2. import RPi.GPIO as GPIO
  3.  
  4. sensorid = "28-01146403b1ff"
  5. sensorpfad = "/sys/bus/w1/devices/%s/w1_slave" % sensorid

Über das urllib2-Modul werden wir die Datenübertragung durchführen, das Rpi.GPIO-Modul gestattet uns den Zugriff auf die GPIO-Pins des Raspberry Pi. Am Ende des Skriptes befindet sich unser Hauptprogramm:

  1. if __name__ == '__main__':
  2. GPIO.setwarnings(False)
  3. GPIO.setmode(GPIO.BOARD)
  4. GPIO.setup(pin_led, GPIO.OUT)
  5.  
  6. temp = lies_temp(sensorpfad)
  7.  
  8. if None != temp:
  9. send_temp(temp)

Mit GPIO.setmode(GPIO.BOARD) legen wir fest, dass zur Adressierung der GPIO-Pins deren physische Nummern verwendet werden. GPIO.setup(pin_led, GPIO_OUT) weist den Prozessor an, den mit pin_led bezeichneten Pin mit Strom zu versorgen, wenn wir das wünschen. Danach rufen wir unsere selbst geschriebene Funktion lies_temp() auf, um die Temperatur zu ermitteln. War das erfolgreich, dann versenden wir den Wert mit der eigenen Funktion send_temp().

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Das Steckbrett vorbereitenLED an- und ausschalten 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7.  


mp3tobi 03. Mär 2017

Etwas spät: Aber vielleicht hilft das ja weiter: http://c64-online.com/?p=1471

Mrs.Jane 12. Mai 2016

Hallo, ich habe leider das gleiche Problem, konntest du es mittlerweile lösen ? Gruß J.

zipper5004 09. Mai 2016

Ich habe folgendes gefunden: http://de.aliexpress.com/item/Basic-Starter-Kit-Set-Educator...

I2e4per 28. Apr 2016

Ist es vorgesehen, auch das Backend (Serverscript, DB setup etc) ebenfalls zu...

mingobongo 21. Apr 2016

Dem kann ich mich nur anschließen, gerade dieser ausführliche Bericht geht auch mal mehr...



Aktuell auf der Startseite von Golem.de
Rakuten
"Wir bauen 4. deutsches Netz mit x86-Standard-Hardware"

Billige Hardware soll 1&1 United Internet Kosten sparen. Doch in Japan explodieren bei Rakuten die Ausgaben.

Rakuten: Wir bauen 4. deutsches Netz mit x86-Standard-Hardware
Artikel
  1. Alder Lake: Intel will mit 241 Watt an die Spitze
    Alder Lake
    Intel will mit 241 Watt an die Spitze

    Kurz vor dem Launch zeigt Intel eigene Benchmarks zu Alder Lake, außerdem gibt es Details zur Kühlung und zum Denuvo-DRM.
    Ein Bericht von Marc Sauter

  2. Mäuse, Tastaturen, Headsets: Logitech hat mit Lieferengpässen zu kämpfen
    Mäuse, Tastaturen, Headsets
    Logitech hat mit Lieferengpässen zu kämpfen

    Die große Nachfrage während der Coronapandemie hat Logitech 82 Prozent mehr Umsatz beschert. Allerdings kommt die Lieferung nicht hinterher.

  3. Impfnachweise: Covid-Zertifikat für Adolf Hitler aufgetaucht
    Impfnachweise
    Covid-Zertifikat für Adolf Hitler aufgetaucht

    Im Internet sind gefälschte, aber korrekt signierte QR-Codes mit Covid-Impfnachweisen aufgetaucht.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Samsung 4K-Monitore & TVs günstiger (u. a. 50" QLED 2021 749€) • Seagate Exos 18TB 319€ • Alternate-Deals (u. a. Asus B550-Plus Mainboard 118€) • Neues Xiaomi 11T 256GB 549,90€ • Ergotron LX Desk Mount Monitorhalterung 124,90€ • Speicherprodukte von Sandisk & WD [Werbung]
    •  /