Kategori:

Ardunio

Başlık:

Ardunio ile sıcaklık alarm sistemi yapalım

Birçok ev hanımı vakti gelince kapatılmayan ocaktan taşan süt vakasını yaşamıştır. Eğer ocaktaki sütün sıcaklığına göre alarm veren bir sistem yapılabilirse bu tür ev kazalarının önüne geçilebilir. Böylelikle enerji ve kaynak israfından belki de mutfak yangınları en aza indirilebilir. Bu örnekteki gibi birçok durumda belirli bir sıcaklığa ulaşan nesne veya ortamlar için sesli uyarı sistemi oluşturulursa bir çok açıdan faydalı olabilir. Bu yazıda böyle durumlar için örnek bir proje yapacağız.

Projenin Amacı: ortamın sıcaklığı ve nemi belirli bir düzeyi geçtiğinde sesli uyarı verilmesini sağlamak olacak. Siz bu proje üzerinden sıvıların, katıları veya ortamın sıcaklığını ölçerek çeşitli görsel, işitsel uyarılar verecek bir robotik sistem  tasarlayabilirsiniz.

Gerekli Malzemeler:

  • Ardunio UNO
  • Dht11 Sıcaklık ve Nem sensörü
  • 220 Ohm direnç 
  • Buzzer
  • 16x2 LCD
  • I2C Modülü

Projenin Şeması:


Yukarıdaki şemada görüleceği üzere DHT11 Sıcaklık ve Nem sensörünü ortamın sıcaklık ve nemini ölçmek için kullanıyoruz. Sensörlerin temel çalışma prensibi +(artı) ve -(eksi veya toprak) kutuplarla elektrik beslemesini yapmak ve sinyal pininden gerekli analog ya da dijital değerleri okumaktır. DHT11 sensörünü ortam sıcaklığını ölçmek için kulanabilirsiniz. DHT11 sensörünün lm35 gibi sensörlerden daha sağlıklı çalıştığı söylenebilir. O yüzden onu tercih edebilirsiniz. LCD ve I2C modülünü de sensörden gelen değerleri okuyabilmek için bu projeye ekledik. Bu projede ses uyarısı almak için buzzer modülü kullanıyoruz. Buzzer modülü yukarıdaki şemada direnç olmadan kullanıldı. Fakat siz gerek buzzer modülünden gelen hışırtı yada fazla sesi azaltmak ve de modülün ömrünü uzatmak için 220Ohm gibi küçük bir diren kullanabilirsiniz. Kullanacağınız direncin değeri fazla olursa buzzerdan daha kısık ses alırsınız. 

Bu şemayı oluşturduysanız öncelikle aşağıda bağlantıları verilen kütüphaneler yüklü değilse yüklemelisiniz:

Projede Kullanılan Kütüphaneler:

Adafruit Sensör Kütüphanesi

https://github.com/adafruit/Adafruit_Sensor

Dht11

https://github.com/adafruit/DHT-sensor-library

LCD I2C:

https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

Kütüphaneler yüklü ise aşağıdaki kodu Ardunio'ya yükleyebilirsiniz.

Projenin Kaynak Kodu:

#include "DHT.h"//Sensörü kullanabilmek için kütüphaneden bu dosyayı dahil ediyoruz
#define DHTPIN 5     // Sıcaklık ve nem sensörü için 5 numaralı pini tanımlıyoruz
#define DHTTYPE DHT11   
DHT dht(DHTPIN, DHTTYPE);
#define buzzerPin 3 
#include "Wire.h"// I2C modülünü kullanmak için kütüphaneden bu dosyayı dahil ediyoruz
#include "LiquidCrystal_I2C.h" // LCD modülünü kullanmak için kütüphaneden bu dosyayı dahil ediyoruz
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); 
void setup() {
  Serial.begin(9600);
  pinMode(DHTPIN,INPUT); //Sıcaklık ve nem verisini almak için bu şekilde tanımladır.
  pinMode(buzzerPin,OUTPUT); //Ses çıktısı alabilmek için bu şekilde tanımladır.
  lcd.begin(16,2);
  dht.begin();
}
void loop() {
  int h = dht.readHumidity();  //Nem değerini değişkene h değişkenine atıyoruz
  int t = dht.readTemperature();  //Sıcaklık değerini değişkene t değişkenine atıyoruz<br>
  lcd.setCursor(0, 0);
  lcd.print("Sicaklik: ");
  lcd.print(t);
  lcd.print("C");
  
  lcd.setCursor(0,1);
  lcd.print("Nem: ");
  lcd.print(h);
  lcd.print("%");
  if(h>96 || t>28)   //Bu if yapısıyla ortamın nemi %96'yı aştığında veya sıcaklık 28 dereceyi aştığında buzzerdan uyarı sesi gelecek
  digitalWrite(buzzerPin,HIGH);
  else 
  digitalWrite(buzzerPin,LOW); 
}

Bu kodu derlerken kütüphaneler ile ilgili hatalar alabilirsiniz. Bunun nedeni kullandığınız Dht modülleri, LCD veya I2C modellerinin farklı olması veya gereken bazı dosyaların yüklü olmaması olabilir. Bu durumlarda kullandığınız bileşenlere uygun kütüphane dosyalarını sisteme yükleyerek hataları kaldırabilirsiniz.

Ek olarak neler yapılabilir?

  • Sıvı sıcaklığa göre uyarı vermek istiyorsanız DHT11 sensörü yerine sıvı sıcaklık sensörleri kullanabilirsiniz.
  • Buzzer ile sesli uyarının yanına led ile görüntülü uyarı koyabilirsiniz.
  • Buzzer modülü yerine Sd kart modülü ve hoparlör kullanarak önceden kayıtlı sesleri uyarı sesi olarak kullanabilirsiniz.
  • Sıcaklığın belirli seviyeyi geçtikten belirli bir süre (örneğin 1 dakika) sonrasını kodda değişiklik yaparak sağlayabilirsiniz.

Bunlardan başka fikirleriniz varsa lütfen yorumlarda paylaşmayı unutmayın. İyi kodlamalar...

289 views
YORUMLAR
ahmet:
Katı bir sistemin sıcaklığı nasıl ölçülebilir? Örneğin metal bir bilyenin?
yardımcı adam:
pt100 sıcaklık sensörünü deneyebilirsiniz
peakman:
S?cakl???n art???na göre buzzerdan gelen sen artabilir bu proje için. Öneri olarak söyleyebilirim.
peakman:
Sıcaklığın artışına göre buzzerdan gelen ses artabilir bu proje için. Öneri olarak söyleyebilirim.