Webmaster Forum Hakkında Bilgilendirme

Ücretli Moderatör Arıyoruz

Yeni Üyelerimize 3 Ay Reklam Kampanyası

Webmaster Forum | 1e4.NET
Öne Çıkan Konular

Mini Hava istasyonu Yapımı Konusu Hakkında Değerlendirme Bölümü



Mini Hava istasyonu Yapımı
#1

Merhaba arkadaşlar , bugünsizinle paylaşmak istediğim proje 2013 yılında yaptığım mini hava istasyonu. Projemiz ev ortamında kullanabileceğiniz hatta yanınızda taşıyabileceğiniz çapta küçük ve kullanışlı bir proje.

Bu projemizde Arduino pro mini , RTC DS1307 ve DHT 11 kullandığımdan dolayı Proje baya küçük oldu . Projemiz tarih, saat sıcaklık ve nemi çok güzel bir animasyon ile NOKİA 5110 LCD de gösteriyor.

Proje tamamen geliştirmeye açık olduğundan eklemeleri sonuna kadar destekleyecektir. Ve belirtmekte de yarar var Bildiğiniz gibi Piyasada çokça bulunan BMP180 gibi basınç ve sıcaklık sensörleri ile HAVA TAHMİNİ YAPTIRABİLİRSİNİZ. Tahmini yaptırma ile ilgili küçük bir çalışmam oldu bunu da sizinle paylaşmaktan zevk alırım .

Kullanılan Malzemeler

Projemizde kullanılan malzemelerden üstte bahsettim ama bir daha yazmak istiyorum.
Arduino Pro mini (herhangi bir model ile de aynı şekilde kullanabilirsiniz.)
RTC DS1307 saat-tarih modülü
DHT11 ( DHT22 tavsiye ediyorum )
Ve küçük bir lipo pil . (200mA idare eder)

[Resim: havaistasyonu4.jpg]

Bağlantı Şeması

Nokia 5110 Bağlantısı şu şekildedir.
* Pin 1 (RST) -> Arduino dijital 6 (D6)
* Pin 2 (CE) -> Arduino dijital 7 (D7)
* Pin 3 (DC) -> Arduino dijital 5 (D5)
* Pin 4 (DIN) -> Arduino dijital 4 (D4)
* Pin 5 (CLK) – Arduino dijital 3 (D3)
* Pin 6 (Vcc) -> direk 5volta bağlantılı
* Pin 7 (LIGHT) -> 56-100 ohm direnç bağlamanız uzun ömürlü olması için gereklidir.
* Pin 8 (GND) -> GND1 veya GND2
DS1307 Saat modülü
* GND —- GND pinine
* VCC —- direk 5 volta
* SDA—- A4 pinine
* SCL —-A5 pinine
DHT11 veya DHT22 Sıcaklık ve Nem Sensörü
* Data ucu Arduinomuzun A2 pinine bağlanmıştır.


Programımız için Gerekli Kodlar

Kod:
/*

Nokia 5110 Bağlantısı şu şekildedir.

* Pin 1 (RST) -> Arduino dijital 6 (D6)

* Pin 2 (CE) -> Arduino dijital 7 (D7)

* Pin 3 (DC) -> Arduino dijital 5 (D5)

* Pin 4 (DIN) -> Arduino dijital 4 (D4)

* Pin 5 (CLK) - Arduino dijital 3 (D3)

* Pin 6 (Vcc) -> direk 5volta bağlantılı

* Pin 7 (LIGHT) -> 56-100 ohm direnç bağlamanız uzun ömürlü olması için gereklidir.

* Pin 8 (GND) -> GND1 veya GND2

*/



#include <Adafruit_GFX.h>

#include <Adafruit_PCD8544.h>

// Adafruit_PCD8544 display = Adafruit_PCD8544(SCLK, DIN, DC, CS, RST);

Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 7, 6);



#include <DHT.h>

#define DHTPIN A2    

#define DHTTYPE DHT11  

DHT dht(DHTPIN, DHTTYPE);





#include <Wire.h>

#include "RTClib.h"

RTC_DS1307 RTC;



static unsigned char PROGMEM picatura[] =

{ B0001000,

B0001000,

B0001000,

B0010100,

B0100010,

B0100010,

B0011100

};



