Arduino ile Hava Durumu İstasyonu: Sıcaklık, Nem ve Basınç Ölçümü
Arduino ile Kendi Hava Durumu İstasyonunuzu Kurun!
Merhaba sevgili Arduino severler!
Bugün, hepimizin merak ettiği hava durumunu kendi imkanlarımızla ölçebileceğimiz bir proje üzerinde çalışacağız: Arduino ile Hava Durumu İstasyonu! Bu proje sayesinde ortam sıcaklığını, nemini ve hatta hava basıncını ölçebilecek, elde ettiğiniz verileri bir LCD ekranda görüntüleyebileceksiniz. Hem eğlenceli, hem de öğretici bu projeye gelin birlikte göz atalım.
Gerekli Malzemeler
* Arduino UNO (veya benzeri bir Arduino kartı) * BMP180 Barometrik Basınç Sensörü (Sıcaklık ölçümü de yapabilir) * DHT11 veya DHT22 Sıcaklık ve Nem Sensörü * 16x2 LCD Ekran * 10k Potansiyometre (LCD kontrast ayarı için) * Jumper Kablolar * BreadboardDevre Şeması ve Bağlantılar
Bağlantıları doğru yapmak, projenin sağlıklı çalışması için çok önemli. İşte dikkat etmeniz gerekenler:
- BMP180 Sensörü Bağlantıları:
- VCC pini -> Arduino 3.3V pinine
- GND pini -> Arduino GND pinine
- SDA pini -> Arduino A4 pinine (SDA)
- SCL pini -> Arduino A5 pinine (SCL)
- DHT11 Sensörü Bağlantıları:
- VCC pini -> Arduino 5V pinine
- DATA pini -> Arduino Dijital 2 numaralı pinine (Örneğin)
- GND pini -> Arduino GND pinine
- LCD Ekran Bağlantıları:
- VSS pini -> Arduino GND pinine
- VDD pini -> Arduino 5V pinine
- VO pini -> 10k Potansiyometrenin orta ucuna
- RS pini -> Arduino Dijital 12 numaralı pinine (Örneğin)
- RW pini -> Arduino GND pinine
- E pini -> Arduino Dijital 11 numaralı pinine (Örneğin)
- D4 pini -> Arduino Dijital 5 numaralı pinine (Örneğin)
- D5 pini -> Arduino Dijital 4 numaralı pinine (Örneğin)
- D6 pini -> Arduino Dijital 3 numaralı pinine (Örneğin)
- D7 pini -> Arduino Dijital 2 numaralı pinine (Örneğin)
- A pini (Arka Işık Anot) -> Arduino 5V pinine (100-220 Ohm direnç ile)
- K pini (Arka Işık Katot) -> Arduino GND pinine
Bu bağlantıları bir breadboard üzerinde kurmak, işinizi oldukça kolaylaştıracaktır. Potansiyometreyi LCD ekranın kontrastını ayarlamak için kullanacağız. Bağlantıları tamamladıktan sonra kod kısmına geçebiliriz.
Arduino Kodu
Aşağıdaki Arduino kodunu kullanarak sensörlerden verileri okuyabilir ve LCD ekranda görüntüleyebilirsiniz. Kod, BMP180 ve DHT11 sensörleri için gerekli kütüphaneleri içermektedir. Bu kütüphaneleri Arduino IDE'nize yüklemeyi unutmayın.
#include <Wire.h>
#include <LiquidCrystal.h> // LCD kütüphanesi
#include <DHT.h> // DHT sensörü kütüphanesi
#include <BMP180.h> // BMP180 sensörü kütüphanesi
// LCD pin tanımlamaları
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// DHT11 pin tanımlaması
#define DHTPIN 7 // DHT11 sensörünün bağlı olduğu pin
#define DHTTYPE DHT11 // DHT11 sensör tipi (DHT22 kullanıyorsanız DHT22 olarak değiştirin)
DHT dht(DHTPIN, DHTTYPE);
// BMP180 nesnesi oluşturma
BMP180 bmp180;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2); // LCD'yi başlat
lcd.print("Hava Durumu");
delay(2000);
lcd.clear();
// BMP180 başlatma
if (!bmp180.begin()) {
Serial.println("BMP180 başlatılamadı!");
lcd.print("BMP180 Hatasi");
while (1);
}
dht.begin(); // DHT sensörünü başlat
}
void loop() {
// DHT11'den sıcaklık ve nem okuma
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// BMP180'den basınç okuma
double pressure = bmp180.readPressure();
double altitude = bmp180.readAltitude(); // deniz seviyesinden yükseklik (isteğe bağlı)
// Hata kontrolü
if (isnan(humidity) || isnan(temperature)) {
Serial.println("DHT sensöründen veri okunamadı!");
lcd.clear();
lcd.print("DHT Hatasi");
} else {
// LCD'ye verileri yazdırma
lcd.setCursor(0, 0); // İlk satır, ilk sütun
lcd.print("Sicaklik: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0, 1); // İkinci satır, ilk sütun
lcd.print("Nem: ");
lcd.print(humidity);
lcd.print(" %");
}
Serial.print("Sicaklik: ");
Serial.print(temperature);
Serial.print(" *C, Nem: ");
Serial.print(humidity);
Serial.print(" %, Basinc: ");
Serial.print(pressure / 100, 2); // Basıncı hPa cinsinden göster
Serial.println(" hPa");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Basinc: ");
lcd.print(pressure / 100, 2);
lcd.print(" hPa");
lcd.setCursor(0,1);
lcd.print("Yukseklik: ");
lcd.print(altitude);
lcd.print(" m");
delay(2000);
lcd.clear();
}
Bu kodu Arduino IDE'nize kopyalayıp yükleyin. LCD ekranda sıcaklık, nem ve basınç değerlerini görmeye başlayacaksınız.
Sonuç
Tebrikler! Arduino ile kendi hava durumu istasyonunuzu başarıyla kurdunuz. Bu proje, sensörler hakkında bilgi edinmek ve Arduino programlama becerilerinizi geliştirmek için harika bir başlangıç. Daha da ileri gitmek isterseniz, bu verileri bir SD karta kaydedebilir, internete yükleyebilir veya daha gelişmiş bir arayüz oluşturabilirsiniz.
Unutmayın, bu sadece bir başlangıç! Arduino dünyası keşfedilmeyi bekleyen sayısız proje ile dolu. Bir sonraki projede görüşmek üzere!
Etiketler: Arduino, Hava Durumu İstasyonu, Sıcaklık, Nem, Basınç, BMP180, DHT11, LCD, Proje, Elektronik, Kendin Yap
```
0 yorum: