پروژه های ramin.yousefi2@gmail.com AVR,ARM,PIC,8051

لطفا ایمیل بزنید

GSM

آشنایی با

GSM Modem

و نحوه ارتباط آن با میکروکنترلر

 

 

GSM Modem چست ؟

در واقع GSM Modem دستگاهی است که امکاناتی همانند یک تلفن همراه را در اختیار ما قرار می دهد. به وسیله GSM Modem می توان پیامک فرستاد ، از سرویس اینترنت همراه (GPRS) استفاده کرد و حتی می توان به یک شماره تلفن زنگ زد و مکالمه کرد.

شرکت های زیادی در دنیا انواع GSM Modem ها را برای کاربردهای مختلف عرضه نموده اند. برخی از آنها برای اتصال مستقیم به پورت USB کامپیوتر طراحی شده اند و برخی دیگر برای کاربردهای صنعتی و عمومی تر.

از جمله موارد استفاده از GSM Modem استفاده از آن در دزدگیرها است که به محض فعال شدن دزدگیر با صاحب محل و پلیس تماس گرفته و یا پیامک ارسال می کند و حتی می توان بوسیله پیامک دزدگیر را خاموش و روشن کرد و یا آسانسورهایی که در صورت خرابی به صورت خودکار با شرکت سرویس دهنده آسانسور تماس می گیرند و آنها را مطلع می کنند و ...

 

 

انتخاب یک GSM Modem مناسب

بسیاری از GSM Modem ها بوسیله پورت سریال دستورات مورد نظر را دریافت می کنند و تقریبا تمام میکروکنترلرهای دنیا پورت سریال (UART) را پشتیبانی می کنند.

در اینجا GSM Modem انتخابی ما برای آموزش ماژولSIM900 است که علاوه بر فراوانی در بازار ایران ، قیمت مناسب و کارایی بالایی دارد. ابعاد این مودم بسیار کوچک است که استفاده از آن را در دستگاهها به مراتب ساده تر می کند.

در حال حاضر برای سیستم های میکروکنترلری بهترین گزینه استفاده از SIM900 است.

 

 

آشنایی با سخت افزار SIM900

الف ) منبع تغذیه برای SIM900

این ماژول برای کار نیاز به یک منبع با ولتاژ بین 3.4V تا 4.5V دارد. همچنین مقدار متوسط جریان مصرفی آن در حالت بیکاری 22mA و در حالت کار (مانند ارسال پیامک) حداکثر 400mA است.

نکته مهمی که در اینجا وجود دارد پیک بالای جریان لحظه ای این ماژول است. شکل موج ماژول SIM900 به صورت لحظه ای جریانی تا حدود 2A مصرف می کند که در پیک جریان ولتاژ تغذیه نباید بیش از 400mVافت کند، در غیر این صورت ماژول ریست می شود.

 

برای تامین این پیک جریان استفاده از دو خازن تانتالیوم موازی با ظرفیت های 100uF و 100nF در مسیر تغذیه ماژول الزامی است.

 

 

 

 

 

 

ب ) روشن کردن SIM900

پس از اعمال ولتاژ به این ماژول برای روشن کردن آن بایستی پایه PWRKEYرا برای مدت حداقل 1 ثانیه صفر کنیم و سپس دوباره آن را یک کنیم. برای خاموش کردن ماژول نیز باید همینطور عمل کنیم.

 

 

 

 

 

ج ) اتصال SIM900 به میکروکنترلر

همانطور که گفته شد ماژول SIM900 از طریق پورت سریال (UART) ارتباط برقرار می کند.

 

همانطور که می دانید پروتکل ارتباط سریال UART دارای چندین مشخصه است.

  • تعداد بیت های هر فریم که در اینجا 8 bit است.
  • تعداد Stop bit ها که در اینجا 1 است.
  • نوع Parity که در اینجا غیر فعال است.
  • سرعت ارتباط که می تواند هر یک از مقادیر 1200bps , 2400bps , 4800bps , 9600bps , 19200bps , 38400bps , 57600bps , 115200bps باشد. ماژول سرعت ارتباط را به طور اتوماتیک تشخیص می دهد.

همانطور که گفته شد ماژول SIM900 این قابلیت را دارد که سرعت ارتباط را به طور خودکار تشخیص دهد ، برای این کار ابتدا باید در ابتدا یک کاراکتر ‘A’ به ماژول ارسال کنیم.

 

 

 

د ) دستورات ماژول SIM900

ماژول SIM900 به صورت کاراکتری دستورات را دریافت می کند و به همان صورت هم به آنها پاسخ می دهد. در انتهای هر دستور باید دو کاراکتر CR و LF که معادل عددی آنها به ترتیب 10 و 13 است ارسال شوند. این دو کاراکتر در جدول ASCII  تعریف شده اند. به این شکل ارتباطی بین یک ماژول و CPU پروتکل ATcommand می گویند. ماژول پس از دریافت هر دستور پاسخ آن را ارسال می کند.

 

 

-       دستور AT

این دستور برای تست سلامت ارتباط با ماژول می باشد. ماژول در پاسخ به این دستور OK پاسخ می دهد.

AT

 

OK

-       دستور ATI

ماژول در پاسخ به این دستور مدل و ورژن خود را ارسال می کند.

ATI

 

SIM900 R11.0

 

OK

 


 

-       دستور AT+CSQ

ماژول در پاسخ به این دستور دو عدد را باز می گرداند. عدد اول قدرت سیگنال آنتن را با عددی بین 0 تا 32 برمی گرداند و عدد دوم نشاندهنده جزئیاتی است که در اینجا برای ما اهمیتی ندارد.

AT+CSQ

 

+CSQ: 14,0

 

OK

-       دستور AT+CBC

ماژول در پاسخ به این دستور سه عدد را برمی گرداند. عدد اول نشان دهنده در حال شارژ بودن باطری است. عدد دوم میزان شارژ باطری را به صورت عددی بین 0 تا 100 نشان می دهد و عدد سوم ولتاژ باطری را بر حسب میلی ولت نشان می دهد.

AT+CBC

 

+CBC: 0,100,4338

 

OK

 

 


 

-       دستور AT+CMGF (Select sms message format)

این دستور برای انتخاب فرمت نوشتن و خواندن پیامک درSIM900است. این ماژول با دو فرمت Text و PDU می تواند پیامک ها را سرویس دهی کند. هر چند فرمت PDU کاملتر است ولی بسیار پیچیده بوده و در اینجا به دلیل سادگی فقط با فرمت Text کار می کنیم. برای انتخاب فرمت Text کافی است دستور AT+CMGF=1 را به ماژول بفرستید. ماژول در پاسخ OK بر می گرداند.

AT+CMGF=1

 

OK

 

 

 


 

-       دستور AT+CMGS (Send SMS)

این دستور در فرمت Text و PDU رفتار متفاوتی دارد که در اینجا فرمت Text آن را تشریح می کنیم. ابتدا باید شمار گیرنده را در انتهای دستور وارد کنیم :

AT+CMGS="09191360000"

در پاسخ این دستور ماژول کاراکتر ‘>’ را بر می گرداند که به این معنی است که ماژول آماده دریافت متن پیامک است :

AT+CMGS="09191360000"

> Hello SIM900 .i am student.

 

پس از وارد کردن متن پیام بایستی کاراکتر 0x1a را ارسال کنیم. ماژول با دریافت این کد شروع به ارسال پیامک می کند و در صورت عدم موفقیت کلمه ERROR را برمی گرداند و در صورت ارسال موفق OK پاسخ می دهد :

AT+CMGS="09191360000"

 

>Hello SIM900 . i am student.

+CMGS: 145

 

OK

 

 


 

-       دستور AT+CMGL (List SMS messages)

این دستور برای خواندن پیامک های موجود در سیم کارت است و به چند شکل می توان از آن استفاده کرد :

عملکرد

دستور

خواندن تمام پیامک های دریافتی خوانده نشده.

AT+CMGL="REC UNREAD"

خواندن تمام پیامک های دریافتی خواندن شده.

AT+CMGL="REC READ"

خواندن تمام پیامک های ذخیره شده اما ارسال نشده.

AT+CMGL="STO UNSENT"

خواندن تمام پیامک های ذخیره شده و ارسال شده.

AT+CMGL="STO SENT"

خواندن تمام پیامک ها بدون قید و شرط.

AT+CMGL="ALL"

 

ماژول در پاسخ به این دستور متن تمام پیامک ها را با زمان دریافت و سایر مشخصاتشان بر می گرداند :

AT+CMGL="REC UNREAD"

+CMGL: 2,"REC UNREAD","+989191360000","E57A@","11/09/28,19:30:01+14"

Hello

This is mostafa.

OK

 

 


 

-       دستور AT+CMGD (Delete SMS messages)

این دستور برای حذف پیامک های موجود در سیم کارت است و به دنبال آن دو عدد باید ارسال کنیم.

عدد اول را index می نامیم و عدد دوم را delflag که این دو عدد عملکرد دستور را کنترل می کنند. در جدول زیر نحوه عملکرد دستور را بر اساس مقادیر مختلف delflag مشاهده می کنید.

عملکرد

Delflag

پاک کردن پیامک از خانه شماره index حافظه :

به عنوان مثال دستور زیر پیامک موجود در خانه شماره 27 حافظه سیم کارت را پاک می کند

AT+CMGD=27,0

OK

0

حذف تمام پیامک های دریافتی خوانده شده از حافظه.

AT+CMGD=0,1

OK

1

حذف تمام پیامک های دریافتی خوانده شده و ذخیره شده ارسال شده.

AT+CMGD=0,2

OK

2

حذف تمام پیامک ها غیر از پیامهای دریافتی خوانده نشده.

AT+CMGD=0,3

OK

3

حدف تمام پیامک ها بدون قید و شرط.

AT+CMGD=0,4

OK

4