سیم کارت GSM - GPRS

راه اندازی و کار با ماژول SIM800L بخش یازدهم: دستورات و امکانات جانبی

practical-at-commands-in-sim800l-gsm-module-digispark
نوشته شده توسط معین صابری

در سلسله آموزش های ماژول SIM800L، مرحله به مرحله به بررسی امکانات، ویژگی ها، قابلیت ها و کاربرد های ماژول می پردازد. در قسمت یازدهم و پایانی مجموعه آموزش Sim800L، به بررسی امکانات جانبی و سایر دستورات کاربردی این ماژول قدرتمند، می پردازیم. همانطور که در قسمت های پیشین نیز بیان شد، ماژول SIM800L قابلیت برقراری تماس تلفنی، ارسال و دریافت پیامک را داراست. همچنین این ماژول نیز قادر است تا با اتصال به اینترنت، به ارسال و دریافت داده ها تحت پروتکل های اینترنتی نظیر HTTP، SMTP،FTP و…. بپردازد.

در قسمت پایانی این مجموعه آموزش، به بررسی امکانات و ویژگی های جانبی این ماژول به همراه دستورات AT آن می پردازیم. ماژول SIM800L دارای امکانات بسیاری زیاده بوده که می تواند دقییقا مثل یک تلفن همراه، در پروژه های اینترنت اشیا و کنترل از راه دور، کارا باشد. بنابراین، در ادامه این آموزش با مرجع تخصصی ماژول سیم کارت به زبان فارسی، دیجی اسپارک همراه باشید.

 


بررسی وضعیت باتری


یکی از مهم ترین ویژگی های ماژول SIM800L، بررسی وضعیت باتری از لحاظ شارژ و میزان ولتاژ آن است. به عبارت دیگر، ماژول SIM800L می تواند درصد شارژ باتری را به همراه ولتاژ آن، از طریق پورت سریال، ارسال نماید. برای دریافت میزان شارژ باتری، می بایست از دستور زیر استفاده کنید.

AT+CBC

دستور فوق، وضعیت فعلی شارژ باتری(Current Battery Charge) را نمایش می دهد. خروجی این دستور، به شکل زیر خواهد بود.

+CBC: x,y,z

در عبارت فوق، x وضعیت شارژ، y میزان درصد شارژ و z میزان ولتاژ باتری را نمایش می دهد. متغیر x وضعیت شارژ را به صورت زیر تعیین می نماید.

x=0: شارژر متصل نیست.

x=1: باتری در حال شارژ است.

x=2: باتری کاملا شارژ شده است.

در ادامه، پارامتر y میزان درصد شارژ باتری را نمایش می دهد. این درصد می تواند از ۱ الی ۱۰۰، بسته به میزان ظرفیت باتری، قرار گیرد. در نهایت، پارامتر z، میزان ولتاژ باتری را بر حسب میلی ولت، اعلام می نماید.

 


بررسی وضعیت کیفیت سیگنال


یکی دیگر از قابلیت های کاربردی ماژول SIM800L، اعلام میزان کیفیت سیگنال و یا همان میزان آنتن دهی است. خروجی این دستور عددی بین ۰ الی ۳۰ بوده و به صورت زیر استفاده می شود.

AT+CSQ

همانطور که گفته شد، خروجی این دستور عددی بین ۰ الی ۳۰ خواهد بود. ذکر این نکته ضروریست که ملاک اصلی کیفیت سیگنال یک سیم کارت، ارسال این دستور در زمانیست که سیم کارت درون ماژول، قرار گرفته شده باشد. میزان کیفیت سیگنال بر اساس عدد دریافتی، به صورت زیر تقسیم بندی می گردد.

۲الی ۹: مرزی(بسیار ضعیف)

۱۰ الی ۱۴: قابل قبول

۱۵ الی ۱۹: خوب

۲۰ الی ۳۰: عالی

 


بلاک کردن شماره های تماس


یکی دیگر از قابلیت های کلیدی ماژول SIM800L، بلاک کردن شماره های تماس جهت دریافت پیامک و تماس تلفنی است. به کمک این قابلیت می توانید لیستی از شماره ها را تعریف کرده تا تنها همین شماره ها بتوانند به ماژول پیامک ارسال کرده و یا تماس تلفنی با آن برقرار نمایند. برای تعیین شماره ها خاص، از دستور زیر استفاده می گردد.

AT+CWHITELIST=x,y,z1,z2,z3,....

مطابق دستور فوق، متغیر x حالت و مد کاری، متغیر y ایندکس و یا ترتیب شماره و متغیر z شماره را تعریف می کند. حالت های کاری متغیر x، به صورت زیر تعریف می گردد.

۰: مد whitelist غیر فعال

۱: مد whitelist تنها برای تماس فعال

۲: مد whitelist تنها برای پیامک فعال

۳: مد whitelist برای پیامک و تماس فعال

در ادامه، متغیر y می تواند یک عدد بین ۱ الی ۳۰ را بپذیرد. این اعداد در حقیقت شماره شناسه یا index برای هر شماره تلفن هستند. برای درک بهتر این موضوع، بهتر است در ابتدا متغیر z را شرح داده و در نهایت با ذکر مثال، متغیر y را بهتر خواهیم شناخت. متغیر z، شماره تلفن هایی که می توانند به ماژول پیامک فرستاده و یا تماس برقرار کنند را تعیین می نماید. دستور زیر، مثالی از کاربرد را نشان می دهد.

AT+CWHITELIST=3,1,+989121234567

مطابق دستور فوق، مد کاری حالت WHITELIST با عدد ۳، یعنی ارسال پیامک و تماس تلفنی تنظیم شده است. بعد از این مورد، متغیر y با عدد ۱ تنظیم شده که این مورد بیانگر تعیین اولین شماره مجاز برای برقرای تماس و ارسال پیامک به ماژول است. در نهایت، پارامتر آخر شماره تلفن مجاز را تعیین می کند. در مثالی دیگر، برای تعیین دومین شماره مجاز جهت تماس با ماژول، به صورت زیر عمل می کنیم.

AT+CWHITELIST=3,2,+9893512345678

ماژول پس از دریافت دستور فوق، عبارت OK را برگردانده و شماره مورد نظر را به عنوان دومین شماره مجاز جهت برقراری تماس و ارسال پیامک، تعیین خواهد نمود. با توجه به تنظیمات فوق، تنها شماره تلفن های تعیین شده قادرند تا با ماژول تماس گرفته و یا پیامک ارسال نمایند. چنانچه هر شماره ای غیر از شماره های تعیین شده توسط کاربر با ماژول تماس بگیرند، تماس برقرار نشده و به صورت بوق اشغال، خواهد بود. همچنین پیامک های ارسال شده خارج از دامنه تعریف، توسط ماژول دریافت نخواهند شد.

 


نمایش شماره IMEI


از دیگر قابلیت های ماژول SIM800L، نمایش شماره شناسه دستگاه یا همان IMEI است. شماره شناسه دستگاه موبایل یا IMEI، یک شماره یکتا و مخصوص تلفن همراه بوده که بیانگر نام سازنده دستگاه، مدل و مشخصات آن است. این شماره که برای هر موبایل در جهان یکتاست، به صورت زیر از ماژول دریافت می گردد.

AT+GSN

در جواب دستور فوق، ماژول شماره IMEI را ارسال می نماید. شماره IMEI برای پروژه های مختلف جهت تفکیک دستگاه ها از یکدیگر، بسیار کاربردی و مناسب به نظر می آید.

 


خاموش کردن، راه اندازی مجدد و حالت پرواز ماژول


ماژول SIM800L قابلیت راه اندازی مجدد، خاموش شدن و قرار گیری در حالت پرواز را داراست. برای خاموش کردن ماژول، از دستور زیر استفاده می شود.

AT+CFUN=0

به کمک دستور فوق، ماژول خاموش و از شبکه خارج شده و هیچ گونه تماس و پیامکی دریافت نمی گردد. در ان حالت، توان مصرفی ماژول ۰٫۷ میلی آمپر خواهد بود.

 

در ادامه، جهت راه اندازی مجدد ماژول(ری استارت)، می توانید از دستور زیر استفاده کنید.

AT+CFUN=1,1

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

AT+CFUN=4

به طور کلی، دستور CFUN حالت کاری فعلی ماژول(CURRENT FUNCTIONALITY) را تعیین می نماید. در نظر داشته باشید که برای خروج از حالت پرواز، می بایست ماژول را در حالت اتصال به شبکه با دستور زیر قرار دهید.

AT+CFUN=1

 


موقعیت یابی و تعیین مکان بدون GPS


ماژول SIM800L قادر است تا موقعیت حدودی مکانی خود را به دست آورد. در این روش موقعیت نزدیکترین دکل مخابراتی که ماژول به ان متصل شده، به عنوان موقعیت تعیین می شود. برای دسترسی به این قابلیت، ابتدا می بایست اینترنت GPRS ماژول، به کمک دستور زیر فعال شود.

AT+SAPBR=1,1

در صورتیکه ماژول با موفقیت به اینترنت متصل شود، عبارت OK پاسخ داده می شود. در ادامهف به کمک دستور زیر، می توانیم موقعیت حدودی را به دست بیاوریم.

AT+CLBS=1,1

 

در نهایت، مطابق تصویر زیر، موقعیت نمایش داده خواهد شد.

 

موقعیت یابی به کمک این روش اگرچه دارای خطاست، اما در شرایطی که سیگنال های GPS به هر دلیل از بین روند، موقعیت یابی از طریق دکل ها(LBS) می تواند بسیار کارآمد ظاهر شود.

 


۲۵ دستور AT Command مهم ماژول Sim800x


همانطور که میدانید، دستورات AT Command برای کنترل ماژول‌های GSM شامل یک مجموعه از دستورات است که با استفاده از آن‌ها می‌توانید با ماژول ارتباط برقرار کرده و دستورات مورد نیاز را برای آن ارسال کنید. در زیر ۲۵ مورد از دستورات AT Command مهم برای ماژول Sim800L آورده شده است. چنانچه راجع به هر دستور سوالی داشتید، در بخش نظرات همین آموزش مطرح کنید.

  1. دستور AT: تست اتصال به ماژول
  2. دستور AT+CPIN: ورود رمز عبور سیم کارت
  3. دستور AT+CSQ: اندازه گیری شدت سیگنال شبکه
  4. دستور AT+CREG: دریافت وضعیت ثبت نام در شبکه
  5. دستور AT+COPS: دریافت اطلاعات شبکه اپراتور
  6. دستور AT+CGATT: اتصال به GPRS
  7. دستور AT+CIPSHUT: قطع ارتباط GPRS
  8. دستور AT+CIPSTATUS: دریافت وضعیت ارتباط
  9. دستور AT+CIPSTART: شروع ارتباط TCP/IP
  10. دستور AT+CIPSEND: ارسال داده ها به سرور مقصد
  11. دستور AT+CIPCLOSE: قطع ارتباط TCP/IP
  12. دستور AT+CGDCONT: تنظیمات APN
  13. دستور AT+CGACT: فعالسازی/غیرفعالسازی PDP
  14. دستور AT+CIPMUX: تنظیمات چند اتصال همزمان
  15. دستور AT+CIPSERVER: تنظیم سرور
  16. دستور AT+CIFSR: دریافت آدرس IP ماژول
  17. دستور AT+HTTPINIT: شروع ارتباط با HTTP
  18. دستور AT+HTTPPARA: تنظیمات HTTP
  19. دستور AT+HTTPACTION: درخواست ارسال به سرور
  20. دستور AT+HTTPREAD: دریافت پاسخ از سرور
  21. دستور AT+HTTPSTATUS: دریافت وضعیت اتصال با سرور
  22. دستور AT+HTTPSSL: فعالسازی/غیرفعالسازی SSL
  23. دستور AT+HTTPCIPSTART: شروع ارتباط TCP/IP برای HTTP
  24. دستور AT+HTTPCIPSEND: ارسال داده های HTTP
  25. دستور AT+HTTPCLOSE: قطع ارتباط HTTP

 


وسایل مورد نیاز


ماژول SIM800L

ماژول مبدل سریال به USB

باتری

ماژول مبدل LM2596(در صورت تغذیه ماژول از برق شهری)

 


جمع بندی


در این آموزش که آخرین قسمت از سلسله آموزش های راه اندازی و کار با ماژول SIM800L است، به بررسی امکانات جانبی این ماژول پرداختیم. ماژول SIM800L که دقیقا مشابه یک تلفن همراه عمل می نماید، قادر است تا با ارسال و دریافت پیامک، برقراری تماس دو طرفه صوتی و ایجاد ارتباط اینترنتی، به ارسال و دریافت داده بپردازد. این ماژول دارای دستورات جانبی برای کارهای مختلف نظیر بررسی میزان کیفیت سیگنال، بررسی وضعیت شارژ و…. بوده که در این آموزش به بحث و بررسی در رابطه با آن، پرداختیم. به طور کلی، ماژول SIM800L یکی از ماژول های مخابراتی سیم کارتی جهت ارتباط و کنترل از راه دور بوده که اندازه، وجود برد آماده جهت اندازی و البته قیمت آن، این ماژول را به یکی از ابزارهای کلیدی در پروژه های کنترل از راه دور و IOT تبدیل نموده است.

 


دیگر آموزش‌های راه اندازی Sim800L


راه اندازی و کار با ماژول سیم کارت SIM800L بخش اول: معرفی

راه اندازی و کار با ماژول سیم کارت SIM800L بخش دوم: تغذیه

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

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

راه اندازی و کار با ماژول SIM800L بخش پنجم: اینترنت GPRS سیم کارت

راه اندازی و کار با ماژول SIM800L بخش ششم: آپلود و دانلود فایل در اینترنت

راه اندازی و کار با ماژول SIM800L بخش هفتم: ارتباط TCP با سرور

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

راه اندازی و کار با ماژول SIM800L، بخش نهم: کنترل و کاهش توان مصرفی

راه اندازی و کار با ماژول SIM800L: بخش دهم فعال سازی DTMF

 

چنانچه در مراحل راه اندازی و انجام این آموزش با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در دستورات AT و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۳۸ دیدگاه

  • سلام مهندس وقت تون بخیر
    دیگه اموزش و پروژه نمیزارید ؟؟
    من چند هفته است منتظر هستم که پروژه بزارید

    • سلام
      از لطفی که دارید بی نهایت ممنونم
      در ابتدای سایت در قیمت انتشار روز، پروژه های جدید انتشار یافته اند. در چند روز اینده هم پروژه های بیشتری منتشر خواهد شد.
      سپاس از همراهی و لطف شما

  • سلام مهندس صابری
    بنده تمام اتصالات رو درست انجام دادم و سیم ۸۰۰ به شبکه متصل میشه
    اما مشکلم اینه که دستورات AT رو نمیتونم اجرا کنم.
    هر چی که دستورات رو توی سریال مانیتور وارد میکنم،فیدبکی نمیگیرم
    و هر کدی هم که مینویسم توی IDE نمیتونه دستورات AT رو فیدبک بگیره
    ممنون میشم اگه کمک کنید
    تشکر

    • سلام
      اتصالات را چک کنید که RX مبدل به TX ماژول و TX مبدل به RX ماژول متصل شده باشد. همچنین پایه GND مبدل به پایه GND ماژول متصل شده باشد. لطفا این موارد را تست کنید و نتیجه را در کامنت بعدی اعلام نمایید.

      • سلام وقت بخیر
        بنده مشکلم این بود کاراکترهای ناخوانا به عنوان پاسخ داده میشد که با این کمک شما و اتصال GND ماژول به SIM800L مشکل حل شد
        ممنونم از لطفتون
        تشکر

    • سلام
      این ماژول یک پایه RESET دارد که با اتصال آن به زمین و سپس جدا کردن آن از زمین مدار، ماژول ریست خواهد شد. شما می توانید کلید را بین این پایه و زمین قرار دهید.

  • سلام
    دستور
    ;gsmSerial.print(“AT+CWHITELIST=3,2,+989xxxxxxxxx\r\n”)
    رو در بخش setup که میزنم میگه اشغال است. چن بار شمارمو چک کردم که درست باشه .( البته اینجا xxx زدم)

  • سلتمام اتصالات رو درست انجام دادم و سیم ۸۰۰ به شبکه متصل میشه
    اما مشکلم اینه که دستورات AT رو نمیتونم اجرا کنم.
    هر چی که دستورات رو توی سریال مانیتور وارد میکنم،فیدبکی نمیگیرم
    و هر کدی هم که مینویسم توی IDE نمیتونه دستورات AT رو فیدبک بگیره
    ممنون میشم اگه کمک کنید
    تشکر

    • سلام
      در این حالت مشکل در ارتباط سریال وجود دارد، لطفا بفرمایید ارتباط بین برد و مبدل سریال به چه شکل انجام شده است؟

      • سلام خسته نباشید.ماژولsim808رو به پورت سریال آردینو مگا ۲۵۶۰ ک پین های ۱۰،۱۱ هس وصله
        ماژول سیمکارت مشکلی از لحاظ انتن دهی نداره چون وقتی بهش زنگ میزنم بوق میخوره..و هر سه ثانیه چشمک میزنه
        منبع تغذیه ماژول هم ۹ولت ۲.۵ آمپر یا ۵ولت ۳آمپر وصل کردم
        حتی پایه های R,T جا بجا کردم بازم نشد
        پایه های G هم مشترکه

        • سلام
          سریال نرم افزاری روی برخی از پایه های آردوینو مگا قابل اجرا نیست. شما از سریال سخت افزاری، مثلا سریال شماره ۳ برد آردوینو مگا استفاده کنید. بدین ترتیب دستورات به صورت Serial3.print خواهند شد.

  • سلام وقت بخیر
    وقتی کامند AT+CLBS=1,1 را ارسال می کنم پیغام زیر می آید و مختصاتی نشان داده نمی شود:
    +CLBS: 1
    ممکن هست کمک کنید.

    باتشکر

  • سلام مهندس
    برای اینکه برنانه ای بنویسیم که بعد از تماس با ماژول، به اون شماره که تماس گرفته یک پیام ارسال کنیم، از چه کد دستوری باید استفاده کنیوچجوری باید به شماره تماس دریافتی دسترسی پیدا کنیم!؟

    • سلام
      برای تشخیص شماره تماس گیرنده، دستور زیر را باید استفاده کنید.
      AT+CLIP=1
      در زمان تماس شماره تماس گیرنده ظاهر شده و باید آن را با برنامه نویسی استخراج کنید.

  • سلام.ماژول ۸ بار چشمک میزنه و ۳ ثانیه خاموشه. اول به شبکه وصل میشد اما الن میگه سیگنال کیفیت نداره و at+csq =0,0 میزنه انتن دهی موقعیت هم خوبه و با یه سیم کارت دیگه هم امتحان کردم بازم همین وضعیته
    راهنمایی بفرمایید

  • لام مهندس وقت بخیر
    من برای خواندن شارژ سیم کارت همراه اول به مشکل بر خوردم
    وقتی کد AT+CUSD=1,”*۱۴۰*۱۱#”,۱۵ رو میزنم جوابی که بمن میده اینه
    +CUSD: 2, “” ,۷۲ ، بنظرتوم مشکل کجاس
    با ایرانسل مشکلی ندارم

    • سلام و متشکرم
      این کد دستوری را لطفا امتحان کننید و ببینید آیا نتیجه می دهد؟
      #۱۲۱*۱۰*

  • با سلام بنده دقیقا X مبدل به TX ماژول و TX مبدل به RX ماژول متصل کردم وزمین ها رم یکی کردم ولی پاسخی ماژول بهم نمیده ماژول به شبکه وصل است ایا مقاومت نیاز است ؟