Drucksensor BMP180

Das BMP180-Shield für den Wemos D1 Mini nutzt die Pins D1 (SCL) und D2 (SDA) für die Kommunikation via I2C. Praktischerweise ist bereits eine Bibliothek namens Adafruit_BMP085_Unified vorhanden, mit der sich der Drucksensor sehr einfach auslesen lässt. Zusammen mit der Temperatur, die der Sensor auch liefert, lässt sich die Höhe bestimmen, in der sich der Sensor befindet.

Foto des BMP180-Shields.
Das BMP180-Shield für den Wemos D1 Mini. Man erkennt gut die Leiterbahnen, die vom Sensor-Chip zu den I2C-Pins D1 (SCL) und D2 (SDA) führen. (CC BY 4.0 Diego Jahn)

Bibliothek

Die Adafruit-Bibliothek wird im PlatformIO-Projekt-Ordner wie folgt installiert:

$ platformio lib install "Adafruit BMP085 Unified"

Code

Druck und Temperatur werden folgendermaßen abgefragt und angezeigt:

Leider funktioniert die Umrechnung von Druck und Temperatur in eine Höhe mit Hilfe der Funktion pressureToAltitude() nicht auf dem Wemos-Board, da es ein Problem mit der Mathe-Bibliothek e_pow.c gibt:

/home/pi/xtensa/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libm/math/e_pow.c:164: undefined reference to `__ieee754_sqrt'

Mit der dieser Funktion zugrundeliegenden baromentrischen Höhenformel kann man allerdings die Höhe auch selbst ausrechnen.

Anzeigen der Werte

Über den seriellen Monitor werden die Messwerte angezeigt:

$ screen /dev/ttyUSB0 9600

So sieht die Ausgabe beispielsweise aus:

Druck: 996.88 hPa, Temperatur: 29.30 *C
Druck: 996.84 hPa, Temperatur: 29.30 *C
Druck: 996.93 hPa, Temperatur: 29.40 *C
Druck: 996.87 hPa, Temperatur: 29.40 *C
Druck: 996.91 hPa, Temperatur: 29.40 *C

Das Screen-Fenster kann man mit Strg + a k schließen (mit y bestätigen).

Die sonst praktische Steckmöglichkeit der Wemos-Platinen erweist sich hier eher als Nachteil. Die Wärmeabstrahlung des Wemos D1 Mini ist nicht ganz unbeträchtlich, vor allem über die eng beieinander liegenden Masse-Pins (GND) beider Boards wird der BMP180-Temperatursensor stark erwärmt.

Foto des BMP180-Shields zusammengesteckt mit einem Wemos D1 Mini
Wemos D1 Mini und das BMP180-Shield übereinander gesteckt (CC BY 4.0 Diego Jahn)

Falls zuverlässigere Temperaturwerte gebraucht werden, sollte man das Dual-Base-Shield verwenden oder das BMP180-Shield mit Kabeln mit dem Wemos D1 Mini verbinden.


Hinterlasse einen Kommentar

Deine E-Mail Adresse wird nicht veröffentlicht. Benötigte Felder sind markiert *

Lade...