راه اندازی ماژول SIM800 بخش هشتم- کد های USSD و استعلام شارژ

استعلام شارژ سیم کارت SIM800 با کد دستوری USSD
نوشته شده توسط

سلام به همه مایکروالکامی ها. در مطلب قبلی راه اندازی SIM800 به نحوه تنظیم ساعت ماژول SIM800 پرداخته شد. در این قسمت به بررسی کد دستوری USSD و نحوه استفاده از آنها و شماره گیری آن با ماژول SIM800 بررسی می‌شود. نهایتا با استفاده از US‌SD میزان شارژ ریالی سیم کارت ماژول و استعلام شارژ آن را بررسی خواهیم کرد. پس با من تا انتهای مطلب همراه باشید. همچنین شما میتونید سایر مطلب من رو از این قسمت مطالعه کنید.


کد USSD چیست

USSD در حقیقت مخفف Unstructured Supplementary Service Data می‌باشد. USSD به معنی ارسال پیام از طریق کد دستوری می‌باشد. این کد ها برای حفظ امنیت از استاندارد های GSM/UMTS استفاده می‌کند.

از این کد های در خیلی از کاربرد ها نظیر شارژ سیم کارت، استعلام شارژ و… استفاده میشه. مدت زمان برای دریافت پاسخ در روش USSD خیلی کمتر از پیامک و تماس صوتی هست. در استفاده از پیامک یا SMS نوع ارتباط ذخیره و فرستادن مجدد هست. یعنی پیامک در سرور ذخیره میشه و برای مشترک مورد نظر ارسال خواهد شد.

در کد های USSD ارتباط نشست گرا هست. یعنی دیتا یا درخواست ارسالی به سرور بدون ذخیره، پاسخ داده خواهد شد. پس برای همین زمان پاسخ گویی کمتر از پیامک و تماس هستش.

یک تفاوت اصلی بین USSD و SMS وجود دارد. US‌SD جهت ارتباط بین موبایل و شبکه یا برعکس هست. به این معنی که دو تا موبایل نمیتونند از این طریق تبادل دیتا کنند. اما با استفاده از SMS میشه اینکارو کرد و برای ارتباط بین موبایل ها هست.

یکی دیگر از تفاوت های USSD با SMS این است که در USSD تعداد کاراکتر های ارسالی تا 182 بوده ولی در SMS تا 70 کاراکتر می‌باشد.


قطعات مورد نیاز


فعال کردن USSD در ماژول SIM800

در اولین مرحله استفاده از کد های USSD نیاز هست که آن را در ماژول فعال کنیم. با استفاده از دستور زیر اون رو فعال میکنیم.

AT+CUSD=1

OK

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

شماره گیری کد USSD در ماژول SIM800

برای شماره گیری کد USSD مورد نظر طبق فرمت دستور زیر استفاده شود. بین دابل کوتیشن ها در دستور زیر، کد USSD مورد نظر را باید وارد کنیم.

AT+CUSD=1,”ZZZ”

در نهایت بعد از وارد کردن دستور بالا و زدن اینتر اگر کد درست باشه در پاسخ OK دریافت خواهد شد.

غیر فعال کردن USSD در ماژول SIM800

با استفاده از دستور زیر میتونید حالت شماره گیری USSD ماژول رو غیر فعال کنید.

AT+CUSD=0

OK

تغییر زبان سیم کارت ماژول SIM800

اگر زبان سیم کارتی که به ماژول SIM800 متصل شده فارسی باشه در پاسخ دریافتی بعد از شماره گیری USSD مربوط یسری عدد میبینیم. برای همین زبان سیم کارت رو تغییر میدیم و انگلیسی اش میکنیم. با این کار منو و توضیحات اون کد دستوری بصورت انگلیسی نمایش داده میشه و قابل فهم تر هست.

برای اینکار باید کد های USSD مخصوص اینکار برای اپراتور مورد نظر خود استفاده کنید.

  • کد دستوری منوی تغییر زبان ایرانسل: #3*4*555* و برای تغییر زبان به انگلیسی کد ” #2*3*4*555* ” را میتوان شماره گیری نمود.
  • کد دستوری تغییر زبان رایتل به انگلیسی: #3*1*7*720*
  • کد دستوری تغییر زبان همراه اول به انگلیسی: #2*198*

سیم کارت مورد تست همراه اول هست و نتیجه حاصل به شرح زیر می‌باشد.

AT+CUSD=1,"*198*2#"

OK

+CUSD: 0, "Your Language is modified to English.", 15

خب همینطور که مشاهده کردید زبان سیم کارت با موفقیت تغییر کرد.


بدست آوردن شارژ سیم کارت ماژول SIM800

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

کد دستوری برای درخواست میزان شارژ

  • ایرانسل: #2*1*555*
  • همراه اول: #11*140*
  • رایتل: #140*

استعلام میزان شارژ سیم کارت همراه اول در ماژول SIM800

با استفاده از شماره گیری USSD مربوط به سیم کارت طبق دستور زیر میتوان میزان شارژ سیم کارت مطلع شد.

AT+CUSD=1,"*140*11#"

OK

+CUSD: 0, "Your balance is 26697 Rial .
Discounted Voice&Data *121#"", 15

همینطور که مشاهده میکنید میزان شارژ سیم کارت من 26697 ریال می‌باشد.

در تصویر زیر خلاصه دستورات بالا را مشاهده میکنید.

استعلام شارژ سیم کارت SIM800 با کد دستوری USSD
استعلام شارژ سیم کارت SIM800 با کد دستوری USSD

نتیجه گیری

کد دستوری USSD برخلاف پیامک و تماس رایگان می‌باشد. برای شماره گیری این کد های دستوری باید #…* را شماره گیری نمایید. از نظر امنیت این کد ها دارای امنیت بالا و قابل قبولی می‌باشند. در حقیقت USSD روش ارتباط لحظه ای است و مانند SMS دارای تاخیر نمی‌باشد. در این مطلب به نحوه استفاده از کد های دستوری USSD، استعلام شارژ سیم کارت و تغییر زبان سیم کارت پرداخته شد.

امیدوارم از این آموزش کمال بهره را برده باشید. در صورتی که هرگونه نظر یا سوال داشتید درباره این آموزش لطفا اون رو در انتهای همین صفحه در قسمت دیدگاه ها قرار بدید. در کوتاه ترین زمان ممکن به اون ها پاسخ خواهم داد. اگر این مطلب براتون مفید بود، اون رو حتما به اشتراک بگذارید. همینطور میتونید این آموزش را پس از اجرای عملی توی اینستاگرام با هشتگ microelecom# به اشتراک بگذارید و پیج مایکروالکام (microelecom@) رو هم منشن کنید.

۶ دیدگاه برای “راه اندازی ماژول SIM800 بخش هشتم- کد های USSD و استعلام شارژ

  1. با سلام مجدد و خسته نباشید
    یه تابع do
    while تعریف شده و دوبل کوتیشن اول را جدا می کنم ولی دوبل کوتیشن دوم را حذف نمیکنه
    do{
    i5++;
    i6++;
    str[i6]=ms[i5];
    } while( (i5《max sms) || (str[i6]='”‘)
    با این دستور کلا دریافت پیام از ماژول دچار اختلال می شود

    1. از کد ها درست متوجه نشدم من و گنگ بودن!
      در چه کامپایلری برنامه نویسی می‌کنید؟

  2. با سلام
    برای ارسال حاصل دستور کنترل شارژ به یک سیم کارت دیگر باید عبارت
    Your balance is 26697 Rial .
    Discounted Voice&Data *121#
    را بدون ” ارسال نماییم چور این کار انجام دهیم با تشکر

    1. سلام،
      اینجور که برداشت کردم منظورت این هست که چجوری پاسخ دریافتی در کد USSD که مثلا عبارتی هستش که شما گفتی را برای یک کاربر بفرستیم.
      برای اینکار پاسخ دریافتی را توی یک رشته ذخیره کن، بعد از توابع رشته بیا دبل کوتیشن های اول و اخر را جدا کن و متن باقی مونده را به شماره ای که میخوای بفرست.
      نحوه ارسال پیامک هم در این مطلب کامل گفته شده:
      https://blog.microele.com/sim800l-gsm-module-tutorial-part-2-sms/

      سوالی بود حتما بپرس، خوشحال میشم کمکی کنم.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *