Skip to content

Latest commit

 

History

History
94 lines (72 loc) · 4.21 KB

wemos-bmp180.md

File metadata and controls

94 lines (72 loc) · 4.21 KB
permalink title author_profile author comments
/docs/arduino/wemos-bmp180-shield/
Drucksensor BMP180
true
Diego
true

{% include toc %}

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:

{% gist jdieg0/f297627497c1f151df4fe3ad8f9e2966 %}

{% capture notice-fehler %} 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. {% endcapture %}

{{ notice-fehler | markdownify }}

Anzeigen der Werte

Über den seriellen Monitor werden die Messwerte angezeigt:

$ screen /dev/ttyUSB0 9600

{% capture notice-ausgabe %} 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

{% endcapture %}

{{ notice-ausgabe | markdownify }}

{% capture notice-screen %} Das Screen-Fenster kann man mit Strg + a k schließen (mit y bestätigen). {% endcapture %}

{{ notice-screen | markdownify }}

{% capture notice-waerme %} 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. {% endcapture %}

{{ notice-waerme | markdownify }}

Weiterführende Links