loading...

بریم بسازیم

دراین سایت ما ساختنی های جالبی داریم

بازدید : 507
چهارشنبه 20 اسفند 1398 زمان : 18:59

این متن در مورد روش برقراری ارتباط ماژول 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 است.

کد برنامه

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 پر شده است. معادله استفاده شده برای تعیین این مقدار به صورت زیر است که در آن فرکانس کریستال بر حسب هرتز است:

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 به صورت منظم و با فاصله زمانی خاصی ( در حدود ۱ ثانیه) شروع به چشمک زدن می‌کند که نشان می‌دهد ماژول آماده استفاده است و قبل از اتصال به شبکه، چشمک زدن آن سریع تر است.
  • باید مطمئن شد که سیمکارت مورد استفاده در پروژه میزان اعتبار کافی برای ارسال پیامک را داشته باشد و همچنین ابعاد و نوع سیمکارت، با ماژول استفاده شده تطابق داشته باشد.
منبع

Let's block ads! (Why?)

نظرات این مطلب

تعداد صفحات : 1

آمار سایت
  • کل مطالب : 17
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • بازدید امروز : 2
  • بازدید کننده امروز : 2
  • باردید دیروز : 5
  • بازدید کننده دیروز : 6
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 20
  • بازدید ماه : 139
  • بازدید سال : 139
  • بازدید کلی : 11543
  • کدهای اختصاصی