Python ile GPS/GPRS Modüller Üzerinden SMS Göndermek

Merhaba arkadaşlar , bu yazımda sizlere Telit marka GPS/GPRS cihaz üzeriden cep telefonuna nasıl SMS yollanabilir , bundan bahsedeceğim. Tabi, bu projeyi kendiniz yapabilmeniz için Telit marka veya herhangi bir marka GPS/GPRS cihaz almanız gerecektir. Her GPS/GPRS cihaz için ilgili markanın datasheet'lerinde programlanması ve elektroniği üzerine her detay mevcuttur. Tabi bu proje bitirme çalışmamın sadece küçük bir kısmı. Özellikle , bu konularda ki tecrübem ve bilgim , bir sene boyunca Sakarya Üniversitesi Bilgisayar Mühendisliği Bölümü'ndeki bitirme tezim sonucunda daha da arttı diyebilirim. Tabi eksiliklerin çok olduğunu biliyorum ama zamanla sistemi daha da düzgün bir yapıya kavuşturacağım.

 

Projeye Hazırlık ...

 

İlk önce kullanılan ve gerekli olan donanım ve yazılımlardan bahsedelim.

 

- Cep telefonu

- SIM Kart

-Telit marka GPS/GPRS cihaz

-RS-Term programı (Telit)

-GPS/GSM Anten

 

İlk önce cihazı aşağıdaki gibi hazırlıyoruz. Öncelikle RS-232 kablosunun bir ucunu cihazın RS-232 arayüzüne , diğer ucunu ise bilgisayarın RS-232 arayüzüne bağlıyoruz. (Not: Laptopda dönüştürücü kullanıp kod yükleme ve seri haberleşme yapmak çok verimli değil , hatta sürekli hata alınıyor.O yüzden masa üstü bilgisayar tercih edin.) Aşağıda kablomuzun bir ucunu bilgisayarın seri haberleşme arayüzü olan RS-232 kısmına bağlıyoruz.

Ardından aynı şekilde cihamızın RS-232 girişine kablomuzun diğer ucunu bağlıyoruz.

En son olarak anteni de bağlıyoruz , böylece elektronik olarak sistemi kurmuş oluyoruz. Tabi bu kurduğum sistem mikroişlemciler laboratuarında çalışan sistemdi ve buna ek olarak 8051 mikrodenetleyici kullanılarak C gömülü sistem programlama yaptım.

 

Fiziksel olarak sistemi toplama işlemi bitirildi. Şimdi bu iki cihazın birbiriyle haberleşmesi için veri iletiminin temeli olan  aynı parametrelerle haberleşme kuralı devreye giriyor. Her iki uç birimde aynı parametrelere ve veri iletim hızlarına sahip olmalı ki sağlıklı bir veri iletimi gerçekleşsin. Bu aynı dili konuşan iki insan gibi düşenebiliriz.

Şimdi Bilgisayarım simgesine sağ tıklayıp Yönet seçeneğini seçiyoruz. Ardından kablomuzun bağlı olduğu COM portunun özelliklerinden baudrate'i 115200 değerine çekiyoruz. GPS/GPRS cihazın en sağlıklı veri iletimi yaptığı baudrate bu değerdir. Aşağı değerlerde sorun çıkabilir.

 

Öncelikle Rsterm programı açılır. Aşağıda görüldüğü gibi Port COM1, baud rate 115200 e ayarlanır. Open butonu tıklandığında Rsterm modeme bağlanmıştır.

 

Rsterm de Telit Python sekmesine tıklanır. Burada modeme program yüklenmesi için gerekli işlemler yapılmaktadır.

AT Script komutu ile cihaz içinde yüklü olan dosyalar listelenmektedir. Şimdi , "Working Folder to change" şeklinde yazan mavi linkbutona tıklanır. Python derleyici derleyip  ".pyo" uzantılı aldığımız dosyayı RS-Term ile cihazın içine gömülü yazılım olarak atmaya çalışılır.

Yükleme işleminden sonra sırayla AT#ESCRİPT yapılır , bunun anlamı seçili dosyayı enable et, daha sonra  AT#DSCRIPT komutu ile birlikte dosya cihaz içinde çalıştırılmaya başlanır. Cihazın içindeki programın çalışmasını durdurmak için , cihazı fişten çekip çıkartmanız lazımdır. GPS/GPRS cihaz içinde kesme mekanizması bulunmamaktadır.

Şimdi de Python derleyicide yazdığımız kodlara göz atalım. Aşağıda açıklamalarıyla birlikte verilmiştir.

 

import GPS    # Modemden uydu bilgilerini almak amacıyla kullanılır.

import SER    # Seri port işlemleri için gerekli küyüphanedir.

import MOD  # Program için gerekli bekletme işlemleri için gereklidir.

import MDM #Ağ ile GPS/GPRS modem arasında AT komutları kullanılarak         #bağlantı kurma,  veri aktarma işlemleri yapmak için kullanılır.

SER.set_speed('115200','8N1')

MDM.setDTR(1)

MDM.setRTS(1)

 

while 1:

    pos = GPS.getLastRMC()

    sonuc3=MDM.send('AT+CPMS="SM"r',2)

    cevap=MDM.receive(10)

    MOD.sleep(10)

 

#SİM kartta SMS ile ilgili işlemleri yapabilmek için AT+CMGF=1 yapılıp text #mode'a geçilmelidir.   

    sonuc4=MDM.send('AT+CMGF=1r',2)

    reply=MDM.receive(10)

    sonuc4=MDM.send('AT+CMGS="+telefon_numarası"r',2)

    reply=MDM.receive(10)

#SMS göndermek için gerekli ayarların yapıldığı AT komutu AT+CSMP komutudur.

    sonuc4=MDM.send('AT+CSMP=17,167,0,16r',2)

    ayarlar=MDM.receive(10)

    ikinci=MDM.read()

    sonuc5=MDM.send(pos,2)

    sonuc5=MDM.sendbyte(0x1a,0)

    MDM.setDTR(0)

    MDM.setRTS(0)

Yukarıdaki kod cihaz üzerinden AT komutları yardımıyla SMS yollamaya yarar. Aynı şekilde AT komutlarıyla SIM karttaki mesajları listeleyebilirsiniz. Uzaktan SMS kontrollu sistemler yapabilirsiniz.

Aşağıda GPS üzerinden gelen veri gözükmektedir.

 

Hemen ardından cep telefonuma gelen mesaj örneği gözükmektedir. Eski telefonum :) biraz nostalji oldu. 

 

Evet , farklı sistemleri bir araya getirip , yaşayan bir mekanizma kurmak sanırım en zevkli kısmı olsa gerek. Bir sonraki makalemde görüşmek dileğiyle ...

Batuhan Düzgün

Bilgisayar Mühendisi

Endüstri Mühendisi

Figensoft Yazılım Mühendisi

 

Yorum Yaz
Arkadaşların Burada !
Arkadaşların Burada !