Title: M.1.1.1 Temperaturmessung mit dem Raspberry Pi
Course: LF07 - Cyber-physische Systeme ergänzen - FI/ITSE - Raspberry Pi > Section: LS7.1: Messdatenerfassungssysteme funktional zusammenführen

Temperaturmessung mit dem Raspberry Pi

Temperaturmessverfahren unterscheiden

Temperatursensoren wandeln die nichtelektrische Größe "Temperatur" in eine elektrische Größe um, die dann mit einer elektronischen Schaltung gemessen werden kann. Man unterscheidet dabei aktive und passive Sensoren. Aktive Sensoren geben eine Energie ab, passive steuern eine Fremdenergie. Wichtig ist auch die Dynamik eines Sensors, also die Zeit, die vergeht, bis sich der Sensor an die Temperatur des Messobjektes ausreichend angenähert hat. Je kleiner die Masse des Sensors ist, desto besser ist dessen Dynamik.

Von einem Temperatursensor gelieferte Spannungen können nicht direkt von einem Mikroprozessor verarbeitet werden. Sie müssen zunächst elektrisch verstärkt und dann in einen digitalen Datenstrom umgewandelt werden. Wie so etwas funktioniert? Einfach mal hier schauen...

Die Temperaturabhängigkeit eines elektrischen Widerstandes ist ein häufig genutztes Prinzip. Vornehmlich Platin- und Nickelmaterialien verfügen über eine hohe Linearität des Widerstandes über der Temperatur. Die Widerstände beeinflussen einen elektrischen Strom. Der Spannungsabfall am Temperaturmesswiderstand wird dann häufig in einer elektrischen Brückenschaltung erfasst und ist ein Maß für die Temperatur. Hier einige Links zu solchen Sensoren:

- https://de.wikipedia.org/wiki/Platin-Messwiderstand
- https://www.fuehlersysteme.de/wiki/pt100
- https://www.omega.de/prodinfo/widerstandsfuehler-baugruppen.html

Auch Widerstände aus Halbleitermaterialien werden zur Temperaturmessung genutzt. Sie reagieren empfindlicher als die Metallwiderstände, das heißt, eine geringe Temperaturänderung ruft eine große Widerstandsänderung hervor. Allerdings ist der Verlauf des Widerstandes über der Temperatur stark nichtlinear und muss durch eine Software geglättet werden. Ein NTC (negative temperature coefficient) verkleinert seinen Widerstand mit steigender Temperatur, ein PTC (positive temperature coefficient) vergrößert seinen Widerstand mit steigender Temperatur.

Thermoelemente nutzen den sogenannten thermoelektrischen oder Seebeck Effekt. Verbindet man zwei unterschiedlich leitende Materialien, zum Beispiel Nickel und Kupfer, an einer Stelle miteinander und setzt die beiden Enden der Drähte unterschiedlichen Temperaturen aus, so bildet sich längs der Leiter eine Spannung aus, die vom Temperaturunterschied zwischen Kalt- und Warmseite und dem Leitermaterial abhängig ist. Am kalten Ende lässt sich dann eine meist sehr kleine Spannung messen, die halbwegs linear zur Temperaturdifferenz ist. Diese Spannung wird verstärkt und gemessen. Solche Sensoren werden häufig zum Erfassen hoher Temperaturen in Industrieanlagen eingesetzt. Hier einige Links zu solchen Sensoren:

- Thermoelemente auf Youtube
- https://www.wika.com/de-de/thermoelemente.WIKA
- https://phoenixtm.com/de_DE/produkte/thermoelementemessfuehler/

Pyrometrische Sensoren erfassen die Strahlungsintensität einer Wärmequelle. Der Vorteil ist die berührungslose Messung einer Temperatur. Alle anderen Sensoren benötigen engen Kontakt zum Messobjekt.

NTC und PTC aus Halbleitern sind sehr kostengünstige Materialien. Die Linearisierung ihrer Kennlinie wird oft in integrierten Schaltungen vorgenommen. Diese wandeln dann zusätzlich das analoge Messsignal in ein digitales Format und geben es über einen Industriestandard an die Außenwelt weiter. Temperatursensoren dieser Art reagieren aufgrund ihrer Masse (TO-92 Kunststoffgehäuse) träge. Da sich in Serverräumen Temperaturveränderungen langsam vollziehen, spielt die geringe Dynamik des Sensors keine große Rolle.

Der integrierte Schaltkreis DS18B20 bietet eine sehr kostengünstige Möglichkeit, um Temperaturwerte über einen One-Wire-Bus zu liefern.

Temperatursensor DS 18B20 kennenlernen

Beim DS18S20 und den verwandten Bausteinen DS18B20 sowie DS1822 handelt es sich um integrierte Schaltkreise im TO-92 Gehäuse, die Temperatursensor, Analog-Digital-Wandler und 1-Wire-Interface enthalten. Die Bausteine sind anschluss- und softwarekompatibel, sie unterscheiden sich im Wesentlichen in der Messgenauigkeit und im Preis. Den Temperatursensor gibt es auch noch im DIL-Gehäuse, wobei in der Regel die TO92-Variante verwendet wird.

Lesen Sie dazu folgende Beschreibung auf der Netzmafiaseite (nur bis zu den Bildern mit der Anschlussbelegung). Das Thema "Treiber unter Linux" behandeln wir später.

http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-Onewire/index.html

Hier finden Sie das Datenblatt zum Temperatursensor oder direkt beim Hersteller: http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

Verschaffen Sie sich einen Überblick über die Funktionen des Sensors. Beachten Sie insbesondere die Darstellung der Messergebnisse in dezimaler, binärer und hexadezimaler Form (Tabelle auf Seite 4). Negative Zahlen werden im Zweierkomplement dargestellt. Diskutieren Sie das innerhalb der Klasse.

Temperaturen digital erfassen

Der Raspberry Pi hat eine Pfostenleiste, die zur Ein- und Ausgabe dient. Diese Pfostenleiste hat die Bezeichnung GPIO (= General Purpose Input/Output) und hat ausschließlich binäre Funktionen. Das bedeutet, dass analoge Werte erst durch einen externen ADC (Analog to Digital Converter)  in binäre Informationen umgesetzt und über die GPIO an den Raspberry Pi gesandt werden müssen .

Um nun binäre Daten an die GPIO zu senden , gibt es (u.a.) folgende Möglichkeiten:
- Übertragen von parallelen Datenworten an entsprechend viele GPIO-Input-Pins,
- Nutzen von integrierten Bus-Systemen, wie
  - I²C-Bus
  - 1-Wire-Bus
  - SPI (Serial Peripheral Interface)
- Nutzen des PCM-D Inputs (Pulse-Code-Modulation)

Die einfachste Lösung ist der Einsatz eines ICs, das die Temperatur misst, digitalisiert und über eines der Bussysteme an den Raspberry Pi sendet. Parallele Datenverarbeitung, wie im ersten Punkt der Auflistung nutzt man häufig bei zeitkritischen Anwendungen, wo mit hoher Bandbreite Daten umgesetzt werden müssen. Pulse-Code-Modulation erfordert einen höheren Softwareaufwand.

Die Anschlussbelegung der GPIOs (General Purpose Input Output) eines Raspberry Pi findet man z. B. bei https://de.pinout.xyz/pinout/1_wire

Anschluss des DS18B20 an den Raspberry

Der Sensor wird wie im folgenden Schaubild (siehe Abbildung 1) an den Raspberry angeschlossen.

Nr | Name | Bedeutung
1 | 3V3 | +3V Spannung
7 | 1-wire | Datenleitung GPIO4
6 | GND | Ground, Masse

Abbildung 1: Anschluss des Sensors an den GPIO-Port des Raspberry Pi