Arduino
OKUDUĞUNUZ KONU
Arduino Nem ve Sıcaklığı LCD’de Gösterme
23

Arduino Nem ve Sıcaklığı LCD’de Gösterme

Yazar : Murat Duran25 Haziran 2015
Projeyi Satın Al
Bu projeyi kurulu çalışır halde yada isterseniz demonte halde satın alabilirsiniz.Proje ile birlikle yapım aşaması resimleri bağlantı şemaları ve kodları açık kaynak olarak gönderilir. "Satın Almak İçin Yukarıda Butona Basınız"

Bu projemizde nem ve sıcaklığı lcd ekranda nasıl gösteririz bundan bahsedeceğiz.Sıcaklık ve nem ölçümü yıllardır kullanılan bir teknoloji biz bunu arduino ile kendimiz programlayarak yapacağız.Evinizde termostat olarak kullanabileceğiniz bir proje olarak düşünebilirsiniz.Öncelikle bu proje sadece evlerde değil otomobillerde buz dolaplarında bilgisayarlarda ve birçok alanda kullanıma uygundur.Projemizde kullanacağımız malzemelerimize bir göz atalım.

1- Arduino UNO
2- Sıcaklık ve Nem Sensörü
3- LCD
4- Jumper Kablo

Eğer aldığınız LCD ekran 16×2 I2C seri dönüştürücüsüne sahipse yukarı aşamaları unutabilirsiniz.Bu dönüştürücü sayesinde bu kadar karmaşık bağlantılar yerine SDA ve SCL girişlerinden sorunsuz işlerinizi halledebiliyorsunuz.Öncelikle I2C nedir? Inter Integrated Circuit kelimelerinin baş harflerinden gelmeketedir. I2C isim hakkı ise Philips ( NXP ) firmasına aittir. Bu yüzden two wire adıyla da kullanılmaktadır.Bu protokol temel olarak 2 hat vardır. Bunlardan biri SCL diğeri SDA hattıdır. SCl ( SerialClock ) veri senkronu için gerekli saat darbe hattıdır. SDA ise data hattıdır. Ayrıca kendine özgü yazma koruması ( WP ) ve çıkış işin (OE) gibi uçları yani pinleri vardır. SCL lojik 1 iken SDA da lojik 1 dan 0 e kadar olan geçiş start ( başlama ) işlemi yaparken yine SCL 1 lojik durumda SDA lojik 0 dan 1 e  olan geçiş stop ( durdurma ) anlamına gelir.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4

byte degree[8] =
{
B00111,
B00101,
B00111,
B00000,
B00000,
B00000,
B00000,
};

LiquidCrystal_I2C lcd(0x27,16,2);

void setup()
{
lcd.init();
lcd.backlight();
lcd.createChar(1, degree);
}

void loop()
{

lcd.setCursor(0, 0);
lcd.print("Nem = % ");
lcd.setCursor(11, 0);
lcd.print(DHT.humidity, 1);
lcd.setCursor(0, 1);
lcd.print("Sicaklik = \1C ");
lcd.setCursor(11, 1);
lcd.print(DHT.temperature,1);

int chk;
;
chk = DHT.read(DHT11_PIN);
switch (chk){
case DHTLIB_OK:
break;
case DHTLIB_ERROR_CHECKSUM:
lcd.clear();
lcd.print("hata");
break;
case DHTLIB_ERROR_TIMEOUT:
lcd.clear();
lcd.print("Sure bitti");
break;
default:
lcd.clear();
lcd.print("Bulunamadi");
break;
}
delay(1000);
}

Projenin bağlantı şeması aşağıdaki resimlerde gösterilmiştir.Buradaki bağlantı şemasına göre bağladıktan sonra kodları arduino içerisine atıyoruz.Daha sonra lcd den değerleri okumaya başlayabiliriz.Bu proje daha da geliştirilebilir.Fikir vermesi açısından mesela sıcaklık 40 dereceyi geçtiğinde fan devreye girebilir.Bu tarz ek özellikler ekleyebilirsiniz.

