İçindekiler
Arduino I2C 16×2 LCD ve DHT 11 Sensör Kullanımı
Merhaba arkadaşlar arduino ile çılgın projelerde olabildiğince hızlı ilerlemeye devam ediyoruz. Bu yazımızın konusu arduino I2C 16×2 LCD ve DHT 11 ısı ve nem sensörü kullanarak sesörden aldığımız değerleri lcd ye yazdırmayı öğreneceğiz. 🙂 Bu proje ile dht 11 sensörümüzü bilgisayardan ayırmış olup, istediğimiz her hangi bir yerde ister termostat isterseniz de termometre olarak kullanabileceksiniz. İsterseniz zaman kaybetmeden hemen işe koyulalım. 🙂
Malzeme Listesi
1- Herhangi Bir Arduino Modeli
2- Dht 11 Sıcaklık Ve Nem Sensörü
3- I2C 16X2 LCD
4- Breadboard Ve Jumper Kablolar
Not: Tüm bu malzemeleri elektronik parça satan yerlerde bulabilirsiniz yada şu ve bu adreslerden internet üzerinden güvenle sipariş edebilirsiniz 🙂 Ayrıca eğer zamanım bol diyorsanız Çin’den de Aliexpress vasıtasıyla getirtebilirsiniz. Daha uygun fiyata gelecektir.
Arduino I2C 16×2 LCD ve DHT 11 Sensör Devre Şeması
Alt tarafta çizdiğimiz devre şemasına bakarak uygun arduino modeline göre devremizi breadboard’umuza kuralım.
Arduino Uno İçin;
Arduino Mega İçin;
Not: Bağlantıları sizi aldatmasın kodda herhangi bir değişiklik olmuyor. 🙂
Yazılım
Bu modüllerle çalışabilmek için iki kütüphaneye ihtiyaç duyuyoruz öncelikle birinci kütüphanemiz olan DHT 11 kütüphanesini buradan ve ikinci kütüphanemiz olan I2C 16×2 LCD kütüphanesini buradan indirip aşağıda belirtilen yoldaki klasöre rar dosyasından dan çıkarıp atın.
Rar Şifresi: donanimplus.com
Belgeler > Arduino > libraries klasörünün içine atıyoruz.
Daha önceki yazılarımızda hem DHT 11‘in hem I2C 16×2 LCD‘nin kullanımını anlatmıştık bu yazımızda ise ikisini birleştiriyoruz..
Kod
//DONANIM PLUS ELEKTRONİK //TASARIM TOLGA SOYTEPE //İNSTAGRAM Tolgasyp //TWİTTER TSytpp #include <LiquidCrystal_I2C.h> // lcdnin çalışabilmesi için kütüphaneyi ekliyoruz #include <Wire.h>// aynı şekilde #include <DHT11.h> // dht 11 kütüphanesini kodumuza dahil ettik.. LiquidCrystal_I2C lcd(0x27,16,2); // lcdnin 16×2 olduğunu belirtiyoruz.. int pin=4; // data pinimizi 4. pine tanımladık.. DHT11 dht11(pin); // kütüphaneye pinimizi 4. pine bağladığımız bildirdik.. void setup() { lcd.begin();//lcd ye güç veriyoruz.. lcd.backlight();// arka ışığa güç veriyoruz.. lcd.clear(); // açılışta lcd de bir yazı varsa diye lcdyi temizliyoruz.. delay(100);// 100 ms bekleyip lcd.setCursor(0,0); // birinci satıra.. lcd.print(“DONANIM”);//yazmak istediğiniz metni yazıyoruz.. lcd.setCursor(0,1); //ardından ikinci satıra.. lcd.print(“PLUS ELEKTRONIK”);//yazmak istediğiniz metni yazıyoruz.. delay(2000);// 2 saniye bekleyip.. lcd.clear(); // lcd yi temizliyoruz.. lcd.setCursor(0,0);// ve tekrardan 1. satıra.. lcd.print(“TASARIM”);// //yazmak istediğiniz metni yazıyoruz.. delay(1000);// 1 saniye bekleyip.. lcd.setCursor(0,1); // 2. satıra.. lcd.print(“TOLGA SYTP”);//yazmak istediğiniz metni yazıyoruz.. delay(2000);// ve 2 saniye bekleyip başa dönüyoruz.. hepsi bu kadar basit 🙂 lcd.clear(); Serial.begin(9600); // serial iletişimi başlattık.. while (!Serial) { ; } } void loop () { int err; float temp, humi; // sıcaklık ve nem değişkenlerini tanımladık.. if((err=dht11.read(humi, temp))==0) // ilk başlangıç olarak 0 a eşitledik eğer 0 dan farklı bir değer gelirse; { lcd.setCursor(0,0); lcd.print(“SICAKLIK:”); // sıcaklık değerini seriale yazmasını söyledik.. lcd.print(temp); // sıcaklık değeri.. lcd.setCursor(0,1); lcd.print(“NEM:”); // nem değerini seriale yazmasını istedik.. lcd.print(humi); // nem değeri.. delay(200); } else { lcd.clear(); // eğer bunların dışında bir değer veya değer alınamaz ise hata vermesini istedik.. Serial.print(“Hata :”); Serial.print(err); Serial.println(); } delay(DHT11_RETRY_DELAY); //delay for reread } |
Projede kullanılan yazılım kodlarını buradan indirebilirsiniz 🙂
Ve Sonuç;
Bir yazının daha sonuna geldik umarım faydalı olmuştur anlamadığınız veya kafanıza takılan yerler olursa yorumda veya kişisel sosyal medya hesaplarımdan ulaşabilirsiniz. Konu ile ilgili video en kısa sürede yazıya eklenecektir.Kolay gelsin 🙂
dht11 kütüphanesini indiremiyorum başka bir link verebilir misiniz ?
Merhaba Kerem. Link sorunsuz çalışıyor ama sizin için tekrar yükledim buradan indirebilirsiniz.
lcd.begin();
komutunda hata veriyor (böyle tanımlı bir şey yok diye çıldırıcam)
lcd.begin(0x27, 16, 2);
bu şekilde yazcaksın