Title: M1.1.2: Erste Schritte Temperatursensor auslesen
Course: LF07 - Cyber-physische Systeme ergänzen - FI/ITSE - Raspberry Pi > Section: LS7.1: Messdatenerfassungssysteme funktional zusammenführen

Erste Schritte Temperatursensor auslesen

1-wire-Schnittstelle aktivieren

Um die 1-wire-Schnittstelle nutzen zu können, muss diese in der Grundkonfiguration des Raspi aktiviert werden. (Standardmäßig ist diese deaktiviert)

Es gibt hierzu zwei mögliche Wege:

1. mittels grafischer Oberfläche (z.B. Raspi wird mit Monitor und Tastatur bedient.)

1. mittels /boot/config.txt (z.B. wenn der Raspi ohne Monitor per ssh bedient wird)

Vorgehen zu 1:

Aktivieren Sie über das Start-Menü im Programm „Raspberry-Pi-Konfiguration“ den Parameter „Eindraht-Bus“ im Reiter „Schnittstellen“. Der Vorgang ist in Abbildung 1 dargestellt:

Abbildung 1: Aktivierung des 1-Wire- (Eindraht-)Bus mit Hilfe des Konfigurations-Tools

Nach der Aktivierung über einen der beiden Wege muss der Raspi neu gestartet werden.

Vorgehen zu 2:

Öffnen Sie die config-Datei mit einem Editor (z.B. nano) und sudo-Rechten:

```sudo nano /boot/config.txt```

Fügen Sie am Ende der Datei die folgende Zeile an:

dtoverlay=w1-gpio, gpiopin=4  (Damit wird der Pin 4 des GPIO für 1-Wire reserviert.)

(Speichern: STRG+O und Beenden: STRG+X)

Anschließend ist ein Neustart erforderlich. Für Linux Kernel ab Version 3.18 (mit Device Tree) ist damit alles Notwendige getan. Bei älteren Modellen müssen mit dem Befehl modprobe die Module noch geladen werden.

Prüfen der Einstellungen

Ob der 1-Wire-Treiber eingebunden wurde, lässt sich mittels des lsmod Befehls überprüfen.

Die Spalte Used by zeigt an, wie viele Module ein Modul (links) gerade nutzen. Das Modul rfcomm wird beispielsweise von 4 weiteren Modulen genutzt.

Für die 1-wire-Hardware werden die folgenden Module genutzt:

- wire

- w1_gpio
- w1_therm

TIPP: Mit der Pipe | grep -i wire (bzw. w1_gpio oder w1_therm) filtern Sie die gesamte Ausgabe auf den Begriff “wire” und bekommen nur die entsprechenden Fundstellen angezeigt.

lsmod | grep -i wire

Sensor ID ermitteln

Nun benötigen Sie die eindeutige ID des 1-wire-Sensors, um mit dem Sensor zu kommunizieren:

Hier: 28-0300a279e5e4

Temperatur auslesen

Quick-n-Dirty: Temperatur auslesen zum Testen per cat-Befehl. cat dient dem Anzeigen von Dateiinhalten. Das funktioniert hier, weil unter Linux die Devices als Dateien geführt werden.

Im nachfolgenden Beispiel muss die ID des 1-wire-Sensors durch die ID Ihres Sensors ersetzt werden.

crc=fc yes -> Prüfsumme fc korrekt

t=21375 / 1000 = 21,375 °C

Erwärmen des Sensors liefert andere Werte:

crc=07 -> Prüfsumme 07 korrekt

t=29937 / 1000 = 29,937 °C

Struktur der Temperaturdaten erkennen

Im Datenblatt des Sensors ist der Aufbau der Datenstruktur beschrieben.

Fragen zu den ersten ermittelten Werten beantworten

1. Überprüfen Sie die Werte mit der Excel-Tabelle
“ LF07_LS01_Material zu M1.1 Temperatur-Umrechnung fuer 1-wire.xlsx ”!

1. Ermitteln Sie die Auflösungen (RESOLUTION) und die dazugehörende maximale Umwandlungszeit (MAX CONVERSION TIME) Ihres Sensors. (s. Datasheet S. 5-6)!

1. Wie lauten die in Ihrem Sensor eingestellten Trigger-Temperaturen tH und tL?
(s. Datasheet S. 4 Figure 4)?

1. Welche Bedeutung hat das S-Bit in Zusammenhang mit den Trigger-Temperaturen?