Einleitung
Innerhalb dieses Artikels werden wir den barometrischen Sensor BMP180 mit dem ESP32 und Arduino verbinden und programmieren, um diesen im Endeffekt verwenden zu können. Wir werden den Luftdruck und Temperatur messen. Wir werden den BMP180 Sensor mit einem ESP32 und auch mit einem Arduino Uno verkabeln, die benötigte Bibliothek installieren und den Sketch in der Arduino IDE schreiben.
Specs
Erst einmal zu den Specs.
Verbaut ist innerhalb des GY-68 BMP180 Boards ein BMP180 Sensor, wie ihr euch bereits anhand des Titels denken könnt. Dieser kommt von der deutschen Firma Bosch und kann sowohl die Temperatur als auch den Luftdruck messen. Nach Datasheet verbraucht der Sensor zwischen 3 und 32 µA* im Betrieb je nach eingesetztem Betriebsmodus. Wo wir auch schon bei den verschiedenen Modi sind. Diese umfassen neben einem Standby auch noch fünf verschiedene Genauigkeitsgrade. Vier der fünf Modi können über die später angesprochene Library auf unserem ESP32, Arduino oder Raspberry Pi Pico ausgewählt werden.
Befeuert wird das Board mittels einer 3,3v Spannung und die Datenübermittlung an unseren Mikrocontroller erfolgt via I2C Interface.
Gemessen werden kann in Bereichen zwischen -40 und +85 Grad. Die größte Genauigkeit soll jedoch zwischen 0 und 65 Grad erreicht werden, was ich in späteren Tests bestätigen kann.
*Ich habe keinerlei Möglichkeit solch geringe Angaben mit meinem Amateurequipment zu überprüfen. :(
Besonderheiten
- Digitale Schnittstelle
- Geringer Stromverbrauch
- Verschiedenste Modi je nach maximalem Stromverbrauch oder benötigter Genauigkeit einstellbar
- Messbarkeit von Temperatur & Luftdruck
- Super einfach zu verwenden
Schaltplan
BMP180 am ESP32
BMP180 am Arduino
Programmierung
ESP32
Für die Programmierung des ESP32 benötigen wir zwei zusätzliche Libraries. Diese schimpfen sich im Coding "Wire" und "Adafruit BMP085 Library". Beide Libraries können wir installieren, indem wir innerhalb der Menüleiste auf "Werkzeuge" gehen, anschließend klicken wir auf "Bibliotheken verwalten..." und suchen nacheinander im Suchfenster nach den beiden Libraries. Der Button "Installieren" regelt dann für uns.
#include
#include
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Bitte schließe den Sensor korrekt an.");
}
}
void loop() {
Serial.print("Temperatur: ");
Serial.print(bmp.readTemperature());
Serial.println(" Grad");
Serial.print("Luftdruck: ");
Serial.print(bmp.readPressure());
Serial.println(" hPa");
delay(2000);
}
Arduino
Für die Programmierung des ESP32 benötigen wir zwei zusätzliche Libraries. Diese schimpfen sich im Coding "Wire" und "BMP180". Beide Libraries können wir installieren, indem wir innerhalb der Menüleiste auf "Werkzeuge" gehen, anschließend klicken wir auf "Bibliotheken verwalten..." und suchen nacheinander im Suchfenster nach den beiden Libraries. Der Button "Installieren" regelt dann für uns.
#include
#include
BMP180 bmp;
void setup()
{
Serial.begin(9600);
Wire.begin();
bmp = BMP180();
}
void loop()
{
// Auslesen der Temperatur
float temperature = bmp.getTemperature();
// Ausgabe der Temperatur
Serial.print("Temperatur: ");
Serial.print(temperature);
Serial.println(" Grad");
// Auslesen des Aufdrucks in Pa
long pressure = bmp.GetPressure();
// Ausgabe in hPa
Serial.print("Luftdruck: ");
Serial.print(pressure / 100);
Serial.println(" hPa");
delay(2000);
}