BMP180 Nedir? Nasıl Çalışır? Arduino ile Hava Basıncı, Sıcaklık ve Rakım Sensörü Kullanımı
BMP180 Dijital Hava Basıncı Sensörü, atmosfer basıncı ve sıcaklık ölçümü yapabilen, I2C haberleşme protokolüyle çalışan hassas bir barometrik sensör modülüdür. Arduino, ESP32, Raspberry Pi ve benzeri geliştirme kartlarıyla birlikte kullanılarak hava durumu istasyonu, dijital barometre, rakım ölçer ve çevresel veri takip sistemleri geliştirilebilir.
Arduino projelerinde ortam basıncını ölçmek, hava değişimlerini takip etmek veya basınç değerinden yaklaşık rakım hesabı yapmak için BMP180 oldukça pratik bir çözümdür. I2C haberleşme kullandığı için yalnızca iki veri piniyle çalışır ve LCD, OLED, SD kart veya ESP32 gibi farklı modüllerle aynı projede rahatça kullanılabilir. Bu yazıda BMP180 sensörünün ne olduğunu, nasıl çalıştığını, pin yapısını, Arduino bağlantısını ve örnek kod kullanımını adım adım inceleyeceğiz.
BMP180 Nedir ve Nasıl Çalışır?
BMP180, atmosfer basıncını dijital olarak ölçebilen barometrik bir sensördür. Sensör içerisindeki hassas mikroelektromekanik yapı, bulunduğu ortamdaki hava basıncı değişimini algılar. Bu fiziksel değişim sensörün dahili devresi tarafından işlenir ve Arduino’ya dijital veri olarak aktarılır.
Atmosfer basıncı deniz seviyesinde daha yüksek, yükseğe çıkıldıkça daha düşüktür. BMP180 bu basınç değişimini ölçerek sadece hava basıncı verisi sağlamakla kalmaz, aynı zamanda yaklaşık rakım hesabı yapılmasına da yardımcı olur. Sensör ayrıca sıcaklık ölçümü de yapabilir.
BMP180 Ne Ölçer?
BMP180 sensörü temel olarak hava basıncı ölçmek için kullanılır. Bunun yanında sıcaklık verisi de sağlayabilir. Basınç verisi kullanılarak yaklaşık rakım değeri hesaplanabilir.
| Ölçüm | Açıklama | Kullanım Alanı |
|---|---|---|
| Basınç | Atmosfer basıncını Pa veya hPa cinsinden ölçer. | Barometre, hava durumu istasyonu, çevresel takip |
| Sıcaklık | Sensör çevresindeki sıcaklığı ölçer. | Hava durumu ve veri kayıt projeleri |
| Rakım | Basınç değerinden yaklaşık yükseklik hesaplanabilir. | Drone, taşınabilir ölçüm cihazları, rakım ölçer projeleri |
Proje Uygulama Videosu
BMP180 sensörünün Arduino ile bağlantısını, kütüphane kurulumunu, seri monitörde basınç/sıcaklık/rakım değerlerini okumayı ve örnek proje uygulamasını aşağıdaki video alanına ekleyebilirsiniz:
BMP180 Pin Yapısı
BMP180 GY-68 modülü I2C haberleşme ile çalıştığı için bağlantısı oldukça basittir. Modül üzerinde genellikle VCC, GND, SCL ve SDA pinleri bulunur.
| Modül Pini | Görevi | Arduino UNO Bağlantısı |
|---|---|---|
| VCC | Besleme girişi | 3.3V veya modül destekliyorsa 5V |
| GND | Toprak bağlantısı | GND |
| SCL | I2C saat hattı | A5 |
| SDA | I2C veri hattı | A4 |
Arduino ile BMP180 Kullanımı İçin Gerekli Malzemeler
| Gerekli Malzeme | Ürün Linki |
|---|---|
| Arduino Uno | Arduino Uno R3 Klon + USB Kablo |
| BMP180 Basınç Sensörü | BMP180 Dijital Hava Basıncı Barometrik Sensör GY-68 |
| Breadboard | Büyük Breadboard 830 Pin |
| Jumper Kablo | 40 Adet Erkek-Dişi Jumper Kablo |
Arduino BMP180 Bağlantıları
BMP180 sensörü Arduino UNO ile I2C hattı üzerinden haberleşir. Arduino UNO’da SDA pini A4, SCL pini ise A5 olarak kullanılır.
| BMP180 Pini | Arduino UNO Bağlantısı |
|---|---|
| VCC | 3.3V veya modül destekliyorsa 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Arduino BMP180 Kod Örneği
BMP180 sensörünü Arduino ile kullanmak için Arduino IDE üzerinden Adafruit BMP085 Library kütüphanesini kurabilirsiniz. BMP180 sensörü birçok örnekte BMP085 kütüphanesi ile kullanılabilir. Aşağıdaki kod sıcaklık, basınç ve yaklaşık rakım değerlerini Seri Monitör ekranına yazdırır.
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("BMP180 sensoru bulunamadi!");
Serial.println("Baglantilari ve I2C hattini kontrol edin.");
while (1) {}
}
Serial.println("BMP180 sensoru baslatildi.");
}
void loop() {
float sicaklik = bmp.readTemperature();
int32_t basinc = bmp.readPressure();
float rakim = bmp.readAltitude();
Serial.print("Sicaklik: ");
Serial.print(sicaklik);
Serial.println(" C");
Serial.print("Basinc: ");
Serial.print(basinc);
Serial.println(" Pa");
Serial.print("Basinc: ");
Serial.print(basinc / 100.0);
Serial.println(" hPa");
Serial.print("Yaklasik Rakim: ");
Serial.print(rakim);
Serial.println(" m");
Serial.println("----------------------");
delay(1000);
}
Deniz Seviyesi Basıncı ile Daha Doğru Rakım Hesabı
BMP180 ile rakım hesabı yapılırken kullanılan deniz seviyesi basıncı değeri önemlidir. Varsayılan hesaplamalarda standart atmosfer değeri kullanılır. Ancak bulunduğunuz bölgedeki gerçek deniz seviyesi basıncı farklıysa rakım değerinde sapma oluşabilir.
Daha doğru sonuç almak için bulunduğunuz bölgedeki güncel deniz seviyesi basıncı değeri kullanılabilir. Aşağıdaki örnekte deniz seviyesi basıncı 1013.25 hPa olarak alınmıştır.
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
float denizSeviyesiBasinc = 101325; // Pa cinsinden 1013.25 hPa
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("BMP180 bulunamadi!");
while (1) {}
}
}
void loop() {
float rakim = bmp.readAltitude(denizSeviyesiBasinc);
Serial.print("Duzeltilmis Yaklasik Rakim: ");
Serial.print(rakim);
Serial.println(" m");
delay(1000);
}
BMP180 Kullanım Alanları
BMP180 sensörü; basınç, sıcaklık ve yaklaşık rakım verisi gerektiren birçok Arduino ve IoT projesinde kullanılabilir. Özellikle çevresel veri takibi ve hava durumu uygulamaları için oldukça kullanışlıdır.
- Arduino hava durumu istasyonu
- Dijital barometre projeleri
- Rakım ölçer uygulamaları
- Drone ve uçuş veri takip sistemleri
- ESP32 ile kablosuz basınç ölçüm sistemleri
- LCD veya OLED ekranlı sıcaklık/basınç göstergeleri
- IoT tabanlı çevresel veri toplama projeleri
- SD kart ile veri kayıt sistemleri
BMP180 ile LCD Ekranda Basınç ve Sıcaklık Gösterme
BMP180 sensörü, 16x2 LCD veya OLED ekran ile birlikte kullanıldığında taşınabilir bir hava durumu istasyonu yapılabilir. Basınç, sıcaklık ve yaklaşık rakım değerleri ekranda gösterilerek kullanıcının anlık çevresel verileri takip etmesi sağlanabilir.
I2C LCD ekran kullanıyorsanız BMP180 ve LCD aynı I2C hattına bağlanabilir. Arduino UNO üzerinde her iki modülün SDA pini A4’e, SCL pini A5’e bağlanır. I2C adresleri farklı olduğu sürece aynı hatta birden fazla I2C cihaz kullanılabilir.
BMP180 Kullanırken Dikkat Edilmesi Gerekenler
- Besleme gerilimini kontrol edin: Bazı BMP180 modülleri 3.3V, bazı GY-68 kartları regülatör sayesinde 5V ile uyumlu olabilir. Ürün kartındaki bilgiye göre bağlantı yapılmalıdır.
- I2C bağlantısını doğru yapın: Arduino UNO’da SDA A4, SCL A5 pinidir.
- Kütüphane kurulumunu kontrol edin: Sensör bulunamadı hatası alırsanız kütüphane ve bağlantıları kontrol edin.
- Rakım hesabı yaklaşık değerdir: Hava basıncı hava durumuna göre değiştiği için rakım hesabı mutlak ölçüm değildir.
- Sensörü sıcak bileşenlerden uzak tutun: Regülatör, motor sürücü veya güç kaynağı gibi ısı üreten parçalar sıcaklık ölçümünü etkileyebilir.
- Uzun kablo kullanmayın: I2C hattında uzun kablolar haberleşme hatalarına neden olabilir.
BMP180 Sensörü Proje Kodları
BMP180 için basınç okuma, sıcaklık ölçümü, rakım hesabı, LCD ekran gösterimi ve ESP32 ile kablosuz veri aktarımı gibi örnek kodları GitHub deposuna ekleyebilirsiniz.
Robomer’de Bulabileceğiniz BMP180 Barometrik Sensör
Arduino, ESP32 ve Raspberry Pi projelerinizde hava basıncı, sıcaklık ve rakım verisi ölçmek için BMP180 Dijital Hava Basıncı Barometrik Sensör GY-68 modülünü Robomer üzerinden inceleyebilirsiniz.
BMP180 Dijital Hava Basıncı Barometrik Sensör GY-68
BMP180 modülü; hava basıncı, sıcaklık ve yaklaşık rakım ölçümü yapmak isteyen Arduino kullanıcıları için ideal bir sensör seçeneğidir. Hava durumu istasyonu, barometre, rakım ölçer ve çevresel veri projelerinde kullanılabilir.
BMP180 Ürününü İnceleSık Karşılaşılan Sorunlar ve Çözümleri
| Sorun | Muhtemel Sebep | Çözüm |
|---|---|---|
| BMP180 sensörü bulunamadı | SDA/SCL bağlantısı hatalı, besleme yanlış veya kütüphane uyumsuz | A4/A5 bağlantılarını, VCC/GND hattını ve kütüphaneyi kontrol edin |
| Basınç değeri beklenenden farklı | Hava durumu değişimi veya sensör konumu etkili olabilir | Değerleri yerel hava basıncıyla karşılaştırın, sensörü sabit ortamda test edin |
| Rakım değeri yanlış görünüyor | Deniz seviyesi basıncı varsayılan alınmış olabilir | Güncel deniz seviyesi basıncıyla düzeltilmiş rakım hesabı yapın |
| Sıcaklık değeri yüksek çıkıyor | Sensör sıcak bir bileşene yakın olabilir | Sensörü güç devresi, regülatör veya motor sürücülerden uzak konumlandırın |
| LCD ile birlikte çalışmıyor | I2C adres çakışması veya bağlantı hatası olabilir | I2C scanner kodu ile adresleri kontrol edin |
Sık Sorulan Sorular
BMP180 ile sıcaklık ölçülür mü?
Evet. BMP180 sensörü basınç ölçümünün yanında sıcaklık ölçümü de yapabilir. Ancak sıcaklık ölçümü daha çok sensörün kendi çevresindeki sıcaklığı gösterir.
BMP180 ile rakım ölçümü doğru mudur?
BMP180 ile rakım hesabı yapılabilir; fakat bu değer yaklaşık sonuç verir. Hava basıncı hava durumuna göre değiştiği için doğru rakım hesabı için güncel deniz seviyesi basıncı kullanılmalıdır.
BMP180 Arduino UNO ile çalışır mı?
Evet. BMP180 modülü Arduino UNO ile I2C hattı üzerinden kullanılabilir. SDA pini A4’e, SCL pini A5’e bağlanır.
BMP180 ESP32 ile kullanılabilir mi?
Evet. BMP180 ESP32 ile de kullanılabilir. ESP32’de SDA ve SCL pinleri kart modeline göre değişebilir. Kod tarafında I2C pinleri gerektiğinde ayrıca tanımlanabilir.
BMP180 ile BME280 arasındaki fark nedir?
BMP180 basınç ve sıcaklık ölçümü yapar. BME280 ise basınç ve sıcaklığa ek olarak nem ölçümü de yapabilir. Nem verisi de gerekiyorsa BME280 daha kapsamlı bir seçenektir.
Sonuç
BMP180 Dijital Hava Basıncı Barometrik Sensörü, Arduino projelerinde atmosfer basıncı, sıcaklık ve yaklaşık rakım verisi ölçmek için kullanışlı bir modüldür. I2C haberleşme sayesinde az pin kullanır ve LCD, OLED, ESP32 veya veri kayıt modülleriyle birlikte kolayca kullanılabilir.
Hava durumu istasyonu, rakım ölçer, dijital barometre, drone veri takip sistemi ve IoT tabanlı çevresel ölçüm projelerinde BMP180 sensörü tercih edilebilir. Robomer’de bulunan BMP180 GY-68 modülü ile kendi basınç ve rakım ölçüm projelerinizi kolayca geliştirebilirsiniz.
Hava Durumu ve Basınç Ölçüm Projelerinizi Kurun
Arduino, ESP32 veya Raspberry Pi projelerinizde atmosfer basıncı, sıcaklık ve yaklaşık rakım ölçmek için BMP180 Dijital Hava Basıncı Barometrik Sensör GY-68 modülünü Robomer üzerinden inceleyebilirsiniz.
BMP180 Sensörünü İncele