Makale Özeti

Bu makalede Comort üzerine bağlı olan bir modem ile SmS gönderme işlemi yapacağız. Bu konuyu seçmemin sebebi hem C#.Net ile port uygulamasını ,hemde otomasyon ile uğraşan arkadaşlara, işlerine yarayabilecek olan SmS uygulamasında küçük de olsa yardım etmek.

Makale

AT KOMUT SETİ İLE MODEMDEN SMS GÖNDERME
 
Herkese selam bu makalede Comort üzerine bağlı olan bir modem ile SmS gönderme işlemi yapacağız. Bu konuyu seçmemin sebebi hem C#.Net ile port uygulamasını ,hemde otomasyon ile uğraşan arkadaşlara, işlerine yarayabilecek olan SmS uygulamasında küçük de olsa yardım etmek. Yaptığımız örnek; herkesin anlayabilmesi için basit ama yararlı bir örnek olacak.
 
İlk önce hangi modemi kullanacağımızdan bahsedelim. Modem olarak At (Attention) komut setini destekleyen comporta bağlanabilen herhangi bir modem olması yeterli.Örneğin Ericsson GM29 veya Wavecom’un modemlerinden olabilir. Ek olarak at komutları standarttır ve destekleyen her modemde bu komutlar çalışır.
 
Bunla ilgili bir örnek vereyim.
 
AT+CPIN=”xxxx” //pin numarsını girmek için kullanılan bir komuttur.
 
Ok
 
Modemler ve At Komutları ile bence bu kadarı yeterli.Artık programımızı yazmaya başlayabiliriz.
 
Modem olarak ben Wavecom’un M1306B modeli seçtim söylediğim gibi siz farklı bir modem seçebilirsiniz.
 
Yapacağımız işlemleri adım adım anlatacağım...
 
1-) Modeminizi Comport’unuza bağlayalım ve enerjisini verelim.
 
2-) Hyper Terminal’i açarak modemimizin ayarlarını kontrol edelim...Baudrate’i ben 9600 olarak ayarladım. Siz istediğiniz baudrate’i ayarlayabilirsiniz.
               
                Hyper terminali açtıktan sonra baudrate’i şu komutlarla ayarlayabilirsiniz.
                 
 
3-)Artık programımızı yazmaya başlayabiliriz.C#.Net de File>>New Project den Windows Application istediğimiz bir isim vererek Projemizi açalım.
 
4-) Formuzu aşağıdaki gibi düzenleyelim.
 
Bu formda No muzun Text özelliğine +90 yazalım ki mesaj atabilmemiz için numaranın +905784354432 şeklinde olması gerekiyor.
 
5-) Formumuza bir tane seriaport componenti ve bir tanede Timer koyalım..
 
6-) Formda bulunanların Name özelliğini alttadır. Siz istediğiniz gibi ayarlayabilirsiniz. Program Kısa olduğu için kısa herhangi bir karışıklık olacağını zannetmem ama yazılım işine yeni başlayan arkadaşlar aynısını yaparlarsa daha rahat olur.
                Büyük olan TexBox      name>bodyTextBox
                Diğer TextBox              name>noTextBox
                Send butonu                  name>sendButton
                Seri port Componenti    name> serialPort1
                Timer                               name>timer1
Son olarak timer1’in proporties penceresinden interval özelliğini 1000 yapalım
 
7-) İlk olarak finish dizisini tanımlayalım
byte[] finish = new byte[1];
 
8-)  Send Buttonuna çift tıklayarak alttaki kodu yazalım
               
serialPort1.Write("at+cmgs="+NoTextBox.Text+"\r\n");
              timer1.Enabled = true;
             finish[0] = 0X1A;
9-) timer1’ e çift tıklayarak alttaki kodu yazalım
               
                timer1.Enabled = false;
             serialPort1.Write(bodyTextBox.Text);
             serialPort1.Write(finish,0,1);
 
10-) Form’a çift tıklayarak alttaki kodu yazalım.
               
                if (!serialPort1.IsOpen)
             serialPort1.Open();
 
Eveet programımız artık bitti son olarak kodun tamamını altta veriyorum.Hepsini beraber görmek yeni başlayan arkadaşlar için faydalı olur kanısındayım..
 
 
 
 
public partial class Form1 : Form
    {
        byte[] finish = new byte[1];
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            if (!serialPort1.IsOpen)
                serialPort1.Open();
        }
 
        private void sendButton_Click(object sender, EventArgs e)
        {
            serialPort1.Write("at+cmgs="+NoTextBox.Text+"\r\n");
            timer1.Enabled = true;
            finish[0] = 0X1A;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            serialPort1.Write(bodyTextBox.Text);
            serialPort1.Write(finish,0,1);
           
        }
    }
 
Programı derleyip çalıştırdıktan sonra istediğimiz kişiye modemimiz üzerinden SmS atabiliriz.
 
Değerlendirme: Arkadaşlar Bu program olabildiğince basit bir şekilde yazmaya çalıştım ki anlaşılır olsun. İsteyen arkadaşlar bazı kontroller ve ek özellikler ekleyerek programı geliştirebilir.
 
Benim amacım makale yazılmamış bir konuda merak uyandırmak, yol göstermek ve insanları araştırmaya itmek.
Umarım ilginizi çeken bir makale olmuştur 
Kolay  Gelsin…
 
Engin Köktürk
engintosh@yahoo.com