Arduino Uno İle Hava Durumu Kontrolü Projesi

Bu projemizde Arduino Uno kullanarak ortamdaki sıcaklık ve nem değerlerini DHT11 kullanarak LCD ekrana yazdıracağız. Kullanılacak malzemeler aşağıda verilmiştir.

  • Arduino Uno

  • Röle Modülü

  • DHT11

  • LCD (16x2)

  • 9V Pil

  • Pil Başlığı

  • Jumper Kablolar

  • 10K Potansiyometre

  • Breadboard

Devremizi kurmaya başlıyoruz. Devre şeması aşağıda verilmiştir.


Kodlarımızı yazmaya başlamadan önce DHT11 ve LCD için kütüphane eklemesi yapılmalıdır. Kütüphaneleri eklemek için aşağıda belirtilen şekilde 'Kütüphaneleri Yönet' sekmesine girerek LiquidCrystal ve DHT kütüphanesini yüklüyoruz.

Kodumuzu yazmaya başlıyoruz. İlk etapta DHT'nin hangi pine bağlı olduğunu ve hangi tip DHT kullanıldığını #define komutu ile belirtiyoruz. Bu özelliklere sahip bir nesne tanımlama ile kodu yazmaya devam ediyoruz.

#define DHTPIN 7
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

LCD ekranın hangi pinlere bağlı olduğunu sırasıyla yazıp belirtiyoruz.

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() içerisine Röle'nin giriş işlemi olduğunu belirtiyoruz ve düşük olduğunu tanımlıyoruz.

 pinMode(role, OUTPUT);
 digitalWrite(role,LOW);

void loop() içerisinde sıcaklık ve nem değerlerinin 'int' cinsinden çıktısını alacak şekilde okunmasını sağlıyoruz.

 int sicaklik = dht.readTemperature();
 int nem = dht.readHumidity();

LCD ekrana sıcaklık ve nem sensörlerinin çıktısını yazdırmak için kod satırlarını yazıyoruz.

  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Sicaklik : ");
  lcd.print(sicaklik);
  lcd.print("C");

  lcd.setCursor(0,1);
  lcd.print("Nem : ");
  lcd.print(nem);
  lcd.print("%");

  delay(2000);

Kodların tamamı aşağıdaki gibi verilmiştir.

#include <Wire.h>
#include <LiquidCrystal.h>
#include <DHT.h>

#define DHTPIN 7
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int role = 13;


void setup() {
  pinMode(role, OUTPUT);
  digitalWrite(role,LOW);

  Serial.begin(9600);

  lcd.begin(16,2);
  lcd.print("Sicaklik Olcme");
  delay(1000);
  dht.begin();

}

void loop() {

  int sicaklik = dht.readTemperature();
  int nem = dht.readHumidity();
  
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Sicaklik : ");
  lcd.print(sicaklik);
  lcd.print("C");

  lcd.setCursor(0,1);
  lcd.print("Nem : ");
  lcd.print(nem);
  lcd.print("%");

  delay(2000);

}

LCD ekrandan aldığımız çıktılar aşağıda verilmilmiştir.














Son Paylaşımlar