SİZCE NASIL OLMUŞ?
Beğendim
41%
İlginç
2%
Eh İşte
10%
Anlamadım
8%
Kötü
16%
Berbat
24%
YAZAR HAKKINDA
Murat Duran
Uzun zamandır internetle uğraşıyorum bu internet bilgimi gerçek mesleğimle bütünleştirip yararlı olacağını düşündüğüm Proje Hocam sitesini hayata geçirdim.Hep kendimi geliştirmeyi seven bir yapıya sahip oldum bir şeyi ezberlemektense o şeyi anlamayı tercih ediyorum.Mekanik ve elektronik hep ilgimi çekti bu internet sitesindede bu konularla ve diğer konularla ilgili projeler paylaşıyorum.Şu an Atatürk Üniversitesinde Makine Mühendisliği öğrencisiyim.
23 YORUMLAR
  • Ömer Hanay
    9 Ağustos 2015 at 15:40

    kodlar ve devreyi kurarken çekilen bir video var mı , video sorun değil de kodlar noktasında yardım edebilir misininz kodunuzu yollayabilir misiniz

  • 9 Ağustos 2015 at 17:11

    Devreyi kurarken çekim videosu mevcut değil ama devre şeması mevcut şemaya göre kurabilirsiniz.Ayrıca kodlar konuya eklenmiştir.

  • Burhan Aksoy
    29 Şubat 2016 at 14:08

    Sayın Murat Bey selamlar saygılar. Paylaşmış olduğunuz proje ile ilgili bir sorum olacaktı. Kullandığınız 2×16 LCD I2C/IIC Dönüştürücü Kartı kullanarak mı yaptınız(eldeki lcd yi kullanmak adına) yoksa 16×2 IIC/I2C/TWI Seri LCD Ekran mı kullandınız? İlk seçeneği kullansak sorun çıkarır mı? Soruları mı mazur görün öğrenmeye yeni başladım.
    Cevaplarınız için şimdiden teşekkür eder çalışmalarınızda başarılar dilerim.

  • abdurrahman topkır
    2 Ekim 2016 at 15:43

    Arduino:1.6.12 (Windows 8.1), Kart:”Arduino/Genuino Uno”

    Derleme seçenekleri değiştirildi, tümü yeniden derleniyor.
    C:\Users\apie\Documents\Arduino\Yeni klasör\asasasasas\asasasasas.ino:3:19: fatal error: dht11.h: No such file or directory

    compilation terminated.

    exit status 1
    Error compiling for board Arduino/Genuino Uno.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    şeklinde hata veriyor yardımcı olabilir misiniz?

  • Ada Gerek Yok
    23 Ekim 2016 at 18:16

    Hangi kütüphaneleri kullanacağız nereden indireceğiz

  • Muhammet ULUTOP
    13 Kasım 2016 at 00:52

    Murat bey iyi çalışmalar
    yazmış olduğunuz kudu yazdım ama böyle bir tanımlama hatası veriyor. Yardımcı olursanız sevinirim
    ‘DHTLIB_OK’ was not declared in this scope

  • Muhammet ULUTOP
    13 Kasım 2016 at 00:53

    İyi çalışmalar
    ‘DHTLIB_OK’ was not declared in this scope

    bu şekilde bi tanımlama hatası ile karşılaşıyorum ne yapmalıyım acaba

  • murat doğru
    3 Aralık 2016 at 14:52

    exit status 1
    ‘class LiquidCrystal_I2C’ has no member named ‘init’ hatası alıyorum nasıl düzeltebilirim

  • Serkan Gündoğdu
    9 Aralık 2016 at 22:30

    12c 16×2 lcd ekranı tam olarak kullanamıyorum gönderdiğim metinlerin sadece ilk harfi çıkıyor gerisi gelmiyor misal nem yazdıracaksam sadece N harfi yazılıyor gerisi yok sorun nereden kaynaklanıyor olabilir acaba yardımlarınızı bekliyorum teşekkür ederim.

  • master
    26 Aralık 2016 at 12:50

    iyi günler tanımladığınız derce (0) karakterini uygulamada kullanmamışsınız.
    koddaki kullanımını görmek için güncelleyerek tekrara koyabilir misiniz.
    teşekkürler

  • Ahmet
    1 Haziran 2017 at 01:50

    murat bey iyi günler devreyi kurdum kütüphaneleri ekledim ancak ;

    ‘DHTLIB_OK’ was not declared in this scope

    şeklinde bir hata alıyorun ne yapmalıyım yarına ödevimi teslim etmem lazım.

    iyi iyi çalışmalar.

  • tolgahan
    16 Eylül 2017 at 19:53

    #include kitaplıgını atarmısın abi acil lazım

  • tolgahan
    30 Eylül 2017 at 16:18

    Arduino:1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Kart:”Arduino/Genuino Uno”

    C:\Users\Win7\Documents\Arduino\sketch_sep16b\lcd_ekran_ile_s_s___l__m_\lcd_ekran_ile_s_s___l__m_.ino: In function ‘void setup()’:

    lcd_ekran_ile_s_s___l__m_:22: error: ‘class LiquidCrystal_I2C’ has no member named ‘init’

    lcd.init();

    ^

    C:\Users\Win7\Documents\Arduino\sketch_sep16b\lcd_ekran_ile_s_s___l__m_\lcd_ekran_ile_s_s___l__m_.ino: In function ‘void loop()’:

    lcd_ekran_ile_s_s___l__m_:43: error: ‘DHTLIB_OK’ was not declared in this scope

    case DHTLIB_OK:

    ^

    lcd_ekran_ile_s_s___l__m_:45: error: ‘DHTLIB_ERROR_CHECKSUM’ was not declared in this scope

    case DHTLIB_ERROR_CHECKSUM:

    ^

    lcd_ekran_ile_s_s___l__m_:49: error: ‘DHTLIB_ERROR_TIMEOUT’ was not declared in this scope

    case DHTLIB_ERROR_TIMEOUT:

    ^

    exit status 1
    ‘class LiquidCrystal_I2C’ has no member named ‘init’

    C:\Users\Win7\Documents\Arduino\libraries\Adafruit_Sensor-master içerisinde geçersiz kütüphane bulundu: C:\Users\Win7\Documents\Arduino\libraries\Adafruit_Sensor-master
    C:\Users\Win7\Documents\Arduino\libraries\Adafruit_Sensor-master içerisinde geçersiz kütüphane bulundu: C:\Users\Win7\Documents\Arduino\libraries\Adafruit_Sensor-master

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

YORUM YAP