arduino lcd dht ds1307 1k

DS1307 ve DHT11 ile sıcaklık ve saat projesi

Bugünkü yazımızda arduino ile daha önce yaptığımız saat projesine sıcaklık ve nem sensörü de ekleyerek bir proje daha yaptık. Bu sefer projemize nem ve ısı sensöründen alınan değerleri direk yazdırırken yanına özel karakterlerde eklendi.

 

Projemizin çalışması ile birlikte görüntüsü aşağıdaki gibidir.

arduino lcd dht ds1307 1

Resimde dereceden sonra sıfır görünüyor … ::))  yeni farkettim artık 0 la yaşamayı öğrenmemiz gerekecek

Her iki saniyede bir saati ve nem ısı sensörü arasında geçiş yapıyor.

arduino lcd dht ds1307

arduino saat dht

byte termometre[8] = //ikon  termometre
{
    B00100,
    B01010,
    B01010,
    B01110,
    B01110,
    B11111,
    B11111,
    B01110
};
 
byte sudamlacigi[8] = //ikon su damlacığı
{
    B00100,
    B00100,
    B01010,
    B01010,
    B10001,
    B10001,
    B10001,
    B01110,
};
#include "Wire.h"
#define DS1307_ADDRESS 0x68
#include "DHT.h"
#define DHTPIN 2    
#include <LiquidCrystal_I2C.h>
#define DHTTYPE DHT11 
LiquidCrystal_I2C lcd(0x20,16,2);
DHT dht(DHTPIN, DHTTYPE);
void setup(){
Wire.begin();
dht.begin();
lcd.init();                    
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("www.arduinom.org");
  lcd.createChar(1,termometre);
  lcd.createChar(2,sudamlacigi);
  delay(2000);
}
 
void loop(){
  float h = dht.readHumidity();
  float t = dht.readTemperature();
lcd.setCursor(0, 0);
lcd.print("www.arduinom.org");
lcd.setCursor(1, 1);
    lcd.write(1);
  lcd.setCursor(3, 1);
  lcd.print(t);
  lcd.setCursor(5, 1);
  lcd.print((char)223); //derece karakteri
  lcd.print("C");
  lcd.setCursor(9, 1);
    lcd.write(2);
  lcd.setCursor(11, 1);
  lcd.print(h);
  lcd.print("%");
  delay(2000);
lcd.clear();
  printDate();
  delay(2000);
lcd.clear();
}
 
byte bcdToDec(byte val)  {
  return ( (val/16*10) + (val%16) );
}
 
void printDate(){
 
  Wire.beginTransmission(DS1307_ADDRESS);
  byte zero = 0x00;
  Wire.write(zero);
  Wire.endTransmission();
  Wire.requestFrom(DS1307_ADDRESS, 7);
  int second = bcdToDec(Wire.read());
  int minute = bcdToDec(Wire.read());
  int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
  int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
  int monthDay = bcdToDec(Wire.read());
  int month = bcdToDec(Wire.read());
  int year = bcdToDec(Wire.read());
lcd.clear();
  //print the date EG   3/1/11 23:59:59
 lcd.setCursor(1,0);
    lcd.print("Tarih: ");
    lcd.print(monthDay);
  lcd.print("/");
  lcd.print(month);
  lcd.print("/");
  lcd.print(year);
 lcd.setCursor(0,1);
  lcd.print(" Saat :");
   lcd.print(" ");
  lcd.print(hour);
  lcd.print(":");
  lcd.print(minute);
  lcd.print(":");
  lcd.print(second);
  delay(1);
 
}

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

  
  1. Bayram ataş 14 Aralık 2016 20:30

    Error stray ‘\302’ in program
    DHT dht ( DHTPIN, DHTTYPE) hatası alıyorum yardım edin neden oluyor

    Cevapla
  2. huseyin odabasi 23 Kasım 2016 20:12

    merhaba kütüphaneleri yükledikten sonra exit status 1’printDate’ was not declared in this scope hatası alıyorum nasıl çözebilirim ?

    veya bu proje için kullanmam gereken kütüphaneleri paylaşabilirseniz çok çok iyi olacaktır

    Cevapla
  3. OKAN.B 17 Ekim 2016 17:27

    merhabalar programı arduino programına kopyalayıp yapıştırdım ancak lcd.init();
    satırında hata var diyor hata mesajı aynen şöyle ‘class LiquidCrystal_12C’ has no member named ‘init’ ayrıca şunuda belirteyim tüm kütüphaneleri yükledim teşekkürler.

    Cevapla
    • Arduinocu 18 Ekim 2016 06:45

      OKAN bey . Projeyi site icinde i2c lcd kutuphanesi var ona bakabilir misiniz . Birde eger i2c lcd kutuphanesini yuklediyseniz o zaman oradan hello word ornegini acin orada eger lcd.init yok ise kutuphaneniz bizimkinden farklidir.

      Cevapla

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.