Arduino
OKUDUĞUNUZ KONU
Arduino ile Akıllı Sunucu Odası (Server Room)
0

Arduino ile Akıllı Sunucu Odası (Server Room)

Yazar : Tunahan PARLAYICI11 Ağustos 2017
Mikrodenetleyicilerin gelişmesi ve ulaşılabilirliğinin kolay olması nedeniyle kendi akıllı odalarımızı tasarlamamız mümkün olmaya başladı...

İyi günler arkadaşlar. Bildiğiniz gibi artık birçok şey kendiliğinden çalışır konuma gelmeye başladı, yani kendine ait denetleme mekanizması sayesinde akıllandı. Bunlar günümüzün kaçınılmazı haline gelmeye başlamışken, iyiden iyiye akıllı odalar hatta evler de yaygınlaşmaya başladı. Mikrodenetleyicilerin gelişmesi ve ulaşılabilirliğinin kolay olması nedeniyle kendi akıllı odalarımızı tasarlamamız mümkün olmaya başladı, bu çalışmada ise basit anlamda bir sunucu odası (server room) tasarlayacağız. Bu oda Arduino, buzzer ile birlikte, gaz (mq2), sıcaklı ile nem (dht11) algılayıcılarına (sensörler) sahip olacaktır ayrıca bir de göstergemiz (lcd) ve uyarı anlamına gelen birkaç ledimiz olacak.

Çalışmamızın içeriden görünüşü aşağıdaki gibidir, kendinize göre istediğiniz gibi içini ve dışını tasarlayabilirsiniz. Ön tarafında LCD ile birlikte uyarı anlamında 2 adet led bulunmaktadır. Yan tarafta ise fan vardır. İçeride ise mq2 (gaz), dht11 (sıcaklık, nem) algılayıcıları ile uyarı vermek için kullandığımız bir adet buzzer mevcut.

Devre Elemanlarına Ait Resimler:

Uyarı: MQ2, Buzzer, LED ve DHT11 ile alakalı örnek bağlantılar yukarıdaki gibidir. Arduino kodunun içinde Türkçe olarak hangileri nereye bağlı tam anlamı ile belirtilmiştir. LCD ve DHT11’in proje örneğini görmek için en alağıdaki dipçeye bakınız.

Arduino Kodları

/*
The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 8
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
*/

#include <dht11.h> // dht11 kütüphanesini ekliyoruz.
#include <LiquidCrystal.h> // LCD kütüphanesi
#define DHT11PIN 2 // DHT11PIN olarak Dijital 2"yi belirliyoruz.
#define fan 10 // fan 10'a bağlanır
LiquidCrystal lcd(12, 11, 5, 4, 3, 8);
const int gasPin = A0; //GAS sensor output pin to Arduino analog A0 pin
const int buzzer = 9; //buzzer to arduino pin 9
dht11 DHT11;
const int Led1 = 6;
const int Led2 = 7;

void setup()
{
Serial.begin(9600); // Seri iletişimi başlatıyoruz.
lcd.begin(16, 2); // LCD hazırla
pinMode(buzzer, OUTPUT); // Set buzzer - pin 9 as an output
pinMode(fan, OUTPUT);

pinMode(Led1, OUTPUT);
pinMode(Led2, OUTPUT);
lcd.print("Tunahan-Ünal");
delay(1000);
}

void loop()
{
// Bir satır boşluk bırakıyoruz serial monitörde.
Serial.println();
// Sensörün okunup okunmadığını konrol ediyoruz.
// chk 0 ise sorunsuz okunuyor demektir. Sorun yaşarsanız
// chk değerini serial monitörde yazdırıp kontrol edebilirsiniz.
int chk = DHT11.read(DHT11PIN);

lcd.clear();
// Sensörden gelen verileri serial monitörde yazdırıyoruz.
Serial.print("Nem (%): ");
Serial.println((float)DHT11.humidity, 2);
lcd.setCursor(16, 0);
lcd.print("Nem (%): ");
lcd.print((float)DHT11.humidity);

Serial.print("Sicaklik (Celcius): ");
Serial.println((float)DHT11.temperature, 2);
lcd.setCursor(16, 1);
lcd.print("Sicaklik (Celcius): ");
lcd.print((float)DHT11.temperature);

Serial.print("Sicaklik (Fahrenheit): ");
Serial.println(DHT11.fahrenheit(), 2);

Serial.print("Sicaklik (Kelvin): ");
Serial.println(DHT11.kelvin(), 2);

// Çiğ Oluşma Noktası, Dew Point
Serial.print("Cig Olusma Noktasi: ");
Serial.println(DHT11.dewPoint(), 2);

Serial.print("Gas: ");
Serial.println(analogRead(gasPin));

// 2 saniye bekliyoruz. 2 saniyede bir veriler ekrana yazdırılacak.
delay(1000);
if (analogRead(gasPin) >= 100){
tone(buzzer, 1000); // Send 1KHz sound signal...
delay(1000); // ...for 1 sec
noTone(buzzer); // Stop sound..

}
if((float)DHT11.humidity >= 40)
{
lcd.clear();
lcd.setCursor(16, 0);
lcd.print("YUKSEK NEM");
digitalWrite(fan, HIGH);
}
if ((float)DHT11.temperature >= 30 || analogRead(gasPin) >= 100)
{
lcd.clear();
digitalWrite(Led1, HIGH);
digitalWrite(Led2, LOW);
digitalWrite(fan, HIGH);
lcd.setCursor(16, 0);
lcd.print("UYARI");
}
else
{
digitalWrite(Led2, HIGH);
}
}

Dipçe: LCD ve dht11 bağlantıları konusunda sorun yaşıyorsanız eğer bu bağlantıdan yardım alabilirsiniz, herhangi bir sorunuz olması dahilinde elimden geldiğince yardım ederim.

SİZCE NASIL OLMUŞ?
Beğendim
62%
İlginç
15%
Eh İşte
8%
Anlamadım
15%
Kötü
0%
Berbat
0%
YAZAR HAKKINDA
Tunahan PARLAYICI
Tunahan PARLAYICI
Opera dinleyen, gitar çalan, tiyatro oynayan, boş zamanlarında uzayı izleyen... şaka şaka sadece mühendis olmaya, İTÜ'de kazasız belasız yüksek lisansını bitirmeye çalışan bir Konyalı. Etliekmeğin gücü adına!
YORUMLAR

YORUM YAP