Telefonla Uzaktan Cihaz Kontrolü

'Ev Teknolojileri' forumunda _KaRiZmA_ tarafından 13 Ağustos 2008 tarihinde açılan konu

  1. _KaRiZmA_

    _KaRiZmA_ Üye

    Sponsorlu Bağlantılar
    Telefonla Uzaktan Cihaz Kontrolü konusu Günümüzde akıllı evler için tasarlanan ev otomasyon ürünleri hızla yaygınlaşıyor. Daha güvenli ve konforlu bir yaşam sağlayan bu ürünler sayesinde, dünyanın herhangi bir yerinden evdeki cihazlara kumanda etmek mümkün olabiliyor. Telefon şebekesi aracılığıyla evdeki lamba, ısıtıcı, fırın, klima, bilgisayar gibi cihazlar uzaktan kolayca çalıştırılabiliyor. Böyle bir sistemi kendi imkanlarınızla yapmanı z çok da zor değil aslında. Bu ayki yazıda sabit telefon veya cep telefonu yardımıyla elektriksel cihazları kontrol eden bir projeden bahsediliyor. PIC mikro denetleyici kullanılarak tasarlanan elektronik devre şifre destekli olduğundan yetkisiz kişilere karşı güvenli bir yapıya sahip. Ayrıca devre bağlantı ları optik ve manyetik olarak telefon hattından yalı tılmış olduğundan elektriksel olarak emniyetli. Bu proje ile deneysel çalışmalar ve ev içi cihaz kontrol uygulamaları yapılabilir.
    Sistemin temel çalışma mantığı şekil 1’de görülmekte. PIC tabanlı uzaktan kontrol devresi, sistemin merkezi işlem birimi olarak görev yapar. Bu devre, telefon hattı yoluyla iletilen DTMF sinyallerinin kodunu çözer ve şifre bilgisini denetler. şifrenin doğru olarak tuşlanması durumunda, cihazları kontrol etmesi için kullanıcıya yetki verir. Aksi halde kullanım izni vermez. şifre ve komut bilgileri telefon hattı üzerinden DTMF sinyali şeklinde iletilir.
    Projenin ayrıntılarına geçmeden önce telefon şebekesi hakkında bilgi vermekte yarar var. Standart bir telefon şebekesinde her bir telefon, santral birimine bir çift bakır kablo ile bağlıdır. Telefon numarası santrale tonlu arama veya darbeli arama olmak üzere iki farklı şekilde iletilebilir. Günümüz telefon sistemlerinde yaygın olarak tonlu arama özelliği kullanılmakta. Tonlu arama, telefon üzerindeki her bir tuş için farklı frekanslı sinyaller gönderilerek yapılır. Bu sistem DTMF (Dual Tone Multifrequency) yani iki tonlu çoklu frekans olarak da adlandı rılır. DTMF sinyalleri telefon hattı üzerinden konuşma sinyali ile birlikte gönderilir ve alınır. Uygun kod çözücü entegreler (örneğin CM8870) kullanılarak DTMF kodu çözülür ve tuş bilgisi kolayca elde edilir.
    Şekil 2’de 12 tuştan oluşan bir tuş takımı ve DTMF sinyaline ait frekans değerleri görülmekte.

    Şekil 1: Uzaktan kontrol sisteminin blok diyagramı

    Şekil 2: Tuş takımı ve frekans değerleri
    Telefon üzerindeki 1 tuşuna basıldığında, telefon hattına 697 Hz ve 1209 Hz frekanslı iki sinyalin toplamından oluşan bir sinyal gönderilir. Şekil 3’de bu sinyallerin dalga şekli görülmekte. Benzer şekilde 0 tuşuna basıldığında 941 Hz ve 1336 Hz’lik bir ton çifti üretilir. Tuşlara ait frekans değerlerinin farklı olması, telefon ahizesinden duyulan sesin tonundaki değişimden de anlaşılır.

    Şekil 3: DTMF sinyalinin dalga şekli
    Bu projede DTMF kod çözücü olarak CM8870 entegresi kullanıldı. Bu entegre elektronikçilerden kolayca temin edilebilmekte. Şekil 4’de görülen 18 bacaklı entegrenin çalışabilmesi için 7 ve 8 nolu bacaklara 3.579 MHz’lik bir kristal bağlamak gerekir.

    Şekil 4: DTMF kod çözücü
    CM8870 entegresi telefon hattından gelen DTMF sinyalinin kodunu çözdükten sonra Q1-Q4 adlı çıkışlarından 4 bitlik tuş bilgisini üretir (şekil 5). Böylece tuş takımındaki hangi tuşa basıldığı CM8870’in çıkış uçlarındaki gerilim seviyesinden anlaşılabilir. Tuşa basılı tutulduğu sürece (yani DTMF sinyali alındığı sürece) entegrenin 15 nolu StD ucu lojik 1 bilgisi üretir. Q1-Q4 çıkışlarındaki ikilik kod, faklı tonlu bir DTMF sinyali alınıncaya kadar aynı kalır.

    Şekil 5: CM8870 bacak numaraları ve isimleri
    Şekil 6’da CM8870 entegresinin doğruluk tablosu görülmekte. DTMF sinyalinin içerdiği ton çiftine göre çıkışta hangi ikilik değerin üretileceği bu tabloya göre belirlenir. Örneğin, DTMF kod çözücünün girişine uygulanan sinyal 697 Hz ve 1209 Hz’lik frekans bileşenlerini içeriyorsa, 4 bitlik çıkış bilgisi 0001 olur. Böylece, telefon başındaki kullanı cının 1 tuşuna bastığı anlaşılır.

    Şekil 6: Doğruluk tablosu
    Projede kullanılan PIC16F84A entegresi en popüler ve en yaygın olarak kullanılan mikro denetleyicilerden biridir. RISC mimarisine sahip bu mikro denetleyici 18 bacaklı olup 13 adet giriş-çıkış portuna sahiptir. Ayrıca 64 byte EEPROM belleği ve 1K şash program belleği bulunur. Şekil 7’de entegrenin bacak bağlantıları görülmekte. Gerek fiyatının ucuz olması gerekse port sayısının yeterli olması nedeniyle uzaktan kontrol sisteminde PIC16F84A mikro denetleyicisi tercih edildi.

    Şekil 7: PIC16F84A bacak numaraları ve isimleri
    Telefonla uzaktan kontrol sistemine ait devre şeması şekil 8’de görülmekte.
    Tasarlanan uzaktan kontrol sistemi, direkt olarak telefon hattına paralel bağlanır ve dünyanın herhangi bir yerinden telefon hattı aracılığı ile elektriksel cihazların kontrolünü sağlar. GSM veya Telekom şebekesine üye herhangi bir abonenin, cihazın bağlı olduğu telefon numarasını araması ile sistem aktif duruma geçer. Bu ilk aşamada PIC yazılımı yoluyla telefonun kaç kez çaldığı tespit edilir. Belirlenen çalma sayısına ulaşıldığında, sistem kullanıcıdan bir şifre girmesini bekler. Uygulamanın güvenliğ ini doğrudan etkilediği için şifre uzunluğunun 4 haneden az olmaması gerekir. 15 saniye süresince şifre girilmemesi durumunda telefon hattı otomatik olarak kapatılır. Böylece hattın lüzumsuz yere meşgul olması önlenir. Şifrenin doğru olarak girilip girilmediği PIC mikro denetleyici tarafından denetlenir. Girilen şifre yanlış ise sistem doğru şifre girilmesini bekler. Şifrenin doğru girilmesinin ardından * tuşuna basılarak cihaz kontrol aşamasına geçilir. Bu aşamada sistem kullanıcıdan komut bekler ve verilen komutları anında işler. İşlemi sonlandırmak için # tuşuna basılır.
    Şekil 8’de verilen elektronik devre 4 ayrı birimden oluşur. Bunlar optik izolasyon devresi, manyetik izolasyon devresi, DTMF kod çözücü devresi ve röle sürme devresidir. Bu birimlerin ayrıntılı açıklaması aşağıda verilmekte.

    Şekil 8: Devre şeması
    Şekil 9’da görülen optik izolasyon devresi, telefonun kaç kez çaldığını tespit etmek için kullanılır. Devredeki 4N25 opto-coupler entegresi, telefon hattı ile PIC devresi arasında optik bir izolasyon sağlar.

    Şekil 9: Optik izolasyon devresi
    Telefon santrali tarafından gönderilen yüksek genlikli sinüsoidal zil sinyali, bu devrenin girişine uygulandığında devrenin çıkışından 0-5V genlikli kare dalga sinyal gözlenir. Optik izolasyon devresinin çıkışı PIC mikro denetleyicinin RA0 pinine bağlıdır. Telefon her çaldığında devre çıkışında yaklaşık 25 adet darbe (pals) görülür. Darbe periyodu 40 ms civarındadır. Darbe sayısı santralin yapısına göre farklılık gösterebilir. PIC mikro denetleyici bu darbeleri sayarak telefonun kaç kez çaldığını tespit eder ve darbe sayısı istenen değere ulaşmışsa telefon hattını otomatik olarak açar. Örneğin çalma sayı sı yazılımda 8’e ayarlanmış ise PIC toplam 200 adet darbe saymış olur.
    Telefon hattı ile DTMF kod çözücü arası ndaki elektriksel izolasyon şekil 10’da görülen manyetik izolasyon devresi ile yapılır.

    Şekil 10: Manyetik izolasyon devresi
    Dönüşüm oranı 1:1 olan hat trafosu (line transformer) ile sağlanan izolasyon sayesinde sistem toprağı telefon hattından tamamen yalıtılmış olur. Böylece DTMF kod çözücü entegresi elektriksel gürültülerden daha az etkilenir ve bir arıza durumunda telefon hattına zarar gelmez. Devredeki röle kontağı kapalı hale geldiğinde, 560 ohm’luk direnç telefon hattı uçlarına bağlanmış olur. Böylece bir kullan kullanı cıya gerek olmadan hattın otomatik olarak açılması sağlanır. Diğer bir ifadeyle, telefon çalarken hat uçlarına 560 ohm’luk bir direnç paralel bağlanı rsa telefon elle açılmış gibi etki yapar.
    Şekil 11’de görülen CM8870 DTMF kod çözücü entegresi, telefon hattından iletilen DTMF sinyallerinin kodunu çözerek 4 bitlik sayısal bilgiye dönüştürür.

    Şekil 11: DTMF kod çözücü devresi
    Entegrenin Q1, Q2, Q3, Q4 çıkışları PIC mikro denetleyicinin RB0-RB3 girişlerine; StD ucu ise RB4 girişine bağlı. Böylece telefon üzerindeki tuşlardan hangisine basıldığı PIC mikro denetleyiciye yüklenen program ile tespit edilir.
    Şekil 12’de görülen röle sürme devresi sayesinde 3 ayrı elektriksel cihaza uzaktan kumanda edilir.

    Şekil 12: Röle sürme devresi
    Röle kontakları normalde açık halde olduğundan ilk anda cihazlar çalışır durumda değildir. Telefon tuşları aracılığıyla uzaktan komut verildiğinde uygun röleler PIC mikro denetleyici tarafından enerjilendirilir. Böylece röle kontaklarına bağlanmış olan ısıtıcı, lamba, fırın gibi elektriksel cihazlar çalı şmaya başlar. Telefon üzerindeki 1, 2 ve 3 tuşları yardımıyla cihazlar çalıştırılır (ON); 4, 5 ve 6 tuşları ile cihazlar kapatılır (OFF).
    Örnek cihaz bağlantısı şekil 13’deki gibi yapılmalı. 0.75 veya 1mm2 kesitli kablolar ile bağlantı yapılabilir. Şehir şebekesi ile çalışırken elektrik çarpma riski olduğundan bu tür bağlantıları yaparken çok dikkatli olmak gerekir. Mümkünse elektrik tesisat bilgisi olan bir kişiden yardım alınmalı.

    Şekil 13: Cihaz bağlantısı

    Ek : Telefon.c
    // Telefonla uzaktan cihaz kontrolu projesine ait PIC16F84A programi// CM8870'in Q1-Q4 cikislari PIC16F84A'nin RB0-RB3 pinlerine baglidir.// StD ucu RB4'e baglidir. Hat acma rolesi RA1'e baglidir.// Sifre onay LED'i RA2'ye baglidir.// Zil calma sayisi icin pals devresi RA1'e baglidir.// Kontrol edilecek cihazlar sirasiyla RB5,RB6,RB7'ye baglidir.#include #include #define StD RB4#define HAT_ROLE RA1#define LED RA2#define PALS RA0// 4MHz osilator__CONFIG(XT&WDTDIS&PWRTEN);unsigned char kontrol=0;unsigned int CX;//----------------------------------------------------------// Timer alt programi// 15 saniye suresince tusa basilmadiysa hatti kapatmak icin//----------------------------------------------------------void interrupt kesme(void){CX++;if(CX>15000)kontrol=1; T0IF=0; // bayragi temizleTMR0=131;}//----------------------------------------------------------//----------------------------------------------------------// ANA PROGRAM//----------------------------------------------------------main(void){unsigned char i,komut,sifre[5],sayac;//----------------------------------------------------------// Port konfigurasyonu//----------------------------------------------------------TRISB=0x1F; // PORTB'nin RB5,6,7 pinleri cikis,digerleri giris TRISA=0x01; // RA0 giris digerleri cikis//----------------------------------------------------------PORTB=0; // cihazlar enerjisizPORTA=0; // hat kapali, LED sonuk//-------------------------------------------------------------//Timer islemleri (kesme suresi=1ms)//-------------------------------------------------------------T0CS=0; // Dahili clockPSA=0; // Prescaler TMR0 icin ayarliPS0=0; PS1=1; PS2=0; // Oran 1:8ei(); // butun kesmeler etkinT0IE=0; //Baslangicta timer pasifT0IF=0; // bayrak temizle//-------------------------------------------------------------// resetten sonra 1 saniye beklefor(i=0;i<4;i++)DelayMs(250);basla:sayac=0; CX=0;for(;;){ // zil sayisi belirleme dongusuwhile(PALS==1); sayac++; if(sayac>50){ // Zil sayisi 2 HAT_ROLE=1; // Hatti ac sifreoku: for(i=0;i<5;i++){ // sifreyi al //-------------------------------------- kontrol=0; TMR0=131; // T0IE=1; // TIMER ON //-------------------------------------- while(StD==0){ // tusa basilmadi ise bekle if(kontrol==1){ // sure>15s ise hatti kapat HAT_ROLE=0; goto basla; // basa don } else {}; } T0IE=0; CX=0; // Tusa basildi ise Timer'i durdur, CX'i sifirla // Boylece yeni bir 15s'lik ek sure kazanilmis olur sifre=PORTB&0x0F; // sifreyi oku while(StD==1); // tus basili ise bekle } //-------------------------------------- // sifrenin son hanesi * olmalidir //--------Sifre konrol------------------ if(sifre[0]==1 && sifre[1]==2 && sifre[2]==3 && sifre[3]==4 && sifre[4]==11){ // 11 degeri tus takimindaki * tusuna karsilik gelir. LED=1; // sifre dogru ise LED'i yak for(;;){ while(StD==0); // cihazlar icin komut bekle komut=PORTB&0x0F; if(komut==1)RB5=1; // cihaz 1 ON if(komut==2)RB6=1; if(komut==3)RB7=1; if(komut==4)RB5=0; // cihaz 1 OFF if(komut==5)RB6=0; if(komut==6)RB7=0; if(komut==12){ // # tusuna basildi ise hatti kapat HAT_ROLE=0; LED=0; goto basla; // Cihazlarin ON/OFF durumlari degismeden kalir. } } //-------------------------------------- } else{ goto sifreoku; //sifre yanlis ise tekrar sifre okumaya git } } else{ // sayac<50 ise while(PALS==0); }} // for dongusu}
     
  2. Google

    Google Özel Üye

    Telefonla Uzaktan Cihaz Kontrolü
     

Bu Sayfayı Paylaş