sms gönderme alma termometre PIC ile

Başlatan elektro2009, 17 Mayıs 2008, 14:24:47

elektro2009

Sayın arkadaşlar elimde bir arkadaştan
aldığım sms gönderen termometre devresi var
bu devreyi geliştirmek istiyorum.Fakat devrenin
yazılımı HI-TECH PIC C ile yazılmış
bende HI-TECH PIC C yazılımından hiç anlamıyorum.
Bu HI-TECH PIC C yazılımında başarılı arkadaşlar
lütfen konu hakkında yardım edebilir mi?
Devrenin çalışma şekli şöyle.
Sıcaklık değeri düştüğünde yada yükseldiğinde
sms gönderiyor.
Benim yapmak istediğim devre kurulan
değerler arasında çalışsın,değerlerin dışına
çıktığında sms ile o anki sıcaklık
ve nem değerini gönderip haber versin.
Böyle bir yazılım
nasıl yapılabilir.
Şimdiden teşekkürler.Saygılar.


Sayın arkadaşlar devrenin yazılımı bu :

#define PIC_CLK 4000000 
#include <pic.h> 
#include <delay.c> 
#include <lcd.c> 
#include <stdio.h> 
#include "always.h" 

__CONFIG(XT & WDTDIS & PWRTEN & BOREN & LVPDIS & DUNPROT & DEBUGDIS & UNPROTECT); 

void init_ports(void) // Port konfigürasyonu 
{ 
TRISB=0; // PORTB çıkış 
TRISA=1; // RA0 analog giriş 
#if defined(_16F876A) 
ADCON1=0x8E; // AN0 analog giriş 
ADCON0=0x41; // A/D aktif 
#endif 
TRISC = 0xFF; 
PORTB = 0; 
PORTC = 0; 
TMR0 = 0; 
OPTION = 0b10000111; // Prescaler 111 -> 1/256 
INTCON = 0b00000000; // GIE ve Peripheral Interrupt pasif 
PIR1 = 0x00; 
PIR2 = 0x00; 
} 
// Değişken tanımlamaları 
const float lsb=5.0/1024.0; 
unsigned char gerilim, ust, alt; 
float sicaklik; 
unsigned char sonuc[]="SICAKLIK = "; 
unsigned char n; 
///////////////////////////////////////////////////////////////////////////// 
unsigned char k; 
unsigned char RXreg,RXreg2; 
bit RX2flag; 
bank2 unsigned char smsheader[] = {'0','0','0','1','0','0','0','C','9','1','0','9','5','5','3','5','8','0','7','6','2','1','0','0','0','0','2','5','D','3','A','2','3','4','0','8','9','A','2','6','8','7','C','1','2','5','3','3','7','9','4','C','8','2','6','2','2','0','6','2','5','1','5','A','1','C','1','6','9','D','4','9','2','7','2','8','C','8','A','4','2','6','9','D','C','4','2','0','3','1','2','9','0','5'}; 
//0001000C91095535807621000025D3A234089A2687C12533794C82622062515A1C169D492728C//8A4269DC420312905 
//SERA SICAKLIGI SUAN 1 DERECENIN ALTINDADIR 
void nop(void); 
void rs232send(unsigned char); 
void rs232init(void); 
void smsinit(void); 
void sms(void); 
///////////////////////////////////////////////////////////////////////////// 
void interrupt isr (void) 
{ 
RX2flag = 0; 
GIE = 0; 
if(GIE == 0) 
{ 
if(RCIF == 1) 
{ 
RXreg = RCREG; 
if(RCIF == 1) 
{ 
RXreg2 = RCREG; 
RX2flag = 1; 
}//RSflag = 1; 
RCIE = 0; 
if(RX2flag ==1) 
{ 
RX2flag = 0; 
if(OERR == 1) 
{ 
CREN = 0; 
FERR = 0; 
CREN = 1; 
} 
} 
RCIE = 1; 
} 
} 
} 
///////////////////////////////////////////////////////////////////////////// 
void main() 
{ 
init_ports(); 
// Ön LCD işlemleri 
DelayMs(250); // 250ms bekle 
lcd_init(); // LCD'yi hazırla 
lcd_clear(); // LCD'yi temizle 

for(;; ){ 
// A/D çevrimi başlat 
ADCON0=0x45; 
// Donusumun bitmesini bekle 
while((ADCON0&4)!=0); 
// Dönüşüm sonucunu kaydet 
gerilim=ADRESH; 
gerilim=256*gerilim+ADRESL; 
// Sıcaklık bilgisini oluştur 
sicaklik=gerilim*lsb*100.0; 
// Tam ve ondalık kısımları ayır 
ust=(int)sicaklik; 
alt=(int)(10.0*(sicaklik-ust)); 

//karsilastirma 
if (sicaklik >=0 & sicaklik <=1 ) 
{ 
sms(); 
} 
else 
{ 
RB7=0; 
if(RC0==0) 
{ 
sms(); 
} 
//LCD'ye yazdırma işlemlerini yap 
sprintf(sonuc+11,"%d.%dC ",ust,alt); 
// 1. satıra geç ve LCD'ye yaz 
lcd_goto(0x00); 
lcd_puts("SERA OTOMASYONU"); 
// 2. satıra geç ve sıcaklık değerini yaz 
lcd_goto(0x40); 
lcd_puts(sonuc); 
// Biraz bekle ve ekranı temizle 
DelayMs(250); 
lcd_clear(); 
} 
} 
} 
////////////////////////////////////////////////////////////////////////////////////////////////// 
void nop(void) 
{ 
#asm 
nop 
#endasm 
} 
////////////////////////////////////////////////////////////////////////////////////////////////// 
void rs232init() 
{ 
BRGH = 1; 
SPBRG = 12; 
TX9 = 0; 
RX9 = 0; 
SYNC = 0; 
SPEN = 1; 
RCIE = 1; 
TXEN = 1; 
PEIE = 1; 
CREN = 1; 
} 
////////////////////////////////////////////////////////////////////////////////////////////////// 
void rs232send(unsigned char sendvalue) 
{ 
while(TRMT == 0) 
{ 
nop(); 
} 
TXREG = sendvalue; 
} 
/////////////////////////////////////////////////////////////////////////////////////////////////// 
void smsinit(void) 
{ 

for(k=0;k<94;++k) 
{ 
rs232send( smsheader[k] ); 
} 
k=0; 

} 
/////////////////////////////////////////////////////////////////////////////// 
void sms(void) 
{ 
rs232init(); 
GIE=1; 
PEIE=1; 
DelayMs(50); 
rs232send('A'); 
rs232send('T'); 
rs232send('+'); 
rs232send('C'); 
rs232send('M'); 
rs232send('G'); 
rs232send('S'); 
rs232send('='); 
rs232send('1'); 
rs232send('4'); 
rs232send('0'); 
rs232send(0x0D); 
// 1. satira geç ve LCD ye yaz 
lcd_goto(0x00); 
lcd_puts("SMS GONDERILIYOR..."); 
DelayMs(250); 
DelayMs(250); 
lcd_clear(); 
smsinit(); 
rs232send(26); 
PEIE=0; 
GIE=0; 
DelayMs(50); 

for(n=0;n<60;++n) 
{ 
RB7=1; 
//LCD'ye yazdırma işlemlerini yap 
sprintf(sonuc+11,"%d.%dC ",ust,alt); 
// 1. satıra geç ve LCD'ye yaz 
lcd_goto(0x00); 
lcd_puts("SMS GONDERILDI"); 
// 2. satıra geç ve sıcaklık değerini yaz 
lcd_goto(0x40); 
lcd_puts(sonuc); 
// Biraz bekle ve ekranı temizle 
DelayMs(250); 
DelayMs(250); 
DelayMs(250); 
DelayMs(250); 
lcd_clear(); 
} 
n=0; 
} 
//////////////////////////////////////////////////////////////////////////////

emrah_elektronik


elektro2009

Sayın arslan74 hocam yardımlarınız için çok teşekkürler.
Amacım yazılım olarak kendimi geliştirmek.
Eğer projemi yapabilirsem küçük deneme serasında
kullanmayı düşünüyorum.Benim yapmak istediğimi
detaylı bir şekilde anlatan ve yapan bir sera otomasyonu
dosya gönderiyorum.Ben bu yapılan projenin yazılımını
bilgisayar ortamında çalışır hale getiremedim.
Düzenlemede hata yaptım galiba.
Sera otomasyonu adlı dosyadaki devreye bazı
eklemeler yapmak istiyorum.Mesela karbondioksit
ölçümü yapmak ve diğer tüm bilgileri sms ile uzaktan
alma ve gönderme özelliklerini eklemek istiyorum.
Bu sera otomasyonu adlı devreyi istediğim
özellikleride ekledikten sonra
PIC ve PC ile çalışır özellikte nasıl yapabilirim.
sms devresi tüm ayrıntılı açıklaması türkçe:
http://rapidshare.de/files/39463048/sms_goenderme_alma_devre.rar.html
http://rapidshare.de/files/39463094/Sera_Otomasyonu.rar.html

bymrz

arkadaşlar yukarıdaki linkteki dosyalar elinde olan varsa yenileyebilir miyiz acaba?