BMP180 egy alap szenzor egy időjárás állomás elkészítéséhez. Megkapjuk tőle a légnyomást, hőmérsékletet, és még a tengerszint feletti magasságot is. Ami jellemzi még kis méret, alacsony fogyasztás. Könnyen illeszthető Arduino és ESP eszközökhöz is. Ennek a Bosh típusú szenzornak jelenleg három generációja van. Ezek időrendben: BMP085, BMP180, BMP280. Ebben a tesztben a második generációs szenzor szerepel.

BMP180 paraméterek

  • Nyomás tartomány: 300 – 1100hPa (9000 m tengerszint feletti magasság és -500 m közötti tartományban).
  • Tápfeszültség: 1.8V – 3.6V (a VDDA). 1.62V – 3.6V (VDDR).
  • Alacsony fogyasztás: 5μA normál módban.
  • Pontosság: kis energiaigényű üzemmódban a felbontás 0.06hPa (0,5 m). Nagy pontosságú lineáris módban felbontás 0.03hPa (0,25 m).
  • A hőmérséklet kimenet.
  • I2C interfész.
  • Hőmérséklet-kompenzáció.
  • Válaszidő: 7.5ms.
  • Készenléti áram: 0.1μA.

Képek a szenzorról

A képeken látható, hogy a mérete meglehetősen kicsi. Így bárhova könnyen felszerelhető, és rejtve marad. Én a terasz alá rögzítettem. A furat mögé tettem egy távtartót így nem ér hozzá semmihez. Egy öt forintos érme a méret arányosság alapja. Mivel több gyártó is gyártja a szenzort létezik 4-nél több lábas kivitel is. Így kis mértékben eltérő méretekkel rendelkezhetnek.

Elektromos bekötése a szokásos I2C, 2 vezetékes bekötés. És terméseztessen 3,3 volt.

Teszt környezet

A teszteléshez az Arduino IDE 1.8.12-es verzióját használtam.

A program leölhető az arduino.cc/en/Main/Software oldalról.

A program nyelv referenciái pedig megtalálhatóak az arduino.cc/reference oldalon.

Hardver Arduino Nano.

Függvénykönyvtár telepítése

Az “Eszközök” menü alatt található a “Könyvtárak kezelése” almenü. Itt lehet az Arduino IDE alá függvénykönyvtárakat telepíteni. Erre azért van szükség, mert alapból csak a legegyszerűbb könyvtárak vannak telepítve. A speciális eszközökhöz szenzorokhoz léteznek megírt könyvtárak.

A megjelenő ablakban a keresés mezőbe kell beírni az eszköz nevét és a találati listából telepíteni a nekünk szimpatikus függvénykönyvtárat. Ha van Adafruit által kiadott könyvtár, akkor azt részesítem előnyben. A “More info” linkre kattintva a készítő oldalát lehet megnézni. A “Telepítés” gombra kattintva telepíteni lehet a kiválasztott függvénykönyvtárat. Érdemes mindig a legújabb verziót használni,

Telepítés után a példák között kiválasztható a BMP teszteléséhez egy minta program. A program a “Fájl” menü “Példák” almenü “Adafruit BMP085 library” résznél a “BMP085test” névvel érhető el. Ami kompatibilis a BPM180-as szenzorral.

És a kód

A gyári Adafruit kódot lefordítva, feltöltve máris a terminálban láthatóak a mért értékek. A kód nagyon egyszerű. A függvény könyvtár meghívása után illeszti a szenzort, malyd terminálban kiírja a visszakapott értékeket. Ez a kis program ezt ismétli folyamatosan.

#include <Wire.h>
#include <Adafruit_BMP085.h>
//2020.04.21 BMP180 teszt
_______________________________________________________
// Connect VCC of the BMP180 sensor to 3.3V (NOT 5.0V!)
// Connect GND to Ground
// Connect SCL to i2c clock - on Analog 5
// Connect SDA to i2c data - on Analog 4
Adafruit_BMP085 bmp;
void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
    Serial.println("Could not find a valid BMP085 sensor, check wiring!");
    while (1) {}
  }
}
void loop() {
  Serial.print(millis() / 1000);
  Serial.println(" sec ____________________________________");
  Serial.print("Temperature = ");
  Serial.print(bmp.readTemperature());
  Serial.println(" *C");
  Serial.print("Pressure = ");
  Serial.print(bmp.readPressure() / 100);
  Serial.println(" hPa");
  // Calculate altitude assuming 'standard' barometric
  // pressure of 1013.25 millibar = 101325 Pascal
  Serial.print("Altitude = ");
  Serial.print(bmp.readAltitude());
  Serial.println(" meters");
  Serial.print("Pressure at sealevel (calculated) = ");
  Serial.print(bmp.readSealevelPressure());
  Serial.println(" Pa");
  // you can get a more precise measurement of altitude
  // if you know the current sea level pressure which will
  // vary with weather and such. If it is 1015 millibars
  // that is equal to 101500 Pascals.
  Serial.print("Real altitude = ");
  Serial.print(bmp.readAltitude(101500));
  Serial.println(" meters");
  Serial.println();
  delay(5000);
}

Mérési eredmények

A szenzor álltal addot eredmények: hőmérséklet, légnyomás, tengerszint feletti magasság. Ezeket az értékek változóban tárolva bárhol fel lehet használni. Így egy Arduino-hoz csatlakoztatott LCD-re ki lehet írni.

De jobb és könnyebb összekötni egy ESP-vel. EspEasy & Domoticz komboval folyamatosan lehet monitorozni és tárolni az adatokat.

Arduino kategória további bejegyzései:

  • Arduino multitasking
    Multitasking avagy párhuzamos vezérlés. Jobb kifejezés rá a párhuzamos feladat végrehajtás. Miért is van erre szükség? Nem minden esetben, de…
  • Arduino Nano BMP180 teszt
    BMP180 egy alap szenzor egy időjárás állomás elkészítéséhez. Megkapjuk tőle a légnyomást, hőmérsékletet, és még a tengerszint feletti magasságot is….
  • Arduino pro IDE telepítése Linux-ra
    Arduino programozására eddig a sima Arduino IDE-t használtam. Viszont rátaláltam egy egy alfa kiadásra ami már 2019 októberében megjelent. Jelenleg…
  • Arduino Nano fotodióda teszt
    Fotodióda tesztelése Arduino Nano-val. Az általam használt dióda egy éjszakai fényt adó egységből való, így nem tudom a típusát, sem…
  • Arduino DS1307-RTC dátum, idő beállítás
    Ezt az eszköz már elég régóta használom, de most volt vele csak gondom. És így megosztom, azt a pár egyszerű…