Havanın bir ağırlığı olduğunu biliyor muydunuz? Üzerimizdeki hava katmanının ağırlığına "Atmosfer Basıncı" denir. BMP180 sensörü bu basıncı o kadar hassas ölçer ki, masanın üzerinden yere koyduğunuzda bile yükseklik farkını (30-40cm) anlayabilir.
1. Yükseklik Nasıl Ölçülür?
Yukarı çıktıkça üzerimizdeki hava azalır, dolayısıyla basınç düşer. Bu sensör aslında bir terazi gibi havanın ağırlığını tartar. Basınç düşükse "Dağdayım", yüksekse "Deniz seviyesindeyim" der.
2. Donanım ve Bağlantı
BMP180, tıpkı LCD ekran ve OLED ekran gibi I2C Protokolünü kullanır. Yani bağlantı çok basittir: SDA ve SCL.
🔌 Pin Bağlantıları (Uno)
- VCC ➔ 3.3V veya 5V (Modül tipine göre*)
- GND ➔ GND
- SCL ➔ A5 (Saat Hattı)
- SDA ➔ A4 (Veri Hattı)
3. Yazılım (Adafruit BMP085)
🛠️ Kütüphane Kurulumu
Arduino IDE > Kütüphaneleri Yönet kısmına girin ve "Adafruit BMP085 Library" aratıp kurun. (BMP180, eski BMP085'in güncel halidir, kütüphane aynıdır).
#include <Wire.h> #include <Adafruit_BMP085.h> Adafruit_BMP085 bmp; void setup() { Serial.begin(9600); // Sensörü Başlat if (!bmp.begin()) { Serial.println("BMP180 bulunamadi! Baglantilari kontrol et."); while (1) {} // Hata varsa dur } } void loop() { Serial.print("Sicaklik = "); Serial.print(bmp.readTemperature()); Serial.println(" *C"); Serial.print("Basinc = "); Serial.print(bmp.readPressure()); Serial.println(" Pa"); // Tahmini Yükseklik (Standart 1013.25 hPa'ya göre) Serial.print("Yukseklik = "); Serial.print(bmp.readAltitude()); Serial.println(" metre"); // Daha Hassas Yükseklik İçin: // Deniz seviyesindeki güncel basıncı (Meteorolojiden) buraya girin. // Örn: 101500 Pa // Serial.print(bmp.readAltitude(101500)); Serial.println(); delay(1000); }
4. Basınç ile Hava Tahmini
Dijital Meteoroloji: Sadece anlık basınca bakarak hava durumunu tahmin edebilirsiniz.
- 📈 Basınç Yükseliyorsa: Hava açıyor, güneşli olacak. ☀️
- 📉 Basınç Düşüyorsa: Bulutlar geliyor, yağmur veya fırtına olabilir. ⛈️