Telefonla Uzaktan Cihaz Kontrolü

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.

Image

Şekil 1: Uzaktan kontrol sisteminin blok diyagramı

Image

Ş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.

Image

Ş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.

Image

Ş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.

Image

Ş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.

Image

Ş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.

Image

Ş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.

Image

Ş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.

Image

Ş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.

Image

Ş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.

Image

Ş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.

Image

Ş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ı.

Image

Ş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 temizle
TMR0=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 enerjisiz
PORTA=0; // hat kapali, LED sonuk

//-------------------------------------------------------------
//Timer islemleri (kesme suresi=1ms)
//-------------------------------------------------------------
T0CS=0; // Dahili clock
PSA=0; // Prescaler TMR0 icin ayarli
PS0=0; PS1=1; PS2=0; // Oran 1:8
ei(); // butun kesmeler etkin
T0IE=0; //Baslangicta timer pasif
T0IF=0; // bayrak temizle
//-------------------------------------------------------------

// resetten sonra 1 saniye bekle
for(i=0;i<4;i++)DelayMs(250);

basla:

sayac=0; CX=0;

for(;;){ // zil sayisi belirleme dongusu

while(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[i]=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

}

Hazırlayan : Yavuz Erol

İlginize Çekebilir

Termoelektrik Jeneratör

Bu yazıda Peltier adıyla bilinen termoelektrik modül yardımıyla ısı enerjisini elektrik enerjisine dönüştüren basit bir …