Günümüzde piyasada kullanıma uygun birçok ev otomasyon sistemi bulunmaktadır. Bunların çoğu basit kontol sistemleridir. DTMF kontrollü ev aletleri, GSM tabanlı ev aletleri kontrol sistemi, RF tabanlı ev aletleri kontrolü gibi. Bu sefer biz arduino kulanarak TV, DVD gibi cihazlarda uzaktan kontrol imkanı sağlayan IR led ile ev veya ofisteki aletleri nasıl kontrol edebileceğimizi göreceğiz.

Bu projede arduinoya bir TSOP (IR alıcı) bağlayacağız. Arduino kumandadan gelen kodlanmış sinyalleri alacak ve IRremote.h kütüphanesini kullanarak bu kodlanmış siyalleri çözecektir. Bu kütüphaneyi google’da aratarak internette kolaylıkla bulabilirsiniz. Sinyal çözüldükten sonra, tanımlanan değerle gelen (çözülen) sinyal karşılaştırılıp, eğer ikiside aynı olduğu doğrulanıp eşleşirse analog giriş/çıkış’ları kullanarak anahtarlama yapabiliriz ve böylece aletleri kontol etmek için kullanacağımız röleleri aktif veya pasif modlarında çalıştırabiliriz.

AC ile çalışan aletleri kontrol edebilmek için 3 adet röle kullanacağız. Bir röleyi 10 Watt lamba için, bir tanesini 100 Watt lamba için ve diğer bir tanesini ise TV açıp kapamak için kullanacağız. Ayrıca devremize birde LCD ekran ekledik ki cihazların açık – kapalı durumlarını ekrandanda takip edebilelim diye. Mesela TV ON yada OFF, ışık (light) 1 ON yada OFF, ışık (light) 2 ON yada OFF birde ALL(hepsi) ON yada OFF gibi.

IR-Remote-Controlled-Home-1

 

IR-Remote-Controlled-Home-2

IR-Remote-Controlled-Home-3

IR-Remote-Controlled-Home-4

IR-Remote-Controlled-Home-5

IR-Remote-Controlled-Home-6

IR-Remote-Controlled-Home-7

IR-Remote-Controlled-Home-8

 

Blok Diyagram:

IR-Remote-Controlled-Block-D

 

Devre Tanımı:

Bu sistemin devresi çok basit burada TSOP 1738 arduinonun dijital 9. pinine bağlandı. TSOP 1738, 38KHz frekanstaki IR sinyallerini algılıyor. Arduinonun 10, 11, 12. pinlerine kontol edilmek üzere 3 tane röle bağlıyoruz light (ışık) 1, light(ışık) 2 ve TV. Röleleri sürmek için ULN 2003 IC kullanacağız. ULN 2003 IC yüksek gerilim ve yüksek akım darlington transistör dizisinden oluşur. 7 tane NPN darlington çiftinden oluşup, yüksek gerilim çıkışlarında endüktif yükler için ortak katod diyotlar vardır. Ve bu devre için en uygun olan 5 Volt röle kullanılmıştır. Light (ışık) 1 röle 1’e, light (ışık) 2 röle 2’ye, TV röle 3’e bağlanmıştır.

IR-Remote-Controlled-relay

DC kaynak için röle bağlantı şeması.( batarya ile gösterilen yere AC kaynak , led olan yere ise elektrikli cihaz bağlanır AC olduğu için polarite önemli değildir.)

Kodda biraz oynama yaparak ve devreye fazladan elemanlar ekleyebilir daha fazla aleti kontrol edebilirsiniz. LCD’nin komuta pinleri RS ve EN doğrudan sırasıyla 7. ve 6. pinlerine bağlanır ve data pinleri d4, d5, d6, d7 sırasıyla arduinonun 5, 4, 3, 2 pinlerine bağlanır.

 

Devrenin İşlevi:

  1. Kumandadan 1 e basıldığında TV açılacak ve tekrar basıldığında TV kapanacak.
  2. Kumandadan 2 ye basıldığında 1.ışık açıkacak ve tekrar 2 ye basıldığında ışık kapanacak.
  3. Kumandadan 3 e basıldığında 2.ışık açılacak ve tekrar 3 e basıldığında ışık kapanacak.

 

Programlama:
Bu projenin programlanması çok basittir. LCD kütüphanesi ve IR remote kütüphanesi koda eklenir. Daha sonra kumanadadan gelecek veriyle karşılaştırmak için bazı string’ler tanımlanır. (Tabiki daha öncesinde kumandanın bütük sinyal değerleri okunmalı ona göre karşılaştırılacak değerleri seçilmelidir.) Daha sonra gelen değer ile bizim o komut için belirlediğimiz değer eşleştiğinde devre çalışır ve röle aktif olur .

İyi eğlenceler.

 

 

Malzeme Listesi

  1. Arduino Pro Mini
  2. TSOP 1738
  3. Bağlantı kabloları
  4. Güç kaynağı
  5. AC cihazlar
  6. Kondansatörler
  7. IR kumanda
  8. 3 adet röle
  9. ULN2003 IC
  10. LCD

 

Devre Şeması:

IR-Remote-Controlled-circui

 

Kod:

#include<LiquidCrystal.h>
#include <IRremote.h>
int RECV_PIN = 9;          // Output pin of TSOP sensor
IRrecv irrecv(RECV_PIN);
decode_results results;

LiquidCrystal lcd(7,6,5,4,3,2);

#define light1 10
#define light2 11
#define TV 12

int temp=0,temp1;

void setup()
{
  lcd.begin(16,2);
  pinMode(light1,OUTPUT);
  pinMode(light2,OUTPUT);
  pinMode(TV,OUTPUT);
  pinMode(13,OUTPUT);
 
 
    lcd.setCursor(0,0);
  lcd.print("  Home/Office   ");
  lcd.setCursor(0,1);
  lcd.print(" Aplliances ctrl");
  delay(2000);
   lcd.setCursor(0,0);
  lcd.print("Using IR Remote ");
  lcd.setCursor(0,1);
  lcd.print("By Saddam Khan  ");
  delay(2000);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Engineers Garage");
  delay(2000);
 
  irrecv.enableIRIn(); // Start the receiver
}



void loop()
{
  int i,j,k,l,m;
  lcd.clear();
   while(1)
   {
     lcd.setCursor(0,1);
     lcd.print("System Ready  ");
     delay(100);
   if (irrecv.decode(&results))
   {
        digitalWrite(13, HIGH);
    delay(10);
    digitalWrite(13, LOW);
   
    if((results.value)== 33441975)        // on off red button
     {
       if(i%2==0)
       {
        digitalWrite(TV, LOW);
        digitalWrite(light2, LOW);
        digitalWrite(light1, LOW);
        lcd.clear();
          lcd.setCursor(0,0);
          lcd.print("ALL OFF   ");
        delay(10);
       }
       else
       {
        digitalWrite(TV, HIGH);
        digitalWrite(light2, HIGH);
        digitalWrite(light1, HIGH);
        lcd.clear();
          lcd.setCursor(0,0);
          lcd.print("ALL ON   ");
          delay(100);
       }
       i++;
     }
    
    
      if((results.value)== 33444015)    //  key 1
     {
      if(j%2==0)
      {
       digitalWrite(TV, HIGH);
       lcd.clear();
       lcd.setCursor(0,0);
       lcd.print("TV ON");
       delay(10);
      }
     
      else
      {
        digitalWrite(TV, LOW);
        lcd.clear();
       lcd.setCursor(0,0);
       lcd.print("TV OFF");
       delay(10);
      }
      j++;
     }
  
   if((results.value)== 33478695)     //  key  2
     {
      if(k%2==0)
      {
       digitalWrite(light1, HIGH);
       lcd.clear();
       lcd.setCursor(0,0);
       lcd.print("LIGHT 1 ON");
       delay(10);
      }
     
      else
      {
        digitalWrite(light1, LOW);
        lcd.clear();
       lcd.setCursor(0,0);
       lcd.print("LIGHT 1 OFF");
       delay(10);
      }
      k++;
     }
    
      if((results.value)== 33486855)  //  key  3
     {
      if(l%2==0)
      {
       digitalWrite(light2, HIGH);
       lcd.clear();
       lcd.setCursor(0,0);
       lcd.print("LIGHT 2 ON");
       delay(10);
      }
     
      else
      {
        digitalWrite(light2, LOW);
        lcd.clear();
       lcd.setCursor(0,0);
       lcd.print("LIGHT 2 OFF");
       delay(10);
      }
      l++;
     }  
      
irrecv.resume();           // Receive the next value
   }
   }
}

 

Video:

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz