Es gibt einige Temperatursensoren auf dem Markt, wie z.B. den bekannten TMP36*, den GY-906 (der per Infrarot misst) oder natürlich den DHT11* (oder seinen genauerer Bruder DHT22, beide messen auch die Luftfeuchtigkeit).
Der BMP180* misst jedoch neben der Umgebungstemperatur auch den Luftdruck, was es dir z.B. ermöglicht, eine rudimentäre Wettervorhersage zu bauen.
In diesem Tutorial erfährst du, wie du den Sensor anschließt, welche Bibliothek du brauchst und wie du die Temperatur und die Luftfeuchtigkeit misst.
Den BMP180 anschließen
Oft wir dieser kleine Sensor leider mit unverlöteten Pins geliefert, was für dich bedeutet, dass du diese selbst an das Breakout Board löten musst. Das sollte dich aber vor keine große Herausforderung stellen.
Die Kommunikation mit dem BMP180 erfolgt über I2C, versorgt wird er mit 3,3 Volt. Wenn du einen Arduino Uno verwendest, schließe deinen Sensor wie folgt an:
Pin Sensor | Pin Arduino Uno |
---|---|
GND | GND |
VIN | 3,3 V |
SDA | A4 |
SCL | A5 |
Die richtige Bibliothek für den BMP180
Neben der bereits vorinstallierten Bibliothek Wire, benötigst du noch eine weitere, um die Daten des Sensors problemlos auslesen zu können.
Öffne also den Bibliotheksmanager in der Arduino IDE und suche nach BMP180. Du findest nun eine Bibliothek namens Adafruit BMP085 Library – das ist die richtige, auch wenn sie ein anderes Modell im Namen trägt. Der BMP085 war das Vorgängermodell des BMP180, was die Kommunikation angeht, jedoch mehr oder weniger baugleich.
Installiere also diese Bibliothek und schließe den Bibltiotheksmanager.
Temperatur und Luftdruck messen
Jetzt kann es mit der Messung auch schon losgehen. Kopiere dir den folgenden Sketch und lade ihn auf deinen Arduino hoch:
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Sensor nicht gefunden!");
while (1) {}
}
}
void loop() {
Serial.print("Temperatur = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Luftdruck = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
Serial.println();
delay(2000);
}
In deinem Seriellen Monitor sollten jetzt alle 2 Sekunden die Messwerte für die Temperatur in °C und den Luftdruck in Pa erscheinen. Wenn du den Luftdruck lieber in Bar haben möchtest, teile den Sensorwert einfach durch 100.000 – z.B. entsprechen 102395 Pa = 1,02395 Bar.
Wenn du keine Werte in deinem Seriellen Monitor siehst, überprüfe zunächst die Baudrate – im Sketch sind es 9600.
Wie geht es weiter?
Jetzt, wo du den Luftdruck messen kannst, wäre eine eine einfache Wettervorhersage eine gute Idee. Wie steigender und fallender Luftdruck mit dem kommenden Wetter zusammenhängen, kannst du hier nachlesen.
Du willst eigentlich nur die Temperatur messen? Dann erfahre hier auf pollux labs, wie du einen TMP36 oder einen GY-906 verwendest.
*Amazon Affiliate Links – wenn du dort bestellst, erhalten wir eine kleine Provsion.