Arduino ile Dijital Ortam İstasyonu: Sıcaklık, Nem ve Basınç Ölçer Yapımı
Arduino Uno ve BME280 sensörünü birleştirerek eviniz veya laboratuvarınız için kendi dijital ortam istasyonunuzu kurun; sıcaklık, nem ve basınç verilerini I2C üzerinden okuyup anlık olarak takip edin.
1Neden BME280 Sensörünü Seçiyoruz?
Çevre koşullarını takip etmek, robotik ve otomasyon projelerinin temelini oluşturur. BME280, piyasada bulunan diğer sensörlere (örneğin DHT serisi veya BMP180) göre üç temel çevresel veriyi tek bir küçük pakette sunarak karmaşıklığı azaltır. Ayrıca I2C haberleşme protokolü sayesinde, Arduino'da sadece iki dijital pin kullanarak veri alışverişi yapılabilir; bu da daha karmaşık projeler için fazladan pin bırakır.
2Gerekli Malzemeler
Projenizi tamamlamak için ihtiyacınız olan temel bileşenler şunlardır:
3Devre Kurulumu (Donanım Bağlantısı)
BME280 sensörü I2C protokolünü kullandığı için, bağlantı son derece basittir. Arduino Uno'da I2C (Wire) haberleşmesi için özel pinler A4 (SDA) ve A5 (SCL)'dir.
Arduino ile BME280 sensörü arasındaki I2C bağlantı şeması
Önemli Not
Arduino Uno'da I2C (Wire) haberleşmesi için özel pinler A4 (SDA) ve A5 (SCL)'dir. Bu pinleri başka bir amaçla kullanmayın.
Robotik dünyasına adım atmak için ilk adımı atın!
Eğitim materyallerimizi ve projelerimizi keşfederek hemen öğrenmeye başlayın. Blok tabanlı kodlamaya başlayın.
Başla4Arduino Kodlama (C++)
BME280'den veri okumak için Wire.h kütüphanesine ek olarak, kullanımı kolaylaştıran Adafruit BME280 Kütüphanesi'ni kullanacağız. Bu kütüphaneyi Arduino IDE'nin Kütüphane Yöneticisi'nden (Library Manager) indirip kurmalısınız.
#include <Wire.h>
#include <Adafruit_BME280.h>
// I2C adresi (Çoğu BME280 modülü 0x76 kullanır. Sizinki 0x77 ise değiştirin.)
#define BME_ADDRESS 0x76
Adafruit_BME280 bme; // BME280 sensör objesi
void setup() {
Serial.begin(9600);
Serial.println(F("BME280 Ortam İstasyonu Başlatılıyor..."));
if (!bme.begin(BME_ADDRESS)) {
Serial.println(F("BME280 bulunamadı! Bağlantıları kontrol edin."));
while (1);
}
Serial.println(F("Sensör başarıyla başlatıldı."));
}
void loop() {
// Sensör verilerini okuma
float sicaklik = bme.readTemperature();
float basinç = bme.readPressure() / 100.0F; // Pascal'ı Hektopaskal'a (hPa) çeviriyoruz
float nem = bme.readHumidity();
// Verileri Seri Port'a yazdırma
Serial.print(F("Sıcaklık: "));
Serial.print(sicaklik);
Serial.print(F(" °C"));
Serial.print(F(" | Nem: "));
Serial.print(nem);
Serial.print(F(" %"));
Serial.print(F(" | Basınç: "));
Serial.print(basinç);
Serial.println(F(" hPa"));
delay(2000); // 2 saniyede bir veri oku
}
Kodu Arduino kartınıza yükledikten sonra, Arduino IDE'deki Seri Port Ekranını (Serial Monitor) açarak verileri anlık olarak görebilirsiniz. Bağlantı hızının (9600 Baud) kodda belirtilen hızla aynı olduğundan emin olun.
5Veri Görselleştirme ve İleri Geliştirmeler
Sadece sayısal verilerle yetinmek istemiyorsanız, bu projeyi bir adım öteye taşıyabilirsiniz:
- Grafiksel Takip: Arduino IDE'nin sağ üst köşesindeki Seri Çizici (Serial Plotter) özelliğini kullanarak sıcaklık, nem ve basınç değişimlerini zaman içinde görsel olarak takip edebilirsiniz.
- LCD Ekran Ekleme: Ölçülen değerleri bilgisayar yerine 16x2 LCD veya OLED ekran üzerine yazdırarak projenizi tamamen taşınabilir bir cihaza dönüştürebilirsiniz.
- IoT (Nesnelerin İnterneti): ESP8266 veya ESP32 gibi Wi-Fi özellikli bir kart kullanarak, verileri internet üzerinden (örneğin ThingSpeak platformuna) gönderip, cep telefonunuzdan anlık hava durumu takibi yapabilirsiniz.
Bu temel proje, meteoroloji, çevre izleme veya akıllı ev otomasyonu gibi daha büyük projelere geçiş için harika bir başlangıç noktasıdır.
?Sıkça Sorulan Sorular
BME280 sensörü hangi I2C adresini kullanır?
Çoğu BME280 modülü varsayılan olarak 0x76 adresini kullanır, ancak bazı kartlarda bu adres 0x77 olabilir. Sensör bulunamıyorsa kod içindeki BME_ADDRESS değerini değiştirerek diğer adresi deneyin.
BME280 ile DHT11/DHT22 arasındaki fark nedir?
DHT serisi sadece sıcaklık ve nem ölçerken, BME280 aynı zamanda barometrik basıncı da ölçer ve I2C protokolü sayesinde daha hızlı, daha hassas ve daha az pin kullanan bir okuma sunar.
Arduino Uno'da I2C bağlantısı için hangi pinler kullanılır?
Arduino Uno'da I2C haberleşmesi için sabit pinler kullanılır: veri hattı için Analog 4 (A4), saat sinyali için Analog 5 (A5) pini kullanılır.
Robotik dünyasına adım atmak için ilk adımı atın!
Eğitim materyallerimizi ve projelerimizi keşfederek hemen öğrenmeye başlayın. Blok tabanlı kodlamaya başlayın.
Başla
