Osman Görkem YOĞURTÇU

Quectel M95 GSM Modül İncelemesi ve Örnek Uygulama

Merhaba,

Günümüzde endüstriyel tip gsm modüllerin kullanımı hızla yaygınlaşmaktadır.Bunun en önemli sebepleri arasında gprs ve sms gibi özellikleri ile kablosuz olarak dünyanın her yerinden kontrol edebilir olması ve eskiye nazaran fiyatlarının daha makul olması yer alır.Ayrıca “Internet of Things” (Nesnelerin interneti) akımı ile bu modüllerin kullanımının daha da yaygınlaşacağını söyleyebilirim.Gsm modüllerin başlıca kullanım alanları ise; PLC ler, araç takip sistemleri, ev otomasyon sistemleri, alarm sistemleri, pos cihazları, telemetri sistemleri olarak sıralanabilir.Bu yazımda sizlere Quectel firmasının en favori ürünlerinden biri olan M95′ ten bahsedeceğim.

Modülün genel özellikleri şöyle;

– Quad Band çalışma (850/ 900/ 1800/ 1900MHz )

– Çalışma gerilimi = 3.3V – 4.6V (4.0V nominal)

– GPRS Mobil İstasyonu = Class B

– Çalışma Sıcaklığı = -40 °C to +85 °C

– Düşük Güç Tüketimi = 1.3mA @ DRX=5  ,  1.2mA @ DRX=9

– Paket Ölçüleri = 19.9 × 23.6 × 2.65mm

– Ağırlık = Yaklaşık 3.0 gr

– GPRS Hızı (Class 12) = Max. 85.6kbps (uplink & downlink)

– Desteklediği Protokoller = PPP/ TCP/ UDP/ HTTP/ FTP/ SMTP/ SSL

– Çift sim kartlı çalışma

Modülün pin yapısı aşağıdaki gibidir.

quectel_pinout

 

M95 ile çalışmak isteyen arkadaşların öncelikli olarak hazır geliştirme kartlarından kullanmalarını tavsiye ederim.Çünkü besleme, anten, kulaklık, mikrofon ve simkart birimlerini doğru şekilde tasarlamak gerekiyor.Tasarımda yapılacak ufak bir yanlışlık modülün düzgün çalışmamasına sebep olur.Modem kendiliğinden kilitlenir, reset alır yada farklı problemler gözlenebilir.Sonra sıkıntı donanımda mı yazılımda mı uğraş dur :)

Hazır modül olarakta Mikroelektronika firmasının GSM2 Click ürünü kullanılabilir.Kendi kartını tasarlamak isteyenler  “Quectel_M95_Hardware_Design_V3.0″ isimli datasheet ten faydalanabilirler.Ben yinede donanımla ilgili önemli bazı noktalardan bahsediyim;

BESLEME

Modülü çalıştırmak için nominal 4V bir beslemeye ihtiyacımız var.Datasheet te şöyle bir besleme devresi önerilmiş;

4V_Regülatör

Devrenin giriş gerilimi 5V, çıkış gerilimi 4.16V’ ve çıkış akımı da maksimum 3A’dir.MIC29302 bulunamaz ise LM2576 ADJ yada TPS78601 gibi regülatörler ile de 4V elde edilebilir.M95 modülü tcp bağlantısı yada sms gönderme anında anlık olarak 1.5A-2A aralığında akım çeker ve bu durum besleme tasarımı yapılırken göz önünde bulundurulmalıdır.

POWER ON

GSM modüllere sadece besleme uygulamak, çalışmaları için yeterli değildir.Modemi çalıştırabilmek için genellikle “powerkey” isimli bir giriş pini bulunur ve bu pin 1 saniye kadar bir süre ground’a çekilmelidir.Buna “Power On” işlemi denir.Power On devresi örnekleri aşağıda verilmiştir.

Microcontroller üzerinden Power On işlemi;

Power_On

Buton kullanarak Power On işlemi;

Power_On_Button

NETLIGHT

Modüle beslemeyi uygulayıp Power On işlemini yaptıktan sonra modülün çalışma durumunu görmek için Netlight isimli bir çıkış bulunur.Bu çıkışa led devresi eklenerek ledin yanıp sönme durumuna göre modemin çalışma şekli gözlemlenebilir.Netlight devresi de şöyledir;

Netlight

Power On işlemi yapıldıktan sonra Netlight ledinin yanıp sönme sürelerine göre çalışma şekli şöyledir;

– Eğer led hiç yanmıyorsa modül çalışmıyordur.

– Led 64ms On / 800ms Off şeklinde çalışıyorsa modül çalışıyor fakat şebeke bağlantısı henüz yok.

– Led 64ms On / 200ms Off şeklinde çalışıyorsa şebeke bağlantısı sağlandı.

– Led 64ms On / 600ms Off şeklinde çalışıyorsa GPRS bağlantısı sağlandı ve data gönderildi.

SIM HOLDER

GSM modem kullanıyorsak olmazsa olmaz birimlerden biri de  tabiki SIMKART’tır.Simkart olmadan arama, sms ve gprs işlemlerini gerçekleştiremeyiz.Simkartı taktığımız konnektör (sim holder) genelde kapaklı sim holder ve Push-pull (bas-çek) sim holder olmaz üzere iki tip olarak karşımıza çıkar.

Kapaklı Sim Holder

Kapaklı Sim Holder

Push-Pull sim Holder

Push Pull Sim Holder

Sim holder’ın M95 modül ile bağlantısı ise şöyledir;

Sim Holder Connection

ESDA6V8V6 isimli komponent TVS diyottur.Modülün çalışması esnasında sim holder’a dokunduğumuzda üzerimizdeki statik elektrik simkartın bozulmasına sebep olabilir.TVS diyot bu durumun oluşmasını engeller.Ayrıca cihaz çalışırken simkartı çıkartmak yine simkartın bozulmasına sebep olabilir.Bu yüzden enerji kesilmeden simkartı çıkartıp takmayın.Günümüzde kullandığımız mobil aygıtlar da bataryayı çıkartmadan simkartı çıkartmamıza izin vermez.

ANTEN

Gelelim anten kısmına.Modülün 39 numaralı pini anten çıkışıdır.GSM modül içeren endüstriyel tip cihazlarda karşımıza iki tip anten çıkar.

1 – PCB Anten

2- SMA Anten

Pcb tipi antenlerin kazançları sma antenlere göre daha düşüktür.Pcb antenler modülün çalışma frekansına göre farklı şekillerde tasarlanır.Tasarım yaparken modülün quad band yada dual band oluşu dikkate alınır.50 ohm empedansı sağlayabilmek çok önemlidir.Bunun için benim ne yazik ki bilmediğim bazı hesaplar ve yardımcı programlar kullanılır :) PCB tipi anten örneklerini aşağıda verdim.

PCB anten 1PCB anten 2

M95 Pcb Anten

SMA antenler ise modülün bağlı olduğu kartın üzerinde bulunan SMA konnektöre takılarak kullanılırlar.90 derece, 180 derece ve kablo ile uzatılabilen gibi çeşitli SMA antenler bulunur.Anten tasarımı yapılırken SMA konnektör mümkün olduğunca modülün anten çıkışına yakın olmalıdır.SMA konnektör ve anten resimleri de şöyle;

GSM Anten 2 GSM Anten 3 GSM Anten SMA Konnektör

HABERLEŞME

M95 modemi kontrol etmek için uart üzerinden haberleşme yapılır.22 numaralı pin “TX” , 21 numaralı pin ise “RX” tir.Quectel M95  300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 ve 115200 baudrate hızlarını destekler.Default (fabrika çıkışı) olarak “Autobauding” özelliği açıktır.Modülle haberleşmek için kullanılan hızı otomatik olarak algılar ve o hızda haberleşir.Dilerseniz tek bir hızla çalışması için ilgili komutla ayarlayabilirsiniz.Autobauding özelliğinin desteklediği hızlar;  4800, 9600, 19200, 38400, 57600 ve 115200 baudrate’tir.Haberleşme için kullanılacak temel bağlantı da şöyle;

M95 Uart Connection

Yapacağım örnek uygulamada modemle arama yapıp sadece telefonun çaldığını göstereceğim için mikrofon ve hoparlör konusuna girmiyorum.Manuel’de ayrıntılı olarak şemalar verilmiş.Tasarım için oradan faydalanabilirsiniz.

AT KOMUTLARI

Anteni ve sim kartı taktık.Ardından beslemeyi uyguladık ve powerkey sinyalini uygulayarak modemi çalıştırdık.Şimdi sıra uart üzerinden modemi kontrol etmeye geldi.

Modemi kontrol etmek için “AT” komutu adı verilen komut setleri bulunur.Bu komutların bir kısmı bazı marka ve modellerde aynı olabileceği gibi bir kısmı da faklı şekillerde olabilir.Örneğin; “AT+CSQ” şebeke sinyal gücünü sorgulama komutudur. SIMCOM, TELIT ve QUECTEL modemlerde aynı şekilde kullanılır.

Gsm modeme komutu gönderen birimin (PC yada mcu) data hızı ile (baudrate) modemin hızı aynı olmalıdır.Aksi halde gönderilen komutlara cevap olarak karışık harf ve karakterler gelir.

Baudrate Uyuşmazlığı

Modeme gönderilen her komutun mutlaka bir cevabı olmalıdır.Bu cevap bazı istisna komutlar dışında birçok komut önce komutun işletildiğine dair önce “OK” cevabını yollar.Eğer varsa ardından parametreleri gönderir.M95 için kullanılan bazı temel komutlara da kısaca değinelim ve ardından uygulama tarafına geçelim.

1-) AT  ==> Modem ile iletişim kurulduğunu test etmek için kullanılır.

Cevap ==> OK ( Bu yanıt iletişimin sağlandığı ve AT komutlarının kullanılabilir olduğunu gösterir.

2-) AT+CSQ ==> Şebeke sinyalinin kalitesini sorgular.

Cevap ==> 0 ile 31 arasında bir rakam yada 99 ile dönüş yapar.

0 -113dBm yada daha düşük
1 -111dBm
2…30 -109… -53dBm
31 -51dBm yada daha büyük
99 durum bilinmiyor.

Örnek cevap ==>  +CSQ:27,0 ==> 0-31 aralığında 27 yanıtı şebeke sinyalinin gayet kalite olduğu anlamına gelir.

3-) AT+CPIN? ==> Sim kartın durumunu sorgular.
Cevap ==> +CPIN: READY ==> Simkartın takılı olduğunu ve çalıştırıldığı belirtir.
AT+CPIN=1234 ==> Takılan simkartın pin kodu önceden iptal edilmesiyse modemin çalışması için pin kodunu bu komutla gireriz.

4-) AT+CMEE=x   ==> Modemden gelen hata mesajlarının biçimlerini ayarlamımızı sağlar. “x” yerine yazılabilecek değerleri inceleyelim.

Örnek :

Simkart pin kodumuz “1111” olsun ve biz hata mesajı almak için pin kodunu “1234” girelim ve gelen hata mesajlarının yapılarını inceleyelim.

“AT+CMEE=0″ ise hataya ilişkin herhangi bir yazılı detay yada hata kodu gönderilmez.

AT+CMEE=0
OK
AT+CPIN=1234
ERROR

“AT+CMEE=1″ ise cevabın içerisinde hata kodu gönderilir.Bu hata kodlarının anlamları için datasheet’e bakınız.

AT+CMEE=1
OK
AT+CPIN=1234
+CME ERROR: 10

“AT+CMEE=2″ ise cevabın içerisinde hatanın ne olduğu açıkça yazılır.
AT+CMEE=2
OK
AT+CPIN=1234
+CME ERROR: SIM not inserted

5-) ATD05xxxxxxxxx; ==> Arama yapmak için kullanılır. “x” lerin yerine arama yapılacak telefon numarası yazılır.Numara mutlaka 11 haneli yazılmalı yani başına “0” (sıfır) eklenmelidir.

6-) ATH ==> Yapılan aramayı sonlandırmak için kullanılır.

7-) AT+CMGS=”05xxxxxxxxx” SMS mesajı göndermek için kullanılır.

Örnek;

AT+CMGS=”05123456789″ ==> komutla birlikte mesajı göndereceğimiz numarayı yazdık.Komutu gönderdikten sonra modem bize sms mesajını yazmaya başlamamız için “>” karakterini gönderir.Mesajımızı yazdıktan sonra enter yaparak yani “0x1A” göndererek işlemi tamamlamış oluruz.
+CMGS=”05123456789″
> TEST

+CMGS: 204
OK

NOT:

Yukarıda verdiğim örnekler ve bunların dışında  FTP, E-Mail, TCP, UDP uygulamalar için gerekli olan komutları datasheet’den bulup uygulayabilir yada Quectel’in “Qnavigator” isimli programıyla uygulama gerçekleştirebilirsiniz.

UYGULAMA

Yapacağımız bu basit uygulamanın amacı, butona basıldığında yazılım içerisinde belirtilen bir telefon numarasına sıcaklık ve nem bilgisini sms ile göndermek olacaktır.Bu sistem için şunları kullandım;

1 adet STM32F103C8 geliştirme kiti

1 adet M95 içeren hazır bir kart

1 adet DHT11 sıcaklık ve nem sensörü

1 adet Buton ve birkaç adet jumper kablo

IMG_20160102_004303

M95 modülün uart haberleşmesi, işlemcinin uart2 birimine bağlandı.Buton PA4 pininden kontrol ediliyor.DHT11 ise PA1 pinine bağlı.Devreye enerji verildiğinde gsm modülün power-on işlemi gsm kartının üzerinde bulunan buton ile manuel olarak yapılıyor.

Yazılım tarafı ise kısaca şöyle çalışıyor;

Void main’in altında işlemcinin ve M95’in başlangıç ayarları yapılır.”While(1)” sonsuz döngüsü içerisinde butona basılıp basılmadığı sürekli kontrol edilir.Eğer butona basılırsa önce DHT11’den sıcaklık ve nem bilgisi okunup diziye kaydedilir.Daha sonra sms ile yazılımın içerisinde belirlenen numaraya sıcaklık ve nem değerleri gönderilir.Kaynak kodun tamamı da aşağıdaki gibidir;

DHT11 tek hat üzerinden haberleşme yapabilen (one-wire) bir sensördür.Protokolü basittir.Data ucuna belirli sürelerde high ve low uygularsınız.Sensör de hemen ardından 40 bit (5 byte) bilgi yollar.Bu 40 bit data,  8bit Nem, 8bit NemOndalık, 8bit Sıcaklık, 8Bit SıcaklıkOndalık ve son 8 bit veri doğruluğu (checksum) şeklindedir.Başka bir yazıda bu sensörden daha detaylı bahsetmeye çalışacağım. Uygulamamıza ait sms görselini de ekleyip yazımı burada sonlandırıyorum.Herkese iyi çalışmalar.Saygı ve sevgiler…

Screenshot_2016-01-02-00-38-54

  1. Selim KOÇ diyor ki:

    Güzel anlatım ve uygulama. Çalışmalarınızın devamını beklerim. Başarılar…

  2. Uğur diyor ki:

    Gayet açıklayıcı bir anlatım olmuş elinize sağlık. Gsm Kayıt işlemini nasıl halletiniz ?

    • Osman Görkem YOĞURTÇU diyor ki:

      Teşekkürler.Gsm kartını yurtiçinden kayıtlı olarak temin ettim.

Bir Yorum Yazın