Für den Arduino gibt es eine Vielzahl von Möglichkeiten, die Temperatur eines Raums oder eines Objekts zu messen. In diesem Tutorial geht es um einen der bekanntesten und einfachsten Sensoren: Den TMP36 – ein günstiger Sensor, mit dem du ganz einfach die Umgebungstemperatur messen kannst.
Der Temperatursensor TMP36
Der Messbereich des TMP36 liegt zwischen -40°C und +150°C – wir hoffen mal stark, dass das für die Orte, an denen du dich aufhältst, ausreichend ist. 🙂 Seine Genauigkeit ist mit ±2°C leider nicht allzu berauschend, möglicherweise reicht dir das ja aber schon für dein Projekt.
Einfacher Anschluss am Arduino
Den Temperatursensor TMP36 in Betrieb zu nehmen ist ziemlich einfach. Hierfür verbindest du den mittleren der drei Pins mit einem Analogeingang an deinem Arduino Board. Etwas aufpassen musst du allerdings beim Strom: Achte darauf, 5V und GND an die richtigen Pins anzuschließen. Die Wölbung des Sensors dient dir hierbei als Orientierung:
Überprüfe noch einmal die Anschlüsse. Wenn du den Sensor falsch herum anschließt, wird er heiß und kann durchbrennen.
Der Sketch für deinen TMP36
Du benötigst nur einige Zeilen einfachen Code, um deine Messungen zu starten:
//Anschlusspin des TMP36 am Arduino
const int analogIn = A0;
//Variablen für die Messwerte
int rawValue= 0;
double voltage = 0;
double tempC = 0;
void setup(){
//Start des Seriellen Monitors mit der Baudrate 9600
Serial.begin(9600);
}
void loop(){
rawValue = analogRead(analogIn); //Einlesen des Messwerts
voltage = (rawValue / 1023.0) * 5000; // Umrechnen in Millivolt
tempC = (voltage-500) * 0.1; // Umrechnen in Grad Celsius
Serial.print("Rohwert = " ); // den rohen Sensorwert anzeigen
Serial.print(rawValue);
Serial.print("\t Millivolt = "); // die Spannung anzeigen
Serial.print(voltage,0); //
Serial.print("\t Temperatur in C = "); //die Temperatur anzeigen
Serial.println(tempC, 1);
//Delay bis zur nächsten Messung
delay(500);
}
Im obigen Sketch ist der TMP36 mit dem Analogeingang 0 verbunden, den du im Loop mit analogRead(0) ausliest. Dazu brauchst du noch drei Variablen:
- Für den Rohwert, den der Sensor ausgibt
- Für die Spannung, die du hieraus berechnest
- Für die Temperatur, die du wiederum aus der Spannung berechnest
Der Sensor misst die Temperatur nicht direkt, sondern gibt je nach Umgebungswärme einen Wert zwischen 0 und 1023 aus. Da er an 5 Volt angeschlossen ist, entspricht dieser Bereich einer Spannweite von 0 Volt bis 5 Volt. Hier kommt die folgende Formel ins Spiel, mit der du zunächst die Spannung berechnest:
Voltage = (RawValue / 1023.0) * 5000;
Aber du willst ja vermutlich nicht die Spannung, sondern die Temperatur haben. Deshalb rechnest du die Volt wiederum in Grad Celsius um:
tempC = (Voltage-500) * 0.1;
Geschafft! Wenn du den Seriellen Monitor öffnest, siehst du alle 500 Millisekunden einen aktuellen Messwert.
Du kannst dieses Projekt einfach erweitern, wenn du einen Servo-Motor zur Verfügung hast und ein Analog-Thermometer bauen.
Die Umgebungstemperatur ist dir zu langweilig? Lerne, wie du mit dem Sensor GY-906 die Temperatur eines Objekts per Infrarot misst. Oder verwende den Sensor BMP180, wenn du neben der Temperatur auch den Luftdruck messen möchtest.