استفاده از ماژول GSM با بهره گیری از میکروکنترلر ۸۰۵۱ برای پروژه های شبکه موبایل

0
12
ماژول GSM را استفاده از میکرو 8051 راه اندازی نمایید
ماژول GSM را استفاده از میکرو ۸۰۵۱ راه اندازی نمایید

این متن در مورد روش برقراری ارتباط ماژول GSM و میکروکنترلر ۸۰۵۱ است که از این طریق می توان پیامک را ارسال کرده و دریافت کرد. استفاده از ماژول GSM در سیستم های پیشرفته کاربردی بسیار متداول است و به همین دلیل داشتن دانش کار با این ماژول و اتصال آن به میکروکنترلر برای افرادی که می خواهند یک طراح عالی برای سیستم های پیشرفته باشند، بسیار لازم است.

ماژول GSM چیست ؟

ماژول سامانه جهانی ارتباطات همراه (GSM) ،ماژولی است که معمولا در مودم هایی که بر اساس سیم کارت هستند قرار دارد و می تواند درست مانند یک گوشی تلفن همراه، امکان استفاده از شبکه موبایل را فراهم کند. ماژول GSM می تواند توسط یک کامپیوتر یا میکروکنترلر، کنترل شود و وظایف مختلفی را در شبکه انجام دهد، از جمله : مکالمه، ارسال پیامک، دریافت پیامک، ارسال فکس و .. معمولا ماژول GSM می تواند از طریق پورت سریال با سخت افزار موجود ارتباط برقرار می کند. اگر سخت افزار موجود یک کامپیوتر شخصی باشد، این ارتباط معمولا از طریق پورت سریال RS232 بوده و اگر سیستم موجود بر پایه میکروکنترلر باشد، ارتباط از طریق پینهای TTL یعنی Rx و Tx انجام می شود. ماژولهای GSM پیشرفته حتی ممکن است دارای امکانات ارتباطی دیگری چون بلوتوث یا وای فای باشند. معمول ترین کاربرد این ماژولها در سیستم های ارسال و دریافت پیامک، سیستم های کنترلی مبتنی بر موبایل یا کاربردهای ساده ای چون انتقال اطلاعات با استفاده از شبکه GSM باشد که این ماژول فراهم می کند.

سخت افزاری که برای ارتباط با ماژول استفاده می شود (کامپیوتر یا میکروکنترلر)، می تواند با ارسال کامندها یا مقادیر مختلف و در فرمت تعیین شده، وظایف مختلفی را بر عهده ماژول GSM بگذارد. مازول GSM که در این پروژه استفاده شده از نوع SIM900 است و کاری که می خواهیم انجام دهد این است که بتواند یک پیامک را به گوشی موبایل بفرستد. دستورات و فرمت مورد نیاز برای انجام این کار در ادامه آورده شده است:

  • AT: برای بررسی اتصال صحیح ماژول
  • AT+CMGS=1: برای پیکربندی ماژول GSM در حالت SMS
  • AT+CMGS=”mobile number”: برای فرستادن شماره موبایل به ماژول GSM
  • CTRL+Z: برای ارسال شدن پیامک مورد نظر

دیاگرام مدار

در تصویر بالا دیاگرام مربوط به  ارتباط ماژول GSM با میکروکنترلر ۸۰۵۱  نشان داده شده است. در اینجا ماژول GSM و میکروکنترلر از طریق ارتباط سریال با یکدیگر مرتبط هستند. پین Rx از میکروکنترلر به پین Tx در ماژول  متصل شده و پین Tx میکروکنترلر به پین Rx در ماژول متصل است. برای نمایش پیامی که ارسال می شود، در این پروژه از یک نمایشگر LCD استفاده شده است. کلید S1 و مقاومت R2 مربوط به مدار ریست کننده در میکروکنترلر هستند. خازن C1 و C2 و کریستال X1 نیز بخش کلاک مدار را تشکیل می دهند. خازن C3 تنها به منظور بای پس کردن نویز استفاده شده و مقاومت R2 نیز برای تنظیم کنتراست در نمایشگر LCD قرار داده شده است. مقاومت R3 محدود کننده جریان عبوری برای نور پس زمینه در نمایشگر LCD است.

در ساختنی بخوانید :
کفش هوشمند با دسترسی به GPS و قابلیت ارسال پیامک بسازید

کد برنامه

ORG 000H
MOV TMOD,#00100001B        
MOV TH1,#253D           
MOV SCON,#50H          
SETB TR1

RS EQU P2.7
RW EQU P2.6
E  EQU P2.5
        
MAIN: ACALL DINT 

MOV A,#"A"
ACALL SEND
MOV A,#"T"
ACALL SEND
MOV A,#0DH
ACALL SEND
ACALL DELAY1


MOV A,#"A"
ACALL SEND
MOV A,#"T"
ACALL SEND
MOV A,#"+"
ACALL SEND
MOV A,#"C"
ACALL SEND
MOV A,#"M"
ACALL SEND
MOV A,#"G"
ACALL SEND
MOV A,#"F"
ACALL SEND
MOV A,#"="
ACALL SEND
MOV A,#"1"
ACALL SEND
MOV A,#0DH
ACALL SEND
ACALL DELAY1


MOV A,#"A"
ACALL SEND
MOV A,#"T"
ACALL SEND
MOV A,#"+"
ACALL SEND
MOV A,#"C"
ACALL SEND
MOV A,#"M"
ACALL SEND
MOV A,#"G"
ACALL SEND
MOV A,#"S"
ACALL SEND
MOV A,#"="
ACALL SEND
MOV A,#34D
ACALL SEND
MOV A,#"+"
ACALL SEND
MOV A,#"9"
ACALL SEND
MOV A,#"1"
ACALL SEND
MOV A,#"9"
ACALL SEND
MOV A,#"5"
ACALL SEND
MOV A,#"4"
ACALL SEND
MOV A,#"4"
ACALL SEND
MOV A,#"3"
ACALL SEND
MOV A,#"4"
ACALL SEND
MOV A,#"0"
ACALL SEND
MOV A,#"0"
ACALL SEND
MOV A,#"7"
ACALL SEND
MOV A,#"7"
ACALL SEND
MOV A,#34D
ACALL SEND
MOV A,#0DH
ACALL SEND
ACALL DELAY1


MOV A,#"H"
ACALL SEND
MOV A,#"E"
ACALL SEND
MOV A,#"L"
ACALL SEND
MOV A,#"L"
ACALL SEND
MOV A,#"O"
ACALL SEND
ACALL DELAY1

MOV A,#1AH
ACALL SEND


ACALL DELAY1


ACALL DINT     
ACALL TEXT1
ACALL DELAY1
HERE1:SJMP HERE1


SEND:CLR TI
     MOV SBUF,A
WAIT:JNB TI,WAIT
     RET


DELAY1:MOV R6,#15D       
BACK: MOV TH0,#00000000B   
      MOV TL0,#00000000B   
      SETB TR0             
HERE: JNB TF0,HERE        
      CLR TR0              
      CLR TF0             
      DJNZ R6,BACK
      RET
      
DELAY: CLR E
    CLR RS
    SETB RW
    MOV P0,#0FFh
    SETB E
    MOV A,P0
    JB ACC.7,DELAY
    CLR E
    CLR RW
    RET      
      
 DISPLAY:MOV P0,A
    SETB RS
    CLR RW
    SETB E
    CLR E
    ACALL DELAY
    RET     
      
      
CMD: MOV P0,A
    CLR RS
    CLR RW
    SETB E
    CLR E
    ACALL DELAY
    RET

 DINT:MOV A,#0FH 
    ACALL CMD
    MOV A,#01H 
    ACALL CMD
    MOV A,#0CH 
    ACALL CMD
    MOV A,#06H 
    ACALL CMD
    MOV A,#81H 
    ACALL CMD
    MOV A,#3CH 
    ACALL CMD
    RET 
 
 TEXT1: MOV A,#"S"
    ACALL DISPLAY
    MOV A,#"E"
    ACALL DISPLAY
    MOV A,#"N"
    ACALL DISPLAY
    MOV A,#"T"
    ACALL DISPLAY
    MOV A,#" "
    ACALL DISPLAY
    MOV A,#" "
    ACALL DISPLAY
    MOV A,#" "
    ACALL DISPLAY
    RET 
             
 END

توضیح کد برنامه

تایمر ۱ در میکروکنترلر ۸۰۵۱ ، برای ارتباط سریال در مد ۲ تنظیم شده است. تایمر ۰ در میکروکنترلر ۸۰۵۱ برای ایجاد تأخیرهای استفاده شده در برنامه، در مد ۱ تنظیم شده است. برای این منظور رجیستر TMOD با مقدار ۰۰۱۰۰۰۰۱B پر شده است.  برای تنظیم باود رست یا نرخ ارسال داده در حالت ۹۶۰۰، رجیستر TH1 با مقدار ۲۵۳D پر شده است. معادله استفاده شده برای تعیین این مقدار به صورت زیر است که در آن فرکانس کریستال بر حسب هرتز است:

در ساختنی بخوانید :
ساخت یک تقویت کننده آنتن ۴G برای گوشی های هوشمند با استفاده از آردوینو

TH1=256-((Crystal/384)/Baud)

کریستالی که در اینجا استفاده شده از نوع ۱۱٫۰۵۹۲ مگاهرتزی است و باودریتی که مورد نیاز می باشد، ۹۶۰۰ است. زمانی که این مقدار در معادله بالا قرار می گیرد، در نهایت TH1 برابر با ۲۵۳ خواهد شد. برای تنظیم پورت سریال در مد ۱ و فعال کردن دریافت کننده، مقدار رجیستر SCON با ۵۰H پر می شود.

مرحله بعدی در کنترل ماژول GSM برای انجام کارهای مورد نظر این است که پیامهای از پیش تعیین شده ای برای دادن شماره تلفن به آن، ارسال شود. برای این منظور، ابتدا باید فرمان یا کامند AT را به ماژول GSM فرستاد تا وضعیت آن بررسی شود. فرمت ارسال این دستور AT/r است. این کار با ارسال کد اسکی A، کد اسکی T و کد اسکل /r یا … به ماژول GSM و به ترتیب انجام می شود.

سپس باید کامند AT+CMGS را همراه با شماره موبایلی که قرار است به آن پیامک فرستاده شود، به ماژول GSM ارسال کرد. فرمت ارسال این کامند به صورت AT+CMGS=”mobile number”/r است. برای تنظیم کردن ماژول GSM در حالت پیامکی باید کامندی با فرمت AT+CMGS=1/r به آن ارسال شود. این کار به صورت ارسال تک به تک کد اسکی هر کدام از کاراکترهای موجود در این کامند ( حتی /r) به ماژول انجام می شود.

سپس باید پیغامی که قرار است ارسال شود را به ماژول فرستاد. این کار به شکل ارسال تک به تک کد اسکی هر کدام از کاراکترها و حروف موجود در متن به ماژول GSM انجام می شود و در نهایت نیز کد اسکی CTRL+Z برای ارسال پیامک به ماژول فرستاده می شود. کد اسکی CTRL+Z به صورت هگز به شکل ۰۱AH است. یک تأخیر ۱ ثانیه ای نیز در بین هر کدام از کامندهای ارسالی به ماژول GSM قرار داده می شود تا زمان کافی برای دریافت و اجرای هر دستور وجود داشته باشد. تمامی مراحل گفته شده را می توان به شکل ساده در تصویر زیر مشاهده کرد:

AT/r

۱S delay.

AT+CMGF=1/r

۱S delay.

AT+CMGS="mobile number"/r

۱S delay.

message text.

۱S delay.

CTRL+Z

۱S delay.

برای ارسال کدهای اسکی هر کدام از کاراکترهای کامندهای مختلف به صورت تک به تک به ماژول GSM، از ارتباط سریال استفاده می شود. این کار با استفاده از بارگذاری کد اسکی هر کاراکتر در آکومولاتور A و سپس فراخواندن زیرروال SEND انجام می شود. عملکرد زیر روال SEND به این صورت است که بیت TI پرچم ارسال را در رجیستر SCON پاک کرده و محتوی آکومولاتور A را در رجیستر SBUF قرار می دهد. پرچم ارسال TI در زمانی که ارسال تکمیل شود، توسط uC، با مقدار ۱ پر می شود. زیر روال این پرچم را مانیتور می کند و زمانی که مقدار آن ۱ باشد، از آن خارج می شود. وضعیت پرچم TI با استفاده از ساختار JB بررسی می شود.

در ساختنی بخوانید :
ساخت یک کنترل کننده سطح مخزن با استفاده از ۸۰۵۱

متن “SEND” پس از ارسال آخرین دستوری که به ماژول GSM ارسال شده است (مثلا CTRL+Z) بر روی ماژول LCD نمایش داده می شود. متد استفاده شده برای برقراری ارتباط بین ماژول LCD و میکروکنترلر از نوع ۸ سیم می باشد.

در اینجا پس از اینکه پیغام ارسال شده بر روی نمایشگر LCD نشان داده شد، با استفاده از HERE1:SJHERE1 برنامه متوقف می شود. اگر این عملیات انجام نشود، برنامه وارد یک حلقه بینهایت می شود و پیام را دوباره و دوباره ارسال می کند. در این حالت باید کلید ریست را به صورت دستی فشار داد تا پیام دوباره ارسال شود.

نکات:

  • ماژولهای GSM موجود در فروشگاه ها با منابع تغذیه مختلفی مانند ۱۲، ۹ و ۵ ولت می باشند. ماژولی که در این پروژه استفاده شده با ولتاژ ۱۲ ولت کار می کند. بنابرین باید ولتاژ متصل به آن را با توجه به دیتاشیت ماژول GSM متصل کرد.
  • ماژول GSM پس از روشن شدن، برای پیدا کردن و متصل شدن به شبکه نیاز به کمی زمان دارد. بر روی این ماژول یک چراغ LED وجود دارد که برای همین منظور و تشخیص وضعیت اتصال به شبکه قرار داده شده است. در بیشتر ماژولهای GSM، در صورت اتصال صحیح ماژول به شبکه، این LED به صورت منظم و با فاصله زمانی خاصی ( در حدود ۱ ثانیه) شروع به چشمک زدن می کند که نشان می دهد ماژول آماده استفاده است و قبل از اتصال به شبکه، چشمک زدن آن سریع تر است.
  • باید مطمئن شد که سیمکارت مورد استفاده در پروژه میزان اعتبار کافی برای ارسال پیامک را داشته باشد و همچنین ابعاد و نوع سیمکارت، با ماژول استفاده شده تطابق داشته باشد.

منبع