در سری آموزش های برد رزبری پای و شیلد سیم کارت SIM800C مخصوص این برد، به طراحی پروژههای مختلف نظیر ارسال پیامکی دما به کمک این برد و کنترل رله از طریق SMS، پرداختیم. در آموزشهای دیگر، برد رزبری پای Raspberry pi را همانند اتصال به یک مودم اینترنتی، به اینترنت GPRS شیلد رزبری پای متصل نموده و به ارسال و دریافت داده پرداختیم. جالب است که مطلع باشید به کمک این روش، می توانید خیلی ساده از طریق این ماژول، به اینترنت متصل شده و کارهای عادی نظیر وب گردی (البته با سرعت پایین) را هم انجام دهید. همانطور که اطلاع دارید، این ماژول با دریافت فرامینی موسوم به AT-COMMANDها کنترل میشود. در آموزشهای پیشین برای ارسال فرمان به ماژول از نرم افزارهای واسط نظیر gammu و ppp استفاده کردیم. در این آموزش با هم به بررسی ارسال دستورات AT-COMMAND به شیلد سیم کارت SIM800C خواهیم پرداخت. در ادامه این آموزش با مرجع تخصصی رزبری پای و مرجع تخصصی ماژول سیم کارت به زبان فارسی، دیجی اسپارک همراه باشید.
دستورات AT-COMMAND
ماژولهای مخابراتی سیم کام، نظیر شیلد SIM800C، قابلیت اتصال به شبکه GSM در باند فرکانسی ۸۵۰/۹۰۰/۱۸۰۰/۱۹۰۰ را داراست. با اتصال به شبکه GSM، این ماژول میتواند به برقراری تماس تلفنی، دریافت تماس و یا رد آن، ارسال و دریافت پیامک و اتصال اینترنت، دقیقا مثل یک تلفن همراه بپردازد. این ماژول برای انجام هریک از فرامین خود، دستوراتی از پیش تعیین شده داشته که با ارسال این دستورات به ماژول، عمل مورد نظر کاربر نظیر ارسال پیامک و یا تماس تلفنی، اجرا خواهد شد. بسته به نوع برد مورد استفاده برای راه اندازی ماژول سیم کارت، روشهای مختلفی برای ارسال فرمان AT Command به ماژول سیم کارت وجود دارد. در بردهای آردوینو به یک روش و در بردهای رزبری پای هم بسته به مدل انتخابی ماژول سیم کارت، روشهای مختلفی خواهیم داشت.
ارسال AT-Command در آردوینو
برای ارسال این فرامین از طریق رایانه به ماژول سیم کارت، از آنجایی که پروتکل ارتباطی ماژول از نوع سریال و رایانه USB است، می بایست به کمک یک مبدل سریال به usb، دستورات را به ماژول ارسال نماییم. پروتکل ارتباطی ماژولهای سیم کام، از نوع سریال UART است، همانطور که میدانید، این پروتکل دو پایه به نامهای RX و TX به ترتیب برای دریافت و ارسال داده دارد. برای اتصال مبدل به ماژول می بایست پایه RX مبدل به TX ماژول و بالعکس متصل شود، همجنین جای گراندها نیز میبایست به هم متصل شود. دقیقا مشابه آنچه در تصویر زیر مشاهده میکند.
پس از اتصال ماژول به رایانه، به کمک یکی از نرم افزار های ترمینال، نظیر نرم افزار ترمینال آردوینو، میتوانید به ارتباط دهی با ماژول پرداخته و فرامین خودر ا به آن ارسال نمایید.
همانطور که بیان شد، برای اجرای هر عمل، نظیر ارسال و دریافت پیامک، می بایست فرمان خاصی را به ماژول ارسال نمود. فرمت فرمان ها به شکل زیر است:
AT+COMMNAD
در فرمت فوق، هر فرمان، در جای عبارت COMMAND قرار گرفته و در نهایت با فشردن کلید ENTER، فرمان به ماژول ارسال میشود. در ادامه، مهم ترین دستورات ماژول را با هم مرور میکنیم.
-“AT+CMGS=”+989121234567 : ارسال پیام متنی
-;ATD+98912345678 : برقراری تماس تلفنی
-AT+CMGR=1 : خواندن پیام متنی
-ATH : قطع تماس تلفنی
-AT+SAPBR=1,1 : اتصال به شبکه اینترنت
-AT+CIFSR : مشاهده آی پی ماژول
AT+CBC : مشاهده میزان شارژ باتری
-AT+CSQ : مشاهده کیفیت سیگنال
برای ارسال این فرامین به ماژول از طریق برد آردوینو Arduino و یا رزبری پای Raspberry Pi، نیاز است تا پایه RX ماژول به TX برد آردوینو و یا رزبری پای و بالعکس، با اتصال گراند مشترک، صورت پذیرد. اما از آنجاییکه ما در این آموزش از شیلد ماژول SIM800C مخصوص برد رزبری پای استفاده مینماییم، نیازی به سیم کشی اضافه نیست. کافیست شیلد را بر روی برد رزبری پای Raspberry pi قرار دهید، شیلد سیم کارت تغذیه خود را از برد رزبری دریافت خواهد نمود. به تصویر زیر دقت کنید.
ارسال AT-COMMAND در برد رزبری پای
همانند آموزشهای پیشین، نیاز به ابزاری داریم تا بتوانیم به شیلد سیم کارت SIM800C، فرمان ارسال کنیم. در سیستم عامل ویندوز برای ارسال فرامین AT-COMMAND و اتصال به ماژول از نرم افزارهای مخصوص استفاده میشود. مشابه همین مورد در این آموزش از نرم افزاری به نام minicom که برای سیستم عامل لینوکس و ارسال داده از طریق پورت سریال طراحی شده است، بهره میبریم. برای دانلود و نصب این ابزار، به شیوه زیر عمل کنید.
1 |
sudo apt-get install minicom |
پس از دانلود و نصب نرم افزار فوق، می بایست در ابتدا تنظیمات مربوطه را انجام دهید. از آنجاییکه پس از قرار گیری شیلد رزبری پای، نام این دیوایس به صورت ttyS0 در سیستم ذخیره شده و این نام می باید در تنظیمات نرم افزار قرار گیرد، در ابتدا به کمک دستور زیر، از نام دیوایس مطمئن شوید.
1 |
dmesg|fgrep ttyS0 |
پس از اطمینان از نام دیوایس،باید همین نام را درون نرم افزار minicom وارد نمایید. برای این منظور، نرم افزار را در حالت تنظیمات، باز می نماییم.
1 |
sudo minicom -s |
پس از وارد نمودن عبارت فوق در ترمینال، با تصویر زیر مواجه خواهید شد.
در این مرحله، به کمک کلیدهای جهتی کیبورد (arrow keys)، گزینه serial port setup را انتحاب و تایید نمایید. پس از این مرحله، منوی زیر را مشاهده خواهید کرد:
در منوی فوق، با توجه به اینکه باید نام دیوایس را تنظیم نماییم، با انتخاب دکمه a کیبرد، وارد گزینه تنظیمات نام دیوایس می شویم. در این قسمت، چنانچه مغایرتی با عبارت درج شده در تصویر وجود داشت، آن را به شکل تصویر تغییر داده و سپس دکمه enter را بزنید. پس از این قسمت، با منوی زیر مواجه خواهید شد.
در منوی فوق، به کمک کلیدهای جهتی کیبورد، برروی گزینه save setup as dfl رفته و enter را بزنید. در این مرحله تنظیمات ذخیره شده و آماده ارسال فرامین AT به ماژول خواهیم بود. برای این منظور کافیست عبارت زیر را تایپ نمایید.
1 |
sudo minicom |
وسایل مورد نیاز
شیلد SIM800C سیم کارت مخصوص رزبری پای
جمع بندی
در این آموزش به معرفی فرامین AT در ماژولهای سیم کارت از برند سیم کام پرداخته شد. آنچانکه در این آموزش بیان گردید، فرامین at-command ماژول سیم کارت، دستوراتی از پیش تعیین شده هستند که هرکدام به منظور عمل خاصی، نظیر تماس، پیامک، اینترنت و…. به کار میرود. در ادامه، نحوه ارسال دستورات AT در برد رزبری پای به شیلد SIM800C سیم کارت مخصوص این برد، از طریق نرم افزار minicom، مورد بررسی قرار گرفت. همچنین از مریت های مهم شیلد سیم کارت Sim800C، کاهش پیچیدگی در مدار و راه اندازی سریع و آسان است. پس از دانلود و نصب این نرم افزار، تنطیمات مربوطه را انجام داده و سپس فرامین کنترلی این ماژول نظیر برقراری تماس، ارسال پیامک و…. را از طریق برد رزبری پای به این شیلد، ارسال نمودیم. در آموزش بعدی به کمک اینترنت ماژول سیم کارت Sim800C و برد رزبری پای اقدام به ارسال تصویری که از دوربین Raspberry Pi گرفتهایم برروی سرور خواهیم کرد. ارسال تصویر به سرور با برد رزبری پای از طریق اینترنت GPRS شیلد SIM800C
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.