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.
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)Die Adafruit-Bibliothek wird im PlatformIO-Projekt-Ordner wie folgt installiert:
$ platformio lib install "Adafruit BMP085 Unified"
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 %}
Ü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 %}
{% capture notice-screen %}
Das Screen-Fenster kann man mit Strg + a
k
schließen (mit y
bestätigen).
{% endcapture %}
{% 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.
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 %}