Merhaba arkadaşlar staj sürecimin bir döneminde ilgilendiğim  GSM/GPRS modül yapılandırma hakkında bu yazımız. İlk incelemeler yazımız bu konuya biraz yabancı , bu konulardan biraz fazlaca uzak ve korkulacak birşey gibi bakan arkadaşlara cesaret kazandırıp merak uyandırmayı hedeflemektir. Başlayacak olursak ;

GSM/GPRS modül nedir ?
– GSM/GPRS desteği sağlayan , belirli bir işlemcisi olan komutlama yöntemiyle çalışan gömülü elektroniğin ürünüdür.

GSM/GPRS modül neler yapar ?
–  GSM/GPRS modül , kendi cep telefonlarımızdan farksız olup  arama , sms , mmc , ftp , e-mail , http gibi servisleri son kullanıcıya sağlayan bir elektronik gömülü cihazdır.

Geliştirme kitleri mevcutmudur ?
– Bir çok firmanın ürettiği kit mevcuttur. Telit’te de yerli kit üreticileri bulunmaktadır.

Yurt dışından getirttiğim takdirde sorun yaşarmıyım ?
– Bu konu biraz teferruatlı kısmımız oluyor arkadaşlar. Malum her GSM modül olan cihazın kendi IMEI numarası bulunmaktadır. Eğer bunu yurtdışından kendiniz temin ettiğiniz takdirde gümrükten geçerken IMEI numarası sorgusundan geçemez ve Türkiye’de kullanma imkanınız bir kaç hafta ile sınırlı kalabilir.

– Kısa bir sohbet havasında yaptığımız soru cevaptan sonra yavaşça cihazımızın tanıtımına geçelim.

– Cihazımız GSM/GPRS desteklemektedir. Böylelikle arama yapmak , sms – mms atmak , e-mail göndermek , ftp sunucusuna bağlanmak , http üzerinden internete çıkmak , tcp ile ip almak gibi servisleri kullanmamızı mümkün kılmaktadır.

– Cihazımızın boyutları ; uzunluğu 24.4mm , genişliği 24.4mm ağırlığı da 2.48g olup lansmanlarına göre gereğinden fazla küçük ve hafif olması zannımca en önemli özelliklerindendir.

– Üzerinde 48 pin bulunmaktadır. Bu pinlerden 4 ü SIM kartı içindir. Anten ,GPIO , Alarm , RING, ADC , DAC , UART RX-TX pinleri bulunmaktadır.

– Pinlerimizi dikkatlice inceleyecek olursak:

Pinlerimizide görüp dikkatlice incelediğimize göre artık güç kısmımızı incelemeye başlayabiliriz.Cihazımızın güç aralığını datasheet’inde güzel bir şekilde açıklamış.

Normal istenilen Voltaj :            3.8 V
Olabilitesi olan voltaj aralığı :  3.4 – 4.2 V
En geniş voltaj aralığı :              3.22 – 4.50 V

Reset İşlemi için 47.portu kullanıyoruz. Portu lojik 0’a çektiğimiz zaman cihaz resetlenmektedir. Resetlendiği zaman herşeyi durdurup, kendini kapatıp başlangıç ayarlarına dönmektedir. Lojik 1 seviye 1.8 V – 2.1 V arasındadır.


Gelelim seri port iletişimine. Cihazımız seri port haberleşme desteklemekte ve Rx-Tx pinleri üzerinde bulunmakta olduğunu belirtmiştik. Şimdi o pin detaylarına geçecek olursak.

Bize en çok gerekli olan pinlerimiz 7 ve 8. pinlerdir. Bu pinlerden biri veri gönderen diğeri veriyi alan pindir. Bunu inceledik ancak bunu nasıl çalıştıracağımızı bilmiyoruz. Bunu RS232 dönüştürücü ile aşabileceğiz.

Dönüşümü yapan entegremizin adı MAXIM3237 ‘dir. Piyasa bulunması çok rahat olup , çok rağbet gören bir entegredir.

Datasheet ‘de bize hazır şekilde devrenin şemasıda verilmiş bulunmaktadir.

RS232 Yapısı :

Devremizi bu pinlere göre ayarlıyoruz. En önemli 2 pinimiz unutulmamalı RXD- TXD pinleridir. Buna dikkat edilmelidir.
Eğer bir mikrodenetleyiciye direk bağlanılmak istediği takdirde Rx-Tx ‘e Tx-Rx 2e takılıp işlem yapılmalı ancak bunda da şöyle bir problem
ile karşı karşı kalıyoruz. Cihazımızın UART voltaj aralığı 2.8 – 3.2 V ‘da ancak mikrodenetleyicimiz 5V beslemesi problem yaratması.

Bunu da düşünmüş telit ve datasheet’e bunun hakkında bir resim koyarak olayı çözümlemiş.

Araya koyduğumuz opamp ile voltajı gayet kolay bir şekilde kontrol altına almış oluyoruz.

Sıra geldi hoparlörü nasıl bağlayacağımıza.

Gördüğünüz gibi datasheet’ten baktığımız pin’lerden EAR+ ve EAR- arasına bağladığımız hoparlör , ses çıkışımızı sağlamaktadır.

GPIO pinlerimizden biraz bahsedecek olursak. Datasheet üzerinde belirttiği üzere 8 adet GPIO pinimiz bulunmaktadır. Bu pinler
ile birçok işlem yapabilir olmamız en önemli çekici yanlarından biridir.

Dikkatinizi çektiyse pinler birbirlerine yakın ve devre şeması kurmamız için kolaylık sağlamışlardır.
I/O Pin lojik seviye gerilimlerine bakacak olursak

Genel özelliklerini incelediğimize göre artık bu modülü nasıl uygulamada kullanacağımızı öğrenmeye gelelim.

GSM/GPRS modül nasıl komutlarımızı gerçekleştirir ?
Modülü programlayabilmek için geleneksel modem komutlama dili olan AT komutlama dili geliştirilmiştir. Her modül  ve modem aynı mantık ile çalışmaktadır. Her modülün kendi AT komutları bulunmaktadır. Bunu tasarlayan firmalar kendi ihtiyac, istek ve arzularına göre yazmaktadırlar. Bu AT komutlarını Referans Manuel’lerinde paylaşmaktadırlar.
Telit GL865 – DUAL modelimizde bu linkten inceleyebilirsiniz : http://www.telit.com/module/infopool/download.php?id=542  

Bu komutları ezberlemek zorundamıyız ?
 
Ezberlemenize gerek yok. Gerekli komutları kullanarak zaman içinde uygulama halinde iken gelişmektedir. Sadece referans manuel ‘i incelemeniz yeterlidir.

Her seferinde kendimiz girerek zorunda mıyız?
 Hayır.  Mantık olarak bu cihaz üzerinde bir işlemci bulunduğuna göre ve biz kendimiz komutlama yaparken klavye üzerinden seri port haberleşmesi ile kodlaya bildiğimize göre klavyemizi egale edip yerine MCU bağlayarak aynı komutları MCU ya bildirerekte gönderdiğimiz takdirde aynı işlevi yapabilir olabiliriz.

Peki bu modülde buna gerek varmı ? 
Açıkcası bence gerek yok. Çünkü bu modül python desteklemektedir. Böylece çok kolay bi şekilde programlayabiliriz. Listelediğimiz görevleri yaptırmamız gayet kolaylaşmış olacaktır. Bu konuyu yazımızın devamında detaylıca anlatacağım.

Soru cevap kısmımızı tamamladığımıza göre devam edebiliriz. Söylediğim gibi cihazımız modem mantığıyla çalışmakta ve basit AT komutlama sistemiyle çalışmaktadır. Peki bunu nasıl sağlarız ?

Seri haberleşme devremizi tamamladığımıza göre artık program kısmına gelelim.

Round Solutions’ın geliştirdiği RSTerm programını bilgisayarımıza indiriyoruz alttaki link üzerinden:
http://www.roundsolutions.com/techdocs/driver_tools/rsterm.zip
NOT: Bu program windows desteklemektedir. Linux versiyonları hakkında bir bilgim yok ancak küçük bir ayar yaptığımız
takdirde kullanabilir hale getirebiliriz.
Ubuntu kullanıcıları Ubuntu Software Center ‘dan Wine Windows Program Loader olarak ara diyoruz ve ardından programımızı kuruyoruz.
Rsterm.exe mize sağ click yaparak open with ( birlikte aç ) diyoruz ve wine windows program loader’ı seçerek çalıştırıyoruz.

Windows kullanıcıları ise normal çalıştırıyorlar.

Böyle birşey karşımıza çıkıyor ver numaralandırdığım sekmeleri açıklayacak olursak,
1 – Cihazı bağladığımız port
2 – Cihazdan gelen verileri okuyacağımız portun hızı (default’u 9600’dür.)
3 –  Portumuzu açma kısmıdır.

Arkadaşlar suanda elimde bu modül olmadığı için bu kısmı gösteremeyeceğim ancak uygulamada buradan sonrası için alıntı görüntü yaparak devam edeceğim. Eğer portumuz aktif olsa idi  altta görülen
AT, AT+IPR gibi komutlar aktif olacaktır. Görüldüğü gibi :

Devam edecek olursak , RSTerm ‘de bizi kolaylaştıracak bir çok sekmeler bulunuyor gayet kolay bir şekilde incelediğiniz takdirde kullanabileceksiniz.

– Sıra geldi en önemli noktaya sürekli elimizle AT komutları girmek gayet zor bir birşey olacaktır. Bunun için bazı insanlar MCU üzerinden sıraladığımız AT komutlarını göndermek olarak düsünmeye başlamış ancak üretici bunu daha da kolaylaştırmak adına cihazı Python desteğini eklemiştir. Bunu yapabilmemiz adına da datasheet’ler altında anlattığı dökümantasyonlar içinde EasyScript adlı bir konu dikkatimizi çekiyor.

Nedir bu EasyScript ?
– EasyScript, Python kullanıcılarının hiçte yabancı olmadığı bir python script’leme platformu yazılarımızı yazıyoruz ve derleme işlemimizi yapıp RSTerm’deki bir özellik ile  gömüyoruz.
Bu ara kısımdaki işlemler için temel seviyede python bilginizin olması gerekmektedir. Bu konuda bir başka makalede yayınlayacağım.


– Dosyamızı aktaracağımız kısım. Files in PC FOLDER dediği kısım kendi bilgisayarımız Files in MODULE cihazımızı kastetmektedir ve dosya atmamız gayet bu kadar basit olduğunu görmekteyiz.

*1 Alıntı resim linki : http://faroutdevices.com/Talking_to_Telit_GM862_from_RSTerm.aspx

Arkadaşlar modül elimde olsa idi üzerine daha çok makale yazmak isterdim ancak elimdeki kaynaklar ve önceki zamanlarda geliştirdiğim koşullar ile size yardımcı olabilmekteyim. Bir başka yazımızda görüşmek dileğiyle. İyi çalışmalar diliyorum.  

______
Gökhan TARIM