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.
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.
Комментарии