Arduino Uno és a BMP180

A BMP180 egy légnyomás mérő IC. Beépített hőmérővel. Ebay-ről könnyen beszerezhető. Az én érzékelőm az I2C kommunikációs rendszert használ.

A drótozás:

ArduinoBMP180
SCLSCL
Vin3.3V
GNDGND
SDASDA

Én a LowPowerLab könyvtárát használom. https://github.com/LowPowerLab/SFE_BMP180

A könyvtárban található példát módosítottam egy kicsit.

#include <SFE_BMP180.h>
#include <Wire.h>


SFE_BMP180 pressure;

#define ALTITUDE 123.34 //A szenzor fizikai magassága a tengerszinttől

void setup()
{
  Serial.begin(9600);
  

  if (pressure.begin())
    Serial.println("BMP180 működik");
  else
  {
   
    Serial.println("BMP180 hiba");
    while(1); // Pause forever.
  }
}

void loop()
{
  char status;
  double T,P,p0,a;
  Serial.println();
  Serial.print("Beállított magasság: ");
  Serial.print(ALTITUDE,0);
  Serial.print(" m");

  
 

  status = pressure.startTemperature();
  if (status != 0)
  {
    
    delay(status);

    status = pressure.getTemperature(T);
    if (status != 0)
    {
     
      Serial.print("Hőmérséklet: ");
      Serial.print(T,2);
      Serial.print(" Celsius, ");
      
      
  

      status = pressure.startPressure(3);
      if (status != 0)
      {
        
        delay(status);

        
        status = pressure.getPressure(P,T);
        if (status != 0)
        {
          // Print out the measurement:
          Serial.print("Abszolút légnyomás: ");
          Serial.print(P,2);
          Serial.print(" hPa, ");


          p0 = pressure.sealevel(P,ALTITUDE); 
          Serial.print("Relatív légnyomás: ");
          Serial.print(p0,2);
          Serial.print(" hPa, ");
          


          a = pressure.altitude(P,p0);
          Serial.print("Számolt magasság: ");
          Serial.print(a,0);
          Serial.print(" m");
  
        }
        else Serial.println("Hiba a nyomás lekérdezésekor");
      }
      else Serial.println("Hiba/légnyomás/");
    }
    else Serial.println("Hiba a hőmérséklet mérésekor");
  }
  else Serial.println("Hiba/Hőmérséklet/");

  delay(5000);  
}

A kód elején van egy olyan változó aminek a neve “ALTITUDE”, ezt kell módosítani. Ide kerül az érzékelő tengerszinttől mért magassága. Ha ezt nem módosítjuk akkor a relativ légnyomás értékünk rosszul fog megjelenni. Ezt a magasságot nekem nem sikerült a GoogleMaps-el kinyerni ezért egy másik weboldalhoz fordultam. https://www.daftlogic.com/sandbox-google-maps-find-altitude.htm

További infók az Időképen, a gyakran ismételt kérdések oldalon. https://www.idokep.hu/hirek/gyakran-ismetelt-kerdesek

This entry was posted in Arduino and tagged , , , , . Bookmark the permalink.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Ez a weboldal az Akismet szolgáltatását használja a spam kiszűrésére. Tudjunk meg többet arról, hogyan dolgozzák fel a hozzászólásunk adatait..