ericsson t-10 gsm modülü olarak kullanmak

Başlatan ximamyollardax, 19 Mayıs 2010, 15:36:46

ximamyollardax

     merhaba arkadaşlar
            bitirme projesi olarak bir oto güvenlik sistemi kuracağım.projenin amacı
1. alarm çalıdığında cep telefonuma mesaj gelmesi gerekiyor.
2. alarm tuşuna yani uzaktan kumanda ile basıldığında kapılardan her hangi birisi açıksa alarm sisteminin devreye girmesi gerekiyor ve cep telefonuna mesajın gelmesi gerekiyor.

bu projede ericsson t-10 gsm modülünü nasıl kullanıldığı hakkında bilği almak istiyorum .

hangi bacakalrına bilgi yollayabiliriz.
mikro işlemcide yazılımsal olarak nasıl yol izlenebilir.

BenC

#1
Daha önce kullanmıştım bir çalışma için. belki işinize yarayabilir.

T10 telofonu pc ye bağlamak için bu basit seviye dönüştürücüyü yapabilirsiniz. Hyper terminalden AT komutlarını kabul edecektir.


T10 alt bağlantı şeması:


1   = Ses Çıkış
2   = Ses Giriş
3   = Aksesuar sensorü
4   = AGND anolog ground dinleme yapacaksan ses devren için kullan
5   = Eller serbest girişi gerekliyse kullan
6   = MUTE çıkışı gerekliyse kullan
7   = Servis voltaj girişi kullanma
8   = Durum çıkışı kullanma
9   = TXD çıkışı (Pic'in veya PC nin RXD )
10 = DGND dijital ground devre ile ortak gnd olacak
11 = RXD girişi (Pic'in veya PC nin TXD)
12 = Şarj girişi aynı zamanda harici güç girişi(adaptör ile de çalıştırabilirsin 5v olmak şartıyla)

Aşağıda birzamanlar yaptığım T10 lu çalışma. PC den sms alıp göndermek için yapmıştım.


Örnek Çağrı Yapma Kodu:
'*******************************************************************************
'*							
'*									GSM  DIALER
'*						
'*	
'*  
'*  
'*	
'*  
'*	
'*  
'*
'*		File Name                   : gsmtelv6.bas
'*		File Version                : 16.09.2004
'*		PCB Version                 : 16.09.2004			
'*		Entegre Name                : PIC16F877 / 20 (MicroChip)
'*		Clock Frequancy             : 20 MHZ High Speed
'*		Convertor                   : MAX232 TTL > CMOS Convertor
'*		Power						: 12 Volt DC
'*		SYS_LED						: SYSTEM Led  
'*		SIN_Led						: GSM Sinyal Led i 
'*		
'*		DB9 Male Port 				: Computer Data Cable Port
'*		GSM Anten SMA Connector		: TriBand GSM Anten Connector
'*
'*
'*
'*								PIN DESCRIPTION
'*
'*		PIN NAME	PIN			EQUIVALENT					DESCRIPTION
'*	
'*		Porta.0		2			dtmfout	
'*		Porta.1		3			role1
'*		Porta.2		4			role2			
'*		Porta.3		5			etetik
'*		Porta.4		6			sys_led
'*		Porta.5		7			islem_ses_msg
'*
'*		Portb.0		21			D0
'*		Portb.1		22			D1
'*		Portb.2		23			D2
'*		Portb.3		24			D3
'*		Portb.4		25			NC					
'*		Portb.5		26			NC
'*		Portb.6		27			NC
'*		Portb.7		28			NC
'*
'*		Portc.0		11			ring_port
'*		PORTC.1		12			gsm_tx
'*		PORTC.2		13			gsm_rx
'*		PORTC.3		14			cep_pwr
'*		PORTC.4		15			isdn_ply
'*		PORTC.5		16			tel_hat_knt
'*		PORTC.6		17			NC
'*		PORTC.7		18			tus_kont
'*
'*		
'******************************************************************************		
		
		
@ DEVICE HS_OSC,WDT_ON, LVP_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF		
		
'************************   KONFİGÜRASYON    **********************************
		
			INCLUDE "modedefs.bas"				' File Include
			
			DEFINE OSC 20						' OSC Speed  Set 20 Mhz
			adcon1 = 7 							' Port A ve Port E Dijital I/O
			intcon=0							' Disable Interrupts
			pie1=0								' Set PowerOnReset Bit



'************************      ATAMALAR      **********************************
			sys_led			VAR			PORTA.0
			sin_led			VAR			PORTA.1
		    role1			VAR			PORTA.2
			role2			VAR			PORTA.3
			nc1				VAR			PORTA.4
			etetik			VAR			PORTA.5
			
			
			nc3				VAR			PORTB.7
			nc4				VAR			PORTB.6 
			cep_pwr			VAR			PORTB.5
			tus_kont		VAR			PORTB.4
			
			
			nc5				VAR			PORTC.0
			nc6				VAR			PORTC.1
			nc7				VAR			PORTC.2
			nc8				VAR			PORTC.3
			islem_ses_msg	VAR			PORTC.4
			isdn_ply		VAR			PORTC.5
			gsm_tx			VAR			PORTC.6
			gsm_rx			VAR			PORTC.7
			
			nc9				VAR			PORTD.0
			nc10			VAR			PORTD.1
			nc11			VAR			PORTD.2
			nc12			VAR			PORTD.3
			nc13			VAR			PORTD.4
			nc14			VAR			PORTD.5
			nc15			VAR			PORTD.6
			nc16			VAR			PORTD.7
			
			
		

'************************   YÖNLENDİRMELER   **********************************
			TRISA=%11101000
			TRISB=%11011111
			TRISC=%11000101




'************************      SABİTLER      **********************************

			gsmbaud			CON			16468



'************************     DEĞİŞKENLER    **********************************
a          VAR BYTE 
b          VAR BYTE
c          VAR BYTE
i          VAR BYTE           ' eeprom 0 yazma ve ptt arama değişkeni
j          VAR BYTE
m          VAR BYTE
t          VAR BYTE 
aa         VAR BYTE           ' telefon cevap verme suresinin değişkeni
bb         VAR BYTE           ' telefon cevap verme suresinin değişkeni
dt         VAR BYTE           ' ID değişkeni
jj         VAR BYTE           ' eeprom 0 yazma ve ptt arama değişkeni
ss         VAR BYTE           ' eeprom 0 yazma ve ptt arama değişkeni
tt         VAR BYTE           ' eeprom yazma değişkeni işlemlerde kullanılıyor
yy         VAR BYTE           ' eeprom yazma değişkeni işlemlerde kullanılıyor
uu         VAR BYTE           ' eeprom yazma değişkeni işlemlerde kullanılıyor
dtm        VAR BYTE
es1        VAR BYTE
es2        VAR BYTE
es3        VAR BYTE
es4        VAR BYTE
ket        VAR BYTE            
arar       VAR BYTE           ' eeprom 0 yazma ve ptt arama değişkeni
addr       VAR BYTE
modul      VAR BYTE
tetik      VAR BYTE
stone      VAR BYTE
redial     VAR BYTE
msgtur_say VAR BYTE






'************************       DİZİLER      **********************************
kod        VAR BYTE [20]
telno      VAR BYTE [11]   ' Telefon numarası değikeni
sehkod     VAR BYTE [3]
redialno   VAR BYTE [11]
sinyal	   VAR BYTE [4]


'************************ PROGRAM BAŞLANGICI **********************************
'************************ PROGRAM BAŞLANGICI **********************************
'************************ PROGRAM BAŞLANGICI **********************************
'************************ PROGRAM BAŞLANGICI **********************************

'***************** CEP TELEFONUNUN AÇILMASI VE SET EDİLMESİ *******************
enbas:	
			High cep_pwr
			High sin_led
			For addr=0 TO 7
				
				High sys_led
				Pause 500
				Low sys_led
				Pause 500
			
			Next addr
			
			
			
			Low cep_pwr
			
			Pause 1000
			
	'		For addr=0 TO 14
	'			
	'			High sys_led
	'			Pause 500
	'			Low sys_led
	'			Pause 500
			
	'		Next addr
			
		
EEPROM 98,["21"]
EEPROM 0,["1234"]
'EEPROM 10,["05326220881"]
EEPROM 123,["12345"]
EEPROM 120,["312"]
EEPROM 100,["2207"]





j=0 
m=0 
b=10
c=20
t=0

modul=2

set:SerOut2 gsm_tx,gsmbaud,["AT",13,10]
    SerIn2 gsm_rx,gsmbaud,15000,cephata,[wait("OK")]
    Pause 2000
    GoTo bas2

cephata:	GoTo enbas


bas2: High sys_led
      
		j=0 
		m=0 
		b=10
		c=20 
		t=0
		modul=2
		


'*************** Proğram Başlangıcı ****************************
bas:Low sys_led
        
    IF etetik=1 Then 
       ket=1
       High sys_led
       SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10]
       Pause 2000
       GoTo alarm
    EndIF
    
    
    
    SerOut2 gsm_tx,gsmbaud,["at+csq",13,10]
    SerIn2 gsm_rx,gsmbaud,500,bas,[wait ("+CSQ: "),STR sinyal\4]
    
    IF sinyal[1] ="," Then
     High  sin_led
     Else
     Low sin_led
    EndIF
    
    SerIn2 gsm_rx,gsmbaud,500,bas,[wait ("RING")]
    ket=0
    modul=2
    Pause 2500
    SerOut2 gsm_tx,gsmbaud,["ATA",13,10]
    Pause 1000
    SerOut2 gsm_tx,gsmbaud,["ATL=7",13,10]
    
    Pause 300
    Sound islem_ses_msg,[120,60]
    Pause 200
	GoTo aranma

GoTo bas	
        
alrm_kont:IF etetik=1 Then 
          ket=1
          High sys_led
          SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10]
          Pause 1500
          GoTo alarm
          EndIF
          Return	
'************** DIŞARIDAN ARANMA DURUMU ***********************
aranma: IF ket=0 Then
       
           IF etetik=1 Then 
		          ket=1
		          High sys_led
	              Pause 100
     	          SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10] 
		          Pause 2000
		          GoTo alarm
            EndIF
       
        EndIF
           
            
        i=1
	         While i<=202

	             IF tus_kont=1 Then
	           		a = (PORTB & $f)
	            	LookUp a,["01234567890*#"],dtm
	            	SerOut2 gsm_tx,gsmbaud,[dtm,13,10]
	            	GoTo dtmf_var1
	             EndIF
	             
	             Pause 50
	             i=i+1

             Wend
             
             
  gsm_cevap_yok:IF ket=1 Then
	                 b=b+11
	                 c=c+11
	                 Pause 100
		     	     SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10] 
				    
				     For i=0 TO 20 
		            	kod[i]=$FF
		             Next i
		             
		             j=0
		             m=0
		             t=0
				     Pause 2000
				     GoTo alarm
                 EndIF 
       
       		 Pause 100
     	     SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10] 
		     
		     For i=0 TO 20 
            	kod[i]=$FF
             Next i
             
             j=0
             m=0
             t=0
		     Pause 2000
		     
		     GoTo bas     
       
dtmf_var1: IF dtm="#" Then
			 GoTo sif_kont
		  EndIF	
			   
		  kod[j]=dtm
	   	  j=j+1
	   	  GoSub keyup
	   	  GoTo aranma

'**************************************************************	   
keyup:IF tus_kont=0 Then
       Pause 300
       Return
       EndIF
       GoTo keyup
'*********************** ŞİFRE KONTROL ***********************
sif_kont:IF (kod[0]="7") AND (kod[4]="7") Then 
	
			GoTo anasif_kont 'enson eklenen
	  
	     EndIF
	         
      IF j=4 Then
	             Pause 10
		         Read 0,es1
		         Pause 10
		         Read 1,es2
		         Pause 10
		         Read 2,es3
		         Pause 10
		         Read 3,es4
				 Pause 10
			     
			     IF (kod[0]=es1) AND (kod[1]=es2) AND (kod[2]=es3) AND (kod[3]=es4) Then
		
					    Pause 300
				        Sound islem_ses_msg,[120,20,0,20,120,20,0,20,120,20]
				        Pause 500
				        
				        For i=0 TO 20 
            	           kod[i]=$FF
                        Next i
             
			            j=0
			            m=0
			            t=0
			            Pause 100
				        
		                GoTo islem
				 Else
				
					 	Pause 300
       					Sound islem_ses_msg,[115,10,110,10,115,10,110,10]
                        Pause 500
					 
					    For i=0 TO 20 
            	           kod[i]=$FF
                        Next i
             
			            j=0
			            m=0
			            t=0
			            Pause 100
			             
		    			 GoTo aranma 
	
				 EndIF
	     
      Else
	     
	               Pause 300
       			   Sound islem_ses_msg,[115,10,110,10,115,10,110,10]
                   Pause 500
					 
				   For i=0 TO 20 
            	      kod[i]=$FF
                   Next i
             
			       j=0
			       m=0
			       t=0
			       Pause 100
			       GoTo aranma
	         
      EndIF



anasif_kont:Pause 10
            Read 100,es1
            Pause 10
            Read 101,es2
            Pause 10
            Read 102,es3
            Pause 10
            Read 103,es4            
            Pause 10
            
         IF (kod[1]=es1) AND (kod[2]=es2) AND (kod[3]=es3) AND (kod[4]=es4) Then
         		
         		Pause 10
         		Write 0,$31
         		Pause 10
         		Write 1,$32  
         		Pause 10
         		Write 2,$33 
         		Pause 10
         		Write 3,$34 
                        
                Pause 300
				Sound islem_ses_msg,[120,20,0,20,120,20,0,20,120,20]
				Pause 500
				        
		        For i=0 TO 20 
            	    kod[i]=$FF
                Next i
             
			    j=0
			    m=0
			    t=0
			      
	            Pause 100
     	        GoTo aranma
		 		   	
         Else
                Pause 300
                Sound islem_ses_msg,[115,10,110,10,115,10,110,10]
                Pause 500
                
                For i=0 TO 20 
            	    kod[i]=$FF
                Next i
             
			    j=0
			    m=0
			    t=0
		        GoTo aranma
		        
         EndIF
         
       
'************************** İŞLEMLER **************************         
islem:  	i=1
	        
	         While i<=202

	             IF tus_kont=1 Then
	           		a = (PORTB & $f)
	            	LookUp a,["01234567890*#"],dtm
	            	SerOut2 gsm_tx,gsmbaud,[dtm,13,10]
	            	GoTo dtmf_var2
	             EndIF
	             
	             Pause 50
	             i=i+1

             Wend
             
             
             IF ket=1 Then
	                 b=b+11
	                 c=c+11
	                 Pause 100
		     	     SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10] 
				    
				     For i=0 TO 20 
		            	kod[i]=$FF
		             Next i
		             
		             j=0
		             m=0
		             t=0
				     Pause 2000
				     GoTo alarm
                 EndIF 
             
             
       		 Pause 100
     	     SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10] 
		    
		     
		     For i=0 TO 20 
            	kod[i]=$FF
             Next i
             
             j=0
             m=0
             t=0
		     Pause 2000
		     
		     GoTo bas     
       
dtmf_var2:IF dtm="#" Then
			 GoTo is_kont
		  EndIF	
			   
		  kod[m]=dtm
	   	  m=m+1
	   	  GoSub keyup
	   	  GoTo islem
'**************************************************************	  
is_kont:GoSub keyup
       
       
	
		       
		
			        IF (kod[0]="1") AND (kod[1]="0")  Then 
			        
				        High role1
				        GoSub ucbip
				        GoSub yenile_kod
					   	GoTo islem
		            EndIF 
	
	
			        IF (kod[0]="1") AND (kod[1]="1")  Then 
			        
				        Low role1
				        GoSub ucbip
				        GoSub yenile_kod
					    GoTo islem
		            EndIF 
	
	
                   	IF (kod[0]="2") AND (kod[1]="0")  Then 
			        
				        High role2
				        GoSub ucbip
				        GoSub yenile_kod
					    GoTo islem
		            EndIF 
	
	
			        IF (kod[0]="2") AND (kod[1]="1")  Then
			        
				        Low role2
				        GoSub ucbip
				        GoSub yenile_kod
					    GoTo islem
		            EndIF 
	
        
        IF (kod[0]="8") AND (kod[1]="9") Then
         GoTo sif_deg ' Şifre değiştirme    
        EndIF
       
        IF (kod[0]="9") AND (kod[1]="9") Then ' Master Reset
         
         GoTo master_rst
         
        EndIF
       
       
        IF (kod[0]="*") AND (kod[1]="*")  Then 'ID nin girilmesi
        tt=123
        yy=127
        uu=121
        GoTo telno1
        EndIF
        
        
        
        
     
        
        
        IF (kod[0]="3") AND (kod[1]="1") Then 'tetik sinyalinin durumu
           IF kod[2]>"0" AND kod[2]<"3" Then 
		        Write 99,kod[2]
		         GoSub ucbip
		            b=10
			        c=20
		      
				For i=0 TO 20 
				    kod[i]=$FF
				    j=0
			        m=0
			        t=0
				Next i
		
		    	GoTo islem
			
		  Else
		        GoSub hatabip
		       		For i=0 TO 20 
					    kod[i]=$FF
					    j=0
				        m=0
				        t=0
		    		Next i
			    GoTo islem
	      EndIF
        EndIF 
        
        IF (kod[0]="5") AND (kod[1]="1") Then 
        tt=10
        yy=20
        uu=8
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="2") Then 
        tt=21
        yy=31
        uu=19
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="3") Then
        tt=32
        yy=42
        uu=30
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="4") Then 
        tt=43
        yy=53
        uu=41
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="5") Then 
        tt=54
        yy=64
        uu=52
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="6") Then 
        tt=65
        yy=75
        uu=63
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="7") Then 
        tt=76
        yy=86
        uu=74
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="8") Then 
        tt=87
        yy=97
        uu=85
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="9") Then 
       		Low isdn_ply
       		Pause 300
       		High isdn_ply
       		Pause 2000
	   		GoTo islem
       EndIF
       
        
GoSub hatabip
GoSub yenile_kod
GoTo islem 

master_rst:Write 0,$31
           Write 1,$32
           Write 2,$33
           Write 3,$34

			For addr = 10 TO 255
              Write addr,$30
           Next addr
          
         Pause 300
         Sound islem_ses_msg,[120,20,0,20,120,20,0,20,120,20]
         
          Pause 350
			
				For i=0 TO 20 
				    kod[i]=$FF
				Next i
			j=0
			m=0
			t=0
			Pause 1000
        GoTo islem



'******************************** TELEFON NUMARASI KAYIT YAPMA ***************
telno1:For addr=tt TO yy
       Write addr,kod[(addr-uu)]
       Pause 10
	   Next addr
	   GoSub ucbip
	   GoSub yenile_kod
	   GoTo islem
'******************************** ŞİFRE DEĞİŞTİRME ***********************
sif_deg:IF (kod[2]=kod[6]) AND (kod[3]=kod[7]) AND (kod[4]=kod[8]) AND (kod[5]=kod[9]) Then
		GoSub ucbip
		Write 0,kod[2]:Write 1,kod[3]:Write 2,kod[4]:Write 3,kod[5]
		GoSub yenile_kod
		GoTo islem
		Else
		GoSub hatabip
		GoSub yenile_kod
		GoTo islem
		EndIF
'*********************************** ALARM DURUMU *************************
alarm: SerOut2 gsm_tx,gsmbaud,["AT*ECAM=1",13,10]
		
         
              For addr=0 TO 255
			     Read addr,jj
			     IF (jj<48) OR (jj>57) Then
			     Write addr,$30
			     Pause 10
			     EndIF
		     Next addr
		     
		 SerOut2 gsm_tx,gsmbaud,["ATL=7",13,10]
		 
		 Pause 1000    
 
         
         
         IF c=108 Then 
            b=10 : c=20
            GoTo bas 
	     EndIF
	    
	   
	   
	    t=0
	      For addr=b TO c
            Read addr,telno[t]	  	
            Pause 10
            t=t+1	   
          Next addr           
        
         
      
     
     
     IF (telno[0]="0") AND (telno[1]="0") Then
         b=b+11: c=c+11: t=0
	     Pause 300
         GoTo alarm
	  EndIF 
     
     
       
        
        Read 99,tetik
          IF tetik="1" Then
             IF etetik=0 Then 
                b=10 : c=20 
                GoTo bas
             Else
                GoTo devam
             EndIF
          EndIF
      
      
      
      
devam:
	      SerOut2 gsm_tx,gsmbaud,["atd",STR telno\11 ,";",13,10]
	      SerIn2 gsm_rx,gsmbaud,25000,gsm_cevap_yok,[wait ("*ECAV: 1,3,1")]
		  SerOut2 gsm_tx,gsmbaud,["AT*ECAM=0",13,10]
				 	      
	      Pause 2000
	      Low isdn_ply
          Pause 300
          High isdn_ply
	      Pause 13000
	    
	     Pause 300
          Sound islem_ses_msg,[120,60]
         Pause 500 
	      

  GoTo aranma




'************* Uyarı sesleri ****************************
uzunbip:Pause 300
        Sound islem_ses_msg,[120,60]
        Pause 500 
        Return
ucbip:  Pause 300
        Sound islem_ses_msg,[120,20,0,20,120,20,0,20,120,20]
        Pause 500
        Return
hatabip:Pause 300
        Sound islem_ses_msg,[115,10,110,10,115,10,110,10]
        Pause 500
        Return
'***********************  CEVAP KISMI  *******************
cevap:   Pause 2500
         SerOut2 gsm_tx,gsmbaud,["ata",13,10]
         Pause 300
         Sound islem_ses_msg,[120,60]
         'GoSub uzunbip
         Pause 300
     
     
Return


'**************************************************      
son:Pause 100
    GoSub enson
    GoSub yenile_kod
    GoTo bas
'**************************************************    
enson:Pause 350
	  SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10]
Return
'*************************************************      
uzat:Pause 1000
     Return
'*************************************************
msgoku:Low isdn_ply
       Pause 300
       High isdn_ply
	   Pause 13000
       Return
'*************************************************       






'************************************************
yenile_kod: For i=0 TO 20 
            kod[i]=$FF
            Next i
            j=0
            m=0
            t=0
            Return

End '************* T H E  E N D ************




ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

BenC

Bu da SMS için

Örnek SMS gönderme kodu.
Alarm sistemi için yazmıştım. Şema yı koddan çıkartabilirsiniz.
'*******************************************************************************
'*							
'*									GSM  DIALER (MESAJ)
'*						
'*	
'*  
'*  
'*	
'*  
'*	
'*  
'*
'*		File Name                   : gsmtelv6.bas
'*		File Version                : 24.09.2004
'*		PCB Version                 : 16.09.2004			
'*		Entegre Name                : PIC16F877 / 20 (MicroChip)
'*		Clock Frequancy             : 20 MHZ High Speed
'*		Convertor                   : MAX232 TTL > CMOS Convertor
'*		Power						: 12 Volt DC
'*		SYS_LED						: SYSTEM Led  
'*		SIN_Led						: GSM Sinyal Led i 
'*		
'*		DB9 Male Port 				: Computer Data Cable Port
'*		GSM Anten SMA Connector		: TriBand GSM Anten Connector
'*
'*
'*
'*								PIN DESCRIPTION
'*
'*		PIN NAME	PIN			EQUIVALENT					DESCRIPTION
'*	
'*		Porta.0		2			dtmfout	
'*		Porta.1		3			role1
'*		Porta.2		4			role2			
'*		Porta.3		5			etetik
'*		Porta.4		6			sys_led
'*		Porta.5		7			islem_ses_msg
'*
'*		Portb.0		21			D0
'*		Portb.1		22			D1
'*		Portb.2		23			D2
'*		Portb.3		24			D3
'*		Portb.4		25			NC					
'*		Portb.5		26			NC
'*		Portb.6		27			NC
'*		Portb.7		28			NC
'*
'*		Portc.0		11			ring_port
'*		PORTC.1		12			gsm_tx
'*		PORTC.2		13			gsm_rx
'*		PORTC.3		14			cep_pwr
'*		PORTC.4		15			isdn_ply
'*		PORTC.5		16			tel_hat_knt
'*		PORTC.6		17			NC
'*		PORTC.7		18			tus_kont
'*
'*		
'******************************************************************************		
		
		
@ DEVICE HS_OSC,WDT_ON, LVP_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF				
		
'************************   KONFİGÜRASYON    **********************************
		
			INCLUDE "modedefs.bas"				' File Include
			
			DEFINE OSC 20						' OSC Speed  Set 20 Mhz
			DEFINE I2C_SLOW 1
			adcon1 = 7 							' Port A ve Port E Dijital I/O
			intcon=0							' Disable Interrupts
			pie1=0								' Set PowerOnReset Bit



'************************      ATAMALAR      **********************************
			sys_led			VAR			PORTA.0
			sin_led			VAR			PORTA.1
		    role1			VAR			PORTA.2
			role2			VAR			PORTA.3
			nc1				VAR			PORTA.4
			etetik			VAR			PORTA.5
			
			
			nc3				VAR			PORTB.7
			nc4				VAR			PORTB.6 
			cep_pwr			VAR			PORTB.5
			tus_kont		VAR			PORTB.4
			
			
			nc5				VAR			PORTC.0
			nc6				VAR			PORTC.1
			nc7				VAR			PORTC.2
			nc8				VAR			PORTC.3
			islem_ses_msg	VAR			PORTC.4
			isdn_ply		VAR			PORTC.5
			gsm_tx			VAR			PORTC.6
			gsm_rx			VAR			PORTC.7
			
			sda				VAR			PORTD.0
			scl				VAR			PORTD.1
			nc11			VAR			PORTD.2
			nc12			VAR			PORTD.3
			nc13			VAR			PORTD.4
			nc14			VAR			PORTD.5
			nc15			VAR			PORTD.6
			nc16			VAR			PORTD.7
			
			
		

'************************   YÖNLENDİRMELER   **********************************
			TRISA=%11101000
			TRISB=%11011111
			TRISC=%11000101




'************************      SABİTLER      **********************************

			gsmbaud			CON			16468







'************************     DEĞİŞKENLER    **********************************
a          VAR BYTE 
b          VAR BYTE
c          VAR BYTE
i          VAR BYTE           ' eeprom 0 yazma ve ptt arama değişkeni
j          VAR BYTE
m          VAR BYTE
k          VAR BYTE
t          VAR BYTE 
aa         VAR BYTE           ' telefon cevap verme suresinin değişkeni
bb         VAR BYTE           ' telefon cevap verme suresinin değişkeni
dt         VAR BYTE           ' ID değişkeni
jj         VAR BYTE           ' eeprom 0 yazma ve ptt arama değişkeni
ss         VAR BYTE           ' eeprom 0 yazma ve ptt arama değişkeni
tt         VAR BYTE           ' eeprom yazma değişkeni işlemlerde kullanılıyor
yy         VAR BYTE           ' eeprom yazma değişkeni işlemlerde kullanılıyor
uu         VAR BYTE           ' eeprom yazma değişkeni işlemlerde kullanılıyor
jjj		   VAR WORD
mmm		   VAR BYTE
nnn        VAR WORD
dtm        VAR BYTE
es1        VAR BYTE
es2        VAR BYTE
es3        VAR BYTE
es4        VAR BYTE
ket        VAR BYTE            
arar       VAR BYTE           ' eeprom 0 yazma ve ptt arama değişkeni
addr       VAR BYTE
modul      VAR BYTE
tetik      VAR BYTE
stone      VAR BYTE
redial     VAR BYTE
msgtur_say VAR BYTE

msgindex    VAR BYTE
msgindex1	VAR BYTE
msgindex2	VAR BYTE


pd1			VAR BYTE
pd2			VAR BYTE
pd3			VAR BYTE
pd4			VAR BYTE
pd5			VAR BYTE
pd6			VAR BYTE
pd7			VAR BYTE


pduadet    VAR BYTE
eaddr	   VAR WORD
txpdu	   VAR BYTE
txt		   VAR BYTE
pdu		   VAR BYTE
pdusay	   VAR BYTE
msgboy	   VAR BYTE
mtel	   VAR BYTE[12]


'************************       DİZİLER      **********************************
kod        VAR BYTE [20]
telno      VAR BYTE [11]   ' Telefon numarası değikeni
sehkod     VAR BYTE [3]
redialno   VAR BYTE [11]
sinyal	   VAR BYTE [4]

kontrol    VAR BYTE[8]
pduveri    VAR BYTE[7]
txtveri	   VAR BYTE[8]
veri2	   VAR BYTE[72]
veri3	   VAR BYTE[72]


'************************ PROGRAM BAŞLANGICI **********************************
'************************ PROGRAM BAŞLANGICI **********************************
'************************ PROGRAM BAŞLANGICI **********************************
'************************ PROGRAM BAŞLANGICI **********************************

'***************** CEP TELEFONUNUN AÇILMASI VE SET EDİLMESİ *******************
enbas:	
			High cep_pwr
			High sin_led
			For addr=0 TO 7
				
				High sys_led
				Pause 500
				Low sys_led
				Pause 500
			
			Next addr
			
			
			
			Low cep_pwr
			
			Pause 1000
			
	'		For addr=0 TO 14
	'			
	'			High sys_led
	'			Pause 500
	'			Low sys_led
	'			Pause 500
			
	'		Next addr
			
		
EEPROM 98,["21"]
EEPROM 0,["1234"]
EEPROM 10,["05326220881"]
EEPROM 123,["12345"]
EEPROM 120,["312"]
EEPROM 100,["2207"]





j=0 
m=0 
b=10
c=20
t=0

modul=2

set:SerOut2 gsm_tx,gsmbaud,["AT",13,10]
    SerIn2 gsm_rx,gsmbaud,15000,cephata,[wait("OK")]
    Pause 2000
    
    
    
    SerOut2 gsm_tx,gsmbaud,["AT+CPMS=",34,"ME",34,13,10]
    Pause 1000
    For msgindex=1 TO 15
    SerOut2 gsm_tx,gsmbaud,["AT+CMGD=",#msgindex,13,10]
    Pause 300  
    Next msgindex
    
    GoTo bas2

cephata:	GoTo enbas


bas2: High sys_led
      
		j=0 
		m=0 
		b=10
		c=20 
		t=0
		modul=2
		


'*************** Proğram Başlangıcı ****************************
bas:Low sys_led
        
    IF etetik=1 Then 
       ket=1
       High sys_led
       SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10]
       Pause 2000
       GoTo alarm
    EndIF
    
    
    
    SerOut2 gsm_tx,gsmbaud,["at+csq",13,10]
    SerIn2 gsm_rx,gsmbaud,500,bas,[wait ("+CSQ: "),STR sinyal\4]
    
    IF sinyal[1] ="," Then
     High  sin_led
     Else
     Low sin_led
    EndIF
    
    
        'GoTo msg_oku
msg_devam:    
    
    
    SerIn2 gsm_rx,gsmbaud,500,bas,[wait ("RING")]
    ket=0
    modul=2
    Pause 2500
    SerOut2 gsm_tx,gsmbaud,["ATA",13,10]
    Pause 1000
    SerOut2 gsm_tx,gsmbaud,["ATL=7",13,10]
    
    Pause 300
    Sound islem_ses_msg,[120,60]
    Pause 200
	GoTo aranma

GoTo bas	
        
alrm_kont:IF etetik=1 Then 
          ket=1
          High sys_led
          SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10]
          Pause 1500
          GoTo alarm
          EndIF
          Return	
'************** DIŞARIDAN ARANMA DURUMU ***********************
aranma: IF ket=0 Then
       
           IF etetik=1 Then 
		          ket=1
		          High sys_led
	              Pause 100
     	          SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10] 
		          Pause 2000
		          GoTo alarm
            EndIF
       
        EndIF
           
            
        i=1
	         While i<=202

	             IF tus_kont=1 Then
	           		a = (PORTB & $f)
	            	LookUp a,["01234567890*#"],dtm
	            	SerOut2 gsm_tx,gsmbaud,[dtm,13,10]
	            	GoTo dtmf_var1
	             EndIF
	             
	             Pause 50
	             i=i+1

             Wend
             
             
  gsm_cevap_yok:IF ket=1 Then
	                 b=b+11
	                 c=c+11
	                 Pause 100
		     	     SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10] 
				    
				     For i=0 TO 20 
		            	kod[i]=$FF
		             Next i
		             
		             j=0
		             m=0
		             t=0
				     Pause 2000
				     GoTo alarm
                 EndIF 
       
       		 Pause 100
     	     SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10] 
		     
		     For i=0 TO 20 
            	kod[i]=$FF
             Next i
             
             j=0
             m=0
             t=0
		     Pause 2000
		     
		     GoTo bas     
       
dtmf_var1: IF dtm="#" Then
			 GoTo sif_kont
		  EndIF	
			   
		  kod[j]=dtm
	   	  j=j+1
	   	  GoSub keyup
	   	  GoTo aranma

'**************************************************************	   
keyup:IF tus_kont=0 Then
       Pause 300
       Return
       EndIF
       GoTo keyup
'*********************** ŞİFRE KONTROL ***********************
sif_kont:IF (kod[0]="7") AND (kod[4]="7") Then 
	
			GoTo anasif_kont 'enson eklenen
	  
	     EndIF
	         
      IF j=4 Then
	             Pause 10
		         Read 0,es1
		         Pause 10
		         Read 1,es2
		         Pause 10
		         Read 2,es3
		         Pause 10
		         Read 3,es4
				 Pause 10
			     
			     IF (kod[0]=es1) AND (kod[1]=es2) AND (kod[2]=es3) AND (kod[3]=es4) Then
		
					    Pause 300
				        Sound islem_ses_msg,[120,20,0,20,120,20,0,20,120,20]
				        Pause 500
				        
				        For i=0 TO 20 
            	           kod[i]=$FF
                        Next i
             
			            j=0
			            m=0
			            t=0
			            Pause 100
				        
		                GoTo islem
				 Else
				
					 	Pause 300
       					Sound islem_ses_msg,[115,10,110,10,115,10,110,10]
                        Pause 500
					 
					    For i=0 TO 20 
            	           kod[i]=$FF
                        Next i
             
			            j=0
			            m=0
			            t=0
			            Pause 100
			             
		    			 GoTo aranma 
	
				 EndIF
	     
      Else
	     
	               Pause 300
       			   Sound islem_ses_msg,[115,10,110,10,115,10,110,10]
                   Pause 500
					 
				   For i=0 TO 20 
            	      kod[i]=$FF
                   Next i
             
			       j=0
			       m=0
			       t=0
			       Pause 100
			       GoTo aranma
	         
      EndIF



anasif_kont:Pause 10
            Read 100,es1
            Pause 10
            Read 101,es2
            Pause 10
            Read 102,es3
            Pause 10
            Read 103,es4            
            Pause 10
            
         IF (kod[1]=es1) AND (kod[2]=es2) AND (kod[3]=es3) AND (kod[4]=es4) Then
         		
         		Pause 10
         		Write 0,$31
         		Pause 10
         		Write 1,$32  
         		Pause 10
         		Write 2,$33 
         		Pause 10
         		Write 3,$34 
                        
                Pause 300
				Sound islem_ses_msg,[120,20,0,20,120,20,0,20,120,20]
				Pause 500
				        
		        For i=0 TO 20 
            	    kod[i]=$FF
                Next i
             
			    j=0
			    m=0
			    t=0
			      
	            Pause 100
     	        GoTo aranma
		 		   	
         Else
                Pause 300
                Sound islem_ses_msg,[115,10,110,10,115,10,110,10]
                Pause 500
                
                For i=0 TO 20 
            	    kod[i]=$FF
                Next i
             
			    j=0
			    m=0
			    t=0
		        GoTo aranma
		        
         EndIF
         
       
'************************** İŞLEMLER **************************         
islem:  	i=1
	        
	         While i<=202

	             IF tus_kont=1 Then
	           		a = (PORTB & $f)
	            	LookUp a,["01234567890*#"],dtm
	            	SerOut2 gsm_tx,gsmbaud,[dtm,13,10]
	            	GoTo dtmf_var2
	             EndIF
	             
	             Pause 50
	             i=i+1

             Wend
             
             
             IF ket=1 Then
	                 b=b+11
	                 c=c+11
	                 Pause 100
		     	     SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10] 
				    
				     For i=0 TO 20 
		            	kod[i]=$FF
		             Next i
		             
		             j=0
		             m=0
		             t=0
				     Pause 2000
				     GoTo alarm
                 EndIF 
             
             
       		 Pause 100
     	     SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10] 
		    
		     
		     For i=0 TO 20 
            	kod[i]=$FF
             Next i
             
             j=0
             m=0
             t=0
		     Pause 2000
		     
		     GoTo bas     
       
dtmf_var2:IF dtm="#" Then
			 GoTo is_kont
		  EndIF	
			   
		  kod[m]=dtm
	   	  m=m+1
	   	  GoSub keyup
	   	  GoTo islem
'**************************************************************	  
is_kont:GoSub keyup
       
       
	
		       
		
			        IF (kod[0]="1") AND (kod[1]="0")  Then 
			        
				        High role1
				        GoSub ucbip
				        GoSub yenile_kod
					   	GoTo islem
		            EndIF 
	
	
			        IF (kod[0]="1") AND (kod[1]="1")  Then 
			        
				        Low role1
				        GoSub ucbip
				        GoSub yenile_kod
					    GoTo islem
		            EndIF 
	
	
                   	IF (kod[0]="2") AND (kod[1]="0")  Then 
			        
				        High role2
				        GoSub ucbip
				        GoSub yenile_kod
					    GoTo islem
		            EndIF 
	
	
			        IF (kod[0]="2") AND (kod[1]="1")  Then
			        
				        Low role2
				        GoSub ucbip
				        GoSub yenile_kod
					    GoTo islem
		            EndIF 
	
	               
	               IF (kod[0]="0") AND (kod[1]="0")  Then
			        
				        
				        GoSub ucbip
				        GoSub yenile_kod
					    GoTo mesaj_oku
		            EndIF 
	
        
        IF (kod[0]="8") AND (kod[1]="9") Then
         GoTo sif_deg ' Şifre değiştirme    
        EndIF
       
        IF (kod[0]="9") AND (kod[1]="9") Then ' Master Reset
         
         GoTo master_rst
         
        EndIF
       
       
        IF (kod[0]="*") AND (kod[1]="*")  Then 'ID nin girilmesi
        tt=123
        yy=127
        uu=121
        GoTo telno1
        EndIF
        
        
        
        
     
        
        
        IF (kod[0]="3") AND (kod[1]="1") Then 'tetik sinyalinin durumu
           IF kod[2]>"0" AND kod[2]<"3" Then 
		        Write 99,kod[2]
		         GoSub ucbip
		            b=10
			        c=20
		      
				For i=0 TO 20 
				    kod[i]=$FF
				    j=0
			        m=0
			        t=0
				Next i
		
		    	GoTo islem
			
		  Else
		        GoSub hatabip
		       		For i=0 TO 20 
					    kod[i]=$FF
					    j=0
				        m=0
				        t=0
		    		Next i
			    GoTo islem
	      EndIF
        EndIF 
        
        IF (kod[0]="5") AND (kod[1]="1") Then 
        tt=10
        yy=20
        uu=8
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="2") Then 
        tt=21
        yy=31
        uu=19
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="3") Then
        tt=32
        yy=42
        uu=30
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="4") Then 
        tt=43
        yy=53
        uu=41
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="5") Then 
        tt=54
        yy=64
        uu=52
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="6") Then 
        tt=65
        yy=75
        uu=63
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="7") Then 
        tt=76
        yy=86
        uu=74
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="8") Then 
        tt=87
        yy=97
        uu=85
        GoTo telno1
        EndIF
        
        IF (kod[0]="5") AND (kod[1]="9") Then 
       		Low isdn_ply
       		Pause 300
       		High isdn_ply
       		Pause 2000
	   		GoTo islem
       EndIF
       
        
GoSub hatabip
GoSub yenile_kod
GoTo islem 

master_rst:Write 0,$31
           Write 1,$32
           Write 2,$33
           Write 3,$34

			For addr = 10 TO 255
              Write addr,$30
           Next addr
          
         Pause 300
         Sound islem_ses_msg,[120,20,0,20,120,20,0,20,120,20]
         
          Pause 350
			
				For i=0 TO 20 
				    kod[i]=$FF
				Next i
			j=0
			m=0
			t=0
			Pause 1000
        GoTo islem



'******************************** TELEFON NUMARASI KAYIT YAPMA ***************
telno1:For addr=tt TO yy
       Write addr,kod[(addr-uu)]
       Pause 10
	   Next addr
	   GoSub ucbip
	   GoSub yenile_kod
	   GoTo islem
'******************************** ŞİFRE DEĞİŞTİRME ***********************
sif_deg:IF (kod[2]=kod[6]) AND (kod[3]=kod[7]) AND (kod[4]=kod[8]) AND (kod[5]=kod[9]) Then
		GoSub ucbip
		Write 0,kod[2]:Write 1,kod[3]:Write 2,kod[4]:Write 3,kod[5]
		GoSub yenile_kod
		GoTo islem
		Else
		GoSub hatabip
		GoSub yenile_kod
		GoTo islem
		EndIF
'*********************************** ALARM DURUMU *************************
alarm: SerOut2 gsm_tx,gsmbaud,["AT*ECAM=1",13,10]
		
         
              For addr=0 TO 255
			     Read addr,jj
			     IF (jj<48) OR (jj>57) Then
			     Write addr,$30
			     Pause 10
			     EndIF
		     Next addr
		     
		 SerOut2 gsm_tx,gsmbaud,["ATL=7",13,10]
		 
		 Pause 1000    
 
         
         
         IF c=108 Then 
            b=10 : c=20
            GoTo bas 
	     EndIF
	    
	   
	   
	    t=0
	      For addr=b TO c
            Read addr,telno[t]	  	
            Pause 10
            t=t+1	   
          Next addr           
        
         mtel[0]   = telno[0]		' 0
         mtel[1]   = "9"			' 9
		 mtel[2]   = telno[2]		' 3
		 mtel[3]   = telno[1]		' 5
		 mtel[4]   = telno[4]		' 6
         mtel[5]   = telno[3]		' 2
         mtel[6]   = telno[6]		' 2
         mtel[7]   = telno[5]		' 2
         mtel[8]   = telno[8]		' 8
         mtel[9]   = telno[7]		' 0
         mtel[10]  = telno[10]		' 1
         mtel[11]  = telno[9]		' 8     
     
     
     IF (telno[0]="0") AND (telno[1]="0") Then
         b=b+11: c=c+11: t=0
	     Pause 300
         GoTo alarm
	  EndIF 
     
     
       
        
        Read 99,tetik
          IF tetik="1" Then
             IF etetik=0 Then 
                b=10 : c=20 
                GoTo bas
             Else
                GoTo devam
             EndIF
          EndIF
      
      
      
      
devam:	
         I2CRead sda,scl,$A0,301,[txpdu]
         I2CRead sda,scl,$A0,300,[pdusay]
         
'       pd1 = pdusay
'       pd2 = pdusay
       
       
'       pd3 = pd1 >> 4   '***
       
'       pd4 = pd2 << 4
'       pd5 = pd4 >> 4   '***
       
    'pd1 = ( pd3 * 16 ) + pd5
       
        
       
       'txpdu = pd1
       
       
       
         
         
         
        
         
         
         msgboy = 14 + txpdu  
         
		  
		 

		  	     
	      SerOut2 gsm_tx,gsmbaud,["AT+CMGS=",#msgboy,13,10]
          SerIn2  gsm_rx,gsmbaud,5000,msghata2,[wait(">")]
	      

	      SerOut2 gsm_tx,gsmbaud,["0011000C91",STR mtel\12,"0000AA",HEX2 pdusay] 
	       
	       eaddr = 0
	       
	       For addr = 1 TO txpdu
	      
	          I2CRead sda,scl,$A0,eaddr,[pdu]
		  	  
		  	  SerOut2 gsm_tx,gsmbaud,[HEX2 pdu]
		  	  
		  	  eaddr = eaddr + 1
		   Next addr
	      

	      SerOut2 gsm_tx,gsmbaud,[26]
          SerIn2  gsm_rx,gsmbaud,35000,msghata2,[wait("+CMGS")]
	      
	      

         Pause 2000
    
	      
	      'SerOut2 gsm_tx,gsmbaud,["atd",STR telno\11 ,";",13,10]
	      'SerIn2 gsm_rx,gsmbaud,25000,gsm_cevap_yok,[wait ("*ECAV: 1,3,1")]
		  'SerOut2 gsm_tx,gsmbaud,["AT*ECAM=0",13,10]
				 	      
	      'Pause 2000
	      'Low isdn_ply
          'Pause 300
          'High isdn_ply
	      'Pause 13000
	    
	     'Pause 300
          'Sound islem_ses_msg,[120,60]
         'Pause 500 
	      

  GoTo aranma


msghata2:SerOut2 gsm_tx,gsmbaud,["AT+CKPD=",34,"E",34,13,10]
         Pause 100
         GoTo gsm_cevap_yok



'************* Uyarı sesleri ****************************
uzunbip:Pause 300
        Sound islem_ses_msg,[120,60]
        Pause 500 
        Return
ucbip:  Pause 300
        Sound islem_ses_msg,[120,20,0,20,120,20,0,20,120,20]
        Pause 500
        Return
hatabip:Pause 300
        Sound islem_ses_msg,[115,10,110,10,115,10,110,10]
        Pause 500
        Return
'***********************  CEVAP KISMI  *******************
cevap:   Pause 2500
         SerOut2 gsm_tx,gsmbaud,["ata",13,10]
         Pause 300
         Sound islem_ses_msg,[120,60]
         'GoSub uzunbip
         Pause 300
     
     
Return


'**************************************************      
son:Pause 100
    GoSub enson
    GoSub yenile_kod
    GoTo bas
'**************************************************    
enson:Pause 350
	  SerOut2 gsm_tx,gsmbaud,["at+ckpd=",34,"E",34,13,10]
Return
'*************************************************      
uzat:Pause 1000
     Return
'*************************************************
msgoku:Low isdn_ply
       Pause 300
       High isdn_ply
	   Pause 13000
       Return
'*************************************************       






'************************************************
yenile_kod: For i=0 TO 20 
            kod[i]=$FF
            Next i
            j=0
            m=0
            t=0
            Return
            
            
            
            








				




mesaj_oku: SerOut2 gsm_tx,gsmbaud,["AT+CPMS=",34,"ME",34,13,10]  
             SerIn2 gsm_rx,gsmbaud,2000,mesaj_oku,[wait("+CPMS: "),msgindex1,msgindex2] 
          
		     IF (msgindex1 = "0") AND (msgindex2=",") Then 
		       	Pause 2000
		       	GoTo mesaj_oku
		     Else   
		         	IF (msgindex1 > "0") Then
		            	 Pause 2000
		            	 GoTo msg_oku
		            EndIF

			 EndIF




'******************************************************************
'******************************************************************
'************* Cep Telefonuna Gelen Mesajın Okunması  *************
'******************************************************************
'******************************************************************

msg_oku:Pause 200
		SerOut2 gsm_tx,gsmbaud,["AT+CMGR=1",13,10] '102 string hex2 olarak 51
        SerIn2 gsm_rx,gsmbaud,2000,msg_oku_bitti,[wait("+CMGR: "),skip 3,DEC3 pdusay]
        
        
       'pd1 = pdusay
       'pd2 = pdusay
       
       
       'pd3 = pd1 >> 4   '***
       
       'pd4 = pd2 << 4
       'pd5 = pd4 >> 4   '***
       
       
       
       'pd1 = ( pd3 * 16 ) + pd5
       
        
       
       txpdu = pdusay - 19      
       
  
        

        
        SerIn2 gsm_rx,16468,3000,devam2,[wait ("0791"),skip 18,STR telno\12,skip 18,HEX2 pdusay]
        
        
        
        
       
        
        For addr=0 TO 71
        SerIn2 gsm_rx,gsmbaud,4000,devam1,[HEX2 veri2(addr)]
        Next addr
        
 devam1:For addr=0 TO 71
        SerIn2 gsm_rx,gsmbaud,4000,devam2,[HEX2 veri3(addr)]
        Next addr
               
 devam2:        
        I2CWrite sda,scl,$A0,300,[pdusay]
        Pause 10
        I2CWrite sda,scl,$A0,301,[txpdu]
        Pause 10
		
		
		
		
		
 			
 			eaddr = 0
 				For addr = 0 TO 71
					
						I2CWrite sda,scl,$A0,eaddr,[veri2(addr)]
						Pause 10
						eaddr = eaddr + 1
					Next addr	
					
			eaddr = 72
					For addr = 0 TO 71
					
						I2CWrite sda,scl,$A0,eaddr,[veri3(addr)]
						Pause 10
						eaddr = eaddr + 1
					Next addr	

					
		
 			        	

msg_oku_bitti:SerOut2 gsm_tx,gsmbaud,["AT+CMGD=1",13,10]
              Pause 500     
              GoTo msg_devam



'07
'91
'09 35 92 10 00 00 
'04
'0C
'91 09 35 46 19 22 85
'00
'00
'40 21 62 81 84 51 40
'1F 
'61 79 3B 3F 3F 4E 9B 31 D9 8C
'D6 0C CB D7 65 3A BD 0C 9A BF
'F3 E7 BA 1B 64 0F CB 01
'OK



'+CMGR: 0,,58
'07
'91
'09 35 92 10 00 00
'04
'0C
'91 09 35 46 19 22 85
'00
'00
'40 21 62 22 05 83 40
'2C
'61 79 3B 3F 3F 4E 9B 31 D9 8C
'D6 0C CB D7 65 3A BD 0C 9A BF
'F3 E7 BA 1B 64 0F CB 41 61 79
'3B 3F 3F 4E 9B 31 D9 8C 06

'+CMGR: 0,,49
'07
'91
'09 35 92 10 00 00 
'04
'0C
'91 09 35 46 19 22 85 
'00
'00
'40 21 62 22 45 75 40
'22 
'61 79 3B 3F 3F 4E 9B 31 D9 8C 
'D6 0C CB D7 65 3A BD 0C 9A BF 
'F3 E7 BA 1B 64 0F CB 41 61 39



'******************************************************************
'******************************************************************
'*** Gelen PDU Mesajın EEproma PDU ve TXT Formatında Yazılması ****
'******************************************************************
'******************************************************************

pdu_msg_kaydet : 	eaddr = 0
					For addr = 0 TO 69
					
						I2CWrite sda,scl,$A0,eaddr,[veri2(addr)]
						Pause 10
						eaddr = eaddr + 1
					Next addr	
					
					eaddr = 70
					For addr = 70 TO 139
					
						I2CWrite sda,scl,$A0,eaddr,[veri3(addr-70)]
						Pause 10
						eaddr = eaddr + 1
					Next addr	

					
			nnn = 140			
			jjj = 0
            
            For mmm=0 TO 19
            
            
            		For k=0 TO 6
            			I2CRead sda,scl,$A0,jjj,[pduveri(k)]
            			jjj=jjj+1
            		Next k              
           k=0
           txtveri[0]=pduveri[k] << 1
           txtveri[0]=txtveri[0] >> 1
           
           txtveri[1]=pduveri[(k+1)] << 2
           txtveri[1]=((txtveri[1] >> 1 ) | (pduveri[k] >> 7 ))
           
           txtveri[2]=pduveri[(k+2)] << 3
           txtveri[2]=((txtveri[2] >> 1 ) | (pduveri[(k+1)] >> 6 ))
           
           txtveri[3]=pduveri[(k+3)] << 4
           txtveri[3]=((txtveri[3] >> 1 ) | (pduveri[(k+2)] >> 5 ))
           
           txtveri[4]=pduveri[(k+4)] << 5
           txtveri[4]=((txtveri[4] >> 1 ) | (pduveri[(k+3)] >> 4 ))
           
           txtveri[5]=pduveri[(k+5)] << 6
           txtveri[5]=((txtveri[5] >> 1 ) | (pduveri[(k+4)] >> 3 ))
           
           txtveri[6]=pduveri[(k+6)] << 7
           txtveri[6]=((txtveri[6] >> 1 ) | (pduveri[(k+5)] >> 2 ))
           
           txtveri[7]=txtveri[(k+6)] >> 1
 
            
            		For addr = 0 TO 7

	            		I2CWrite sda,scl,$A0,nnn,[txtveri(addr)]
	            		nnn = nnn + 1
	            		Pause 10
            		
            		Next addr
            		
            		
            		
            
            Next mmm
     jjj=0



					
Return




End '************* T H E  E N D ************

ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

BenC

Benim aracımda takılı olan sistem şöyle:

Alarm çaldığı zaman veya acil durum düğmesine basıldığı zaman kayıt edilmiş üç numaraya çağrı veya mesaj göndermekte.

Alarm tetiğini, alarm sisteminden sirene giden GND veya +V  den al. Bunu en güzel 4n25 ile yaparsın. Picin bir ucunu giriş yap. Pull-Up veya Pull-Down seçimini alarm sistemi çalıştığı zaman sirene artı mı gidiyor yoksa gnd ye mi çekiyor durumuna göre belirlersiniz. Yazacağınız kodda mutlaka GSM şebekesinden kaynaklanan hatalar için yer olsun. Sinyal seviyesi 5 veya register gözüktüğü halde arama yapamama veya sms gönderememe gibi durumlara hazırlıklı olun. Ben devreyi 7805 ile besledim lakin bu doğru bir yol değil. beslemeyi gayet sağlıklı yaparsanız çok güzel çalışır. LM2576 bu iş için uygun.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

ximamyollardax

vermiş olduğun bilğiler için teşekkür ederim

air_post

verilen bilgiler için teşekkürler..
Arkadaşlar,
Benim sormak istediğim bu T-10  gibi uart üzerinden gsm modem olarak kullanabileceğimiz -piyasada bulunabilecek cinsten- bir cep tel var mı T-10 gibi. Sanırım T-10 artık bulunmuyor..
şimdiden teşekkürler

BenC

Alıntı yapılan: FxDev - 19 Mayıs 2010, 21:46:12
Hocam elinize sağlık, gayet açıklayıcı olmuş.
Konu dışında bir soru olacak ama fotoğraf makinenizin markası nedir, makro çekimine bayıldım..

Teşekkürler FxDev üstad. Makina Sony DSC-W330 modeli.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

filzof_alican

merhabalar,
dusundugum bır projeydı
sırene gıden kablodan tetıkleyıcı baglyarak ılerlemek mantıklı..
projenızı bıtırebıldınız mı
bırde telit ın sım slotlarının gomulu oldugu devreler var onlar daha basarılı olabılır. malum telefona sarj baglamak ve uzun surelı kullanımda aku sorunu olabılır...

ofariz

T-10 yerine kuallanabileceğimiz başka bir cihaz önerebilir misiniz ?

Paylaşımlarınız verdiğiniz bilgiler için Teşekkürler

polleme

GSM modül kullanabilirsiniz. Telit GL-865, SIM900 gibi.

ofariz

telefon olarak sormak istemiştim kusura bakmyaın belirtmemişim =)

polleme

Nokia 6630. Bende var, bir ara denemiştim