void setup () {

  

   Serial.begin(9600);



display.begin();

/////// Burası çok önemlidir. Yazınızın kontrastı alttan ayarlanır//////////

display.setContrast(50);

display.clearDisplay();



dht.begin();



  

display.setTextSize(1);

display.setTextColor(BLACK);

display.setCursor(0,0);

display.println("wwww.arduinom.org");

display.display();

delay (5000);

display.clearDisplay();

  

Wire.begin();

  

//www.arduinom.org/

Wire.beginTransmission(0x68);

Wire.write(0x07);

Wire.write(0x10);

Wire.endTransmission();



   RTC.begin();

// RTC.adjust(DateTime(__DATE__, __TIME__));

if (! RTC.isrunning()) {

   Serial.println("RTC calismiyor !");

   RTC.adjust(DateTime(__DATE__, __TIME__));

}

}



int k1;

int ko;



void loop () {

  

DateTime now = RTC.now();

int h = dht.readHumidity();

int t = dht.readTemperature();



  int zs = now.second()/10;

  int us = now.second() - zs*10;

  

if (us > 2 )

{

  display.setTextSize(2);

  display.setTextColor(BLACK);

  display.setCursor(0, 0);

  

  

  {   if ( now.hour() < 10)

  {

    display.print(" ");

    display.print(now.hour(), DEC);

  }

  else

  {

    display.print(now.hour(), DEC);

  }

  display.setCursor(20, 0);

  display.print(":");

  display.setCursor(28, 0);

  if ( now.minute() < 10)

  {

    display.print("0");

    display.print(now.minute(), DEC);

  }

  else

  {

  display.print(now.minute(), DEC);

  }



  display.setCursor(48, 0);

  display.print(":");

  display.setCursor(57, 0);

  if ( now.second() < 10)

  {

    display.print("0");

    display.print(now.second(), DEC);

  }

  else

  {

  display.print(now.second(), DEC);

  }

  }

}

else

{

  display.setTextSize(1);

  display.setTextColor(BLACK);

  display.setCursor(16, 0);

  if ( now.hour() < 10)

  {

    display.print(" ");

    display.print(now.hour(), DEC);

  }

  else

  {

  //  display.setCursor(16, 0);

    display.print(now.hour(), DEC);

  }

  display.print(":");

  if ( now.minute() < 10)

  {

    display.print("0");

    display.print(now.minute(), DEC);

  }

  else

  {

  display.print(now.minute(), DEC);

  }

  display.print(":");

  if ( now.second() < 10)

  {

    display.print("0");

    display.print(now.second(), DEC);

  }

  else

  {

  display.print(now.second(), DEC);

  }

      

  display.setCursor(10, 8);

  if ( now.day() < 10)

  {

    display.print("0");

    display.print(now.day(), DEC);

  }

  else

  {

  display.print(now.day(), DEC);

  }

  display.print("/");

  if ( now.month() < 10)

  {

    display.print("0");

    display.print(now.month(), DEC);

  }

  else

  {

  display.print(now.month(), DEC);

  }

  display.print("/");

  display.print(now.year(), DEC);

}

    

   if (us < 5 )

  {

  display.setTextSize(4);

  display.setTextColor(BLACK);

  display.setCursor(0,20);

  display.print(t);

  display.setCursor(60,20);

  display.print("C");

  display.setTextSize(2);

  display.setTextColor(BLACK);

  display.setCursor(48,20);

  display.print("o");

  display.display();

  }

else

  {

  display.setTextSize(4);

// display.setTextColor(WHITE, BLACK);

  display.setCursor(0,20);

  display.print(h);

/*   display.setCursor(60,20);

  display.print("H");

*/

  // bardak gibi bir sekil cizdirdik.

  display.drawLine(60, 20, 60, 45, BLACK);

  display.drawLine(61, 20, 61, 45, BLACK);

  display.drawLine(60, 44, 80, 44, BLACK);

  display.drawLine(60, 45, 80, 45, BLACK);

  display.drawLine(79, 20, 79, 45, BLACK);

  display.drawLine(80, 20, 80, 45, BLACK);

// display.display();

  int hp = h/4;

  for (int x = 0; x < hp+1; x++)

  {

  display.drawLine(60, 44-x, 80, 44-x, BLACK);

  }

// Damla şekli

  display.drawBitmap(65, 20,  picatura, 8, 8, 1);

  display.drawBitmap(70, 26,  picatura, 8, 8, 1);

  

  display.setTextSize(2);

  display.setTextColor(BLACK);

  display.setCursor(48,20);

  display.print("%");

  display.display();

  }



delay (500);

display.clearDisplay();  
}
Cevapla





Hızlı Menü: