AnaSayfa Arduino DHT11 ile Sıcaklık Ölçümü ve I2C ile LCD Üzerinden Gösterilmesi

DHT11 ile Sıcaklık Ölçümü ve I2C ile LCD Üzerinden Gösterilmesi

1,987

Merhaba arkadaşlar bu yazımızda 16×2 LCD’yi I2C entegresiyle birlikte kullanacağız. Bu entegreyi kullanmamızın nedeni LCD kullanımı için gerekli pin sayısını ikiye düşürmesidir. Sorularınızı yorum olarak veya iletişim bölümünden iletebilirsiniz.

  

Gerekli Malzemeler

  • Arduino Nano
  • Breadboard
  • 16×2 LCD Ekran
  • DHT11 Sıcaklık ve Nem Sensörü
  • Jumper kablo
  • 1602 I2C Arayüzü Modülü

 Devre Şeması

 

Devrenin Fritzing Şeması

 

#include <LiquidCrystal_I2C.h> yazarak LCD kütüphanesini çağıracağız. Bu kütüphane sayesinde işimiz oldukça kolaylaşacak.

#include <dht11.h> yazarak DHT11 kütüphanesi çağıracağız.

#include <Wire.h> kütüphanesi ile OneWire haberleşmesini yapacağız. Bu haberleşme türünde tek hatta çok sayıda cihaz kontrol edilebilir.

  • begin()LCD ekranınızın adresinin ve boyutlarını girmek için kullandığımız komut
  • setCursor()yazı yazmak için imleci istediğimiz yere koymamızı sağlayan komut
  • print()ekrana yazdırmak istediğimiz şeyleri bu komutla yazdıracağız
  • clear()ekrandaki her şeyi temizleyen komut
  • DHT11.temperature DHT11 sensörününden sıcaklık bilgisini almak için kullanılan komut
/**
Yazar : Erencan TAYANÇ
Konu  : DHT11 ile Sıcaklık Ölçümü ve I2C ile LCD Üzerinden Gösterilmesi
*/
#include &lt;dht11.h&gt;
#include &lt;Versalino.h&gt;
#include &lt;Wire.h&gt;
#include &lt;LiquidCrystal_I2C.h&gt;
#define led_pin 13
#define dht_pin 5
LiquidCrystal_I2C lcd(0x27, 16, 2);  //0x27 I2C Entegresinin Adresi. Bu bilgiye Datasheet üzerinden ulaşılıyor. Sonrasında 16x2'lik LCD olduğu için parametre olarak giriyoruz.
dht11 DHT11;
float temperature;
bool state = false;
char s[] = {'.', '..', '...', '....', '.....', '......', '.......', '........', '.........', '..........', '...........', '............', '.............', '..............',
'...............', '................'
};
void setup() {
pinMode(led_pin, OUTPUT);
digitalWrite(led_pin, state);
DHT11.attach(dht_pin);          //DHT11 sensörünün hangi pinde olduğunu belirtiyoruz.
lcdInit();                      //LCD'nin ilk ayarlarını yapıyoruz burada.
}

void loop() {
lcdDispTemp(getDataToDHT11());  //lcdDispTemp fonsiyonuna parametre olarak getDatatoDHT11 fonksiyonundan dönen değeri gönderiyoruz.
state ^= 1;                     //Ledin toggle işlemi.
digitalWrite(led_pin, state);   //Arduino üzerindeki led 2 saniyede bir yanıp sönüyor.
delay(2000);
}

void lcdInit() {
lcd.begin();
lcd.backlight();
lcd.clear();
lcd.print("  Welcome User");
delay(2000);
lcd.setCursor(0, 1);
for (int i = 0; i &lt; sizeof(s); i++) {
lcd.print(s[i]);
delay(200);
}
lcd.clear();
Serial.println("Configuration Complated ");
delay(500);
lcd.clear();
}

void lcdDispTemp(float temp) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temperature ");
lcd.setCursor(0, 1);
lcd.print(temp);
lcd.write(223);             // ASCII tablosunda derece işaretine gelen karakter.
lcd.print("C    ");
}

float getDataToDHT11() {
int chk = DHT11.read();
return DHT11.temperature;  //fonksiyonun dönüş parametresi float olduğu için fonksiyonun başında bunu belirtiyoruz.
}
Daha Fazla İlgili Makale Yükleyin
Daha Fazla Yük Arduino

Bir Yorum Yazın

Ayrıca Kontrol Edin

Temel Elektronik ve Arduino için PDF

Bu paylaşacağımız PDF bize ait olmayıp tamamen takipçilerimizin faydalanması için siteye e…