Das BMP180 Shield beinhaltet einen Sensor, welcher die Temperatur sowie der Luftdruck gemessen werden kann.
Bezug
Das Shield kann bei ebay.de* für ca. 5 € gekauft werden.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Technische Daten des BMP180 Shield
- Luftdruck
- Messbereich 300hPa bis 1100hPa
- Genauigkeit 0.02hPa
Zum Messen der Temperatur gibt es leider keine Daten, auch in der Spezifikation von Bosch, welche den Sensor ausführlich beschreibt, wird nur erwähnt, dass die Temperatur gemessen werden kann. Das lässt darauf schließen, dass der Sensor einzig dazu dient den Luftdruck zu messen.
Quellcode
Einen BMP180 Sensor habe ich bereits für den Arduino UNO im Tutorial Arduino Lektion 10: BMP180 digitaler Luftdruck Sensor.
Ich verwende nun den Sketch für das BMP180 Shield erneut, jedoch müssen hier natürlich die Pins für SDA & SCL angepasst werden.
Für den Quellcode wird die BMP180 Bibliothek benötigt, wie man eine Bibliothek in die Arduino IDE einbindet, habe ich bereits im Tutorial Arduino IDE, Einbinden einer Bibliothek beschrieben.
#include <Wire.h> #include <BMP180.h> BMP180 barometer; //Die Instanzvariable eines BMP180 Sensors. void setup() { Serial.begin(9600); // Baudrate auf 9600 setzen. Wire.begin(); //Adafruit Wire Bibliothek für die I2C Kommunikation mit dem BMP180 Sensor. barometer = BMP180(); //setzen einer Instanz des BMP180 Sensors. //Prüfen ob ein BMP180 Sensor gefunden wurde. if(!barometer.EnsureConnected()){ Serial.println("Es wurde kein BMP180 Sensor gefunden."); } } void loop() { //Nur wenn ein BMP180 Sensor gefunden wurde dann soll eine Ausgabe erfolgen. if(barometer.IsConnected) { //Lesen des Wertes für den Luftdruck aus dem Sensor. long currentPressure = barometer.GetPressure(); //Schreiben des gelesenen Wertes auf den Serielenausgang Serial.print("Luftdruck: "); Serial.print(currentPressure / 100); Serial.print(" hPa"); Serial.println(); //Eine neue Zeile einfügen. delay(1000); //Kurze Pause von 1 sek. } }