GSM مخفف Global System for Mobile ارتباطات است. این یک استاندارد جهانی است که توسط ماژول های GSM در داخل تلفن های همراه دنبال می شود که آنها را قادر می سازد به هر شبکه تلفن همراه در سراسر جهان متصل شوند. در برنامههای خاص، سیستمهای مبتنی بر میکروکنترلر باید به شبکه GSM متصل شوند که کاربر را قادر میسازد تا با ارسال پیام یا برقراری تماس، سیستم را کنترل کند. سیستم ها همچنین می توانند پیام هایی را برای هشدار یا اطلاع رسانی در مورد وضعیت سیستم در حال اجرا به کاربر ارسال کنند.
در تمام این موارد به جای استفاده از تلفن های همراه از یک ماژول GSM جداگانه استفاده می شود. مزیت استفاده از ارتباط GSM با یک سیستم یا دستگاه این است که کاربر می تواند سیستم را به صورت بی سیم بدون توجه به فاصله آن نسبت به هر ارتباط بی سیم دیگری کنترل کند، مشروط بر اینکه هم کاربر و هم دستگاه باید در یک منطقه تحت پوشش سلولی باشند. .
این پروژه خاص نحوه ارتباط با ماژول GSM و ارسال پیامک به شماره تلفن های دیگر را با استفاده از برد آردوینو نشان می دهد . بردهای میکروکنترلر AVR که با تمام مدارات اولیه برای کارکرد میکروکنترلری که با بوت لودر آردوینو فلاش شده است، ارائه شده است، برد آردوینو نامیده می شود. استفاده از Arduino IDE به قدری ساده است که هر کسی که دانش اولیه برنامه نویسی c را داشته باشد می تواند به سرعت با آن شروع به کار کند. پروژه نحوه شروع کار با آردوینو در مورد مراحل لازم برای شروع کار با برد آردوینو توضیح می دهد. آردوینو میتواند با استفاده از ورودی/خروجی دیجیتال، پورت سریال، پورت I2C، پورت SPI و غیره با دستگاههای دیگر ارتباط برقرار کند و در این پروژه ماژول GSM با استفاده از پورت سریال برد آردوینو متصل میشود.
آردوینو یک سخت افزار منبع باز است که در آن شماتیک سخت افزاری باز است، هر کسی می تواند از آن شماتیک ها برای توسعه برد آردوینو و توزیع آن استفاده کند. آردوینو IDE نیز منبع باز است و هر کسی میتواند کتابخانههای خود را به آردوینو کمک کند. همه بردهای آردوینو باید با آردوینو IDE سازگار باشند که می توان از آن برای برنامه ریزی بردهای آردوینو استفاده کرد.
برد آردوینو مورد استفاده در این پروژه برد آردوینو پرو مینی و نسخه IDE آردوینو 1.0.3 برای ویندوز است. تصویر برد آردوینو پرو مینی و آردوینو IDE در زیر نشان داده شده است:
از آنجایی که برد arduino pro-mini مداری برای اتصال آن با پورت سریال یا پورت USB رایانه شخصی ندارد، برای اتصال آن به رایانه شخصی به یک برد تبدیل USB به TTL خارجی نیاز است. این سخت افزار به برنامه نویسی برد آردوینو کمک می کند و همچنین به ارتباط سریال با پورت USB کامپیوتر کمک می کند.
فرض بر این است که خواننده پروژه نحوه شروع کار با آردوینو را طی کرده و تمام مواردی را که در آنجا مورد بحث قرار گرفته است را امتحان کرده است.
در این پروژه خاص، ماژول GSM با استفاده از پورت ارتباط سریال به برد آردوینو متصل می شود. از آنجایی که ماژول دارای پورت RS232 است و Arduino pro-mini می تواند با استفاده از سطوح منطقی TTL ارتباط برقرار کند، از آی سی max232 برای ایجاد یک تبدیل دو جهته بین سطوح منطقی RS232 و TTL استفاده می شود. پایه Tx برد آردوینو از طریق max232 به پایه Rx ماژول GSM و پایه Rx آردوینو با استفاده از خود max232 به پایه Tx ماژول GSM متصل می شود.
کد نوشته شده در آردوینو قادر است با استفاده از دستورات AT با ماژول GSM ارتباط برقرار کند . دستورات AT با استفاده از توابع ارتباط سریال ارائه شده توسط کتابخانه آردوینو از ماژول ارسال یا دریافت می شوند. توابعی مانند Serial.begin() که به مقدار دهی اولیه پورت سریال با نرخ باود معین کمک می کند، Serial.write() برای ارسال داده به پورت سریال، توابع Serial.available() و Serial.read() برای خواندن داده ها. از پورت سریال در این پروژه استفاده می شود و قبلا در پروژه های قبلی در مورد نحوه برقراری ارتباط سریال با آردوینو ، نحوه ارسال و دریافت اطلاعات سریال با استفاده از آردوینو و نحوه رفع اشکال سریال با آردوینو صحبت شده است .
ماژول GSM مورد استفاده در این پروژه یک ماژول مبتنی بر SIM900 است که می تواند با استفاده از پورت ارتباطی سریال RS232 با دستگاه های دیگر ارتباط برقرار کند. روی منبع تغذیه 9 ولت کار می کند و تصویر آن در زیر آمده است:
ماژولهای GSM زمانی که فرمان «AT» را دریافت میکنند «OK» پاسخ میدهند و این بهترین راه برای بررسی ارتباط بین ماژول و میکروکنترلر است.
AT+CMGS – این دستور برای ارسال پیامک از یک ماژول GSM استفاده می شود. دستور باید با شماره ای که پیام باید به آن ارسال شود دنبال شود. پس از بازگشت کالسکه می توان متن SMS را به ماژول GSM ارسال کرد که پس از دریافت <CTRL+Z> ارسال می شود.
نحو ارسال پیامک با استفاده از دستورات AT با ماژول GSM در زیر نشان داده شده است.
SYNTAX: AT+CMGS=”mobile_number” <ENTER>نوشتن متن <CTRL+Z>