میکرو لایب

راه اندازی بخش پیامک SIM800L

ماژول SIM800L:

برد SIM800L یک ماژول تلفن همراه کوچک است که امکان انتقال دیتا از طریق GPRS ، ارسال و دریافت پیام کوتاه و برقراری و دریافت تماس صوتی را فراهم می آورد. هزینه کم و راه اندازی آسان ماژول با پشتیبانی از دستورات SIMCOM ، این امکان را فراهم می کند تا بتوانید در مواقعی که نیاز به ارتباطات از راه دور می باشند از این ماژول بهره گرفته و پروژه های خود را انجام دهید. ماژول SIM800L  از طریق پایه های RX , TX  (پورت سریال ) با میکروکنترلر ارتباط برقرار می کند لذا تمامی دستورات SETTING و دریافت  و  ارسال تماس و پیام از این پورت صورت خواهد گرفت.

ولتاژ تغذیه ماژول SIM800L:

ولتاژ تغذیه این ماژول از ۳٫۸ تا ۴٫۲ ولت می باشد باید توجه داشته باشید که اعمال ولتاژ بیشتر از ۴٫۲ ولت در طولانی مدت به ماژول آسیب خواهد رسانید لذا ولتاژ تغذیه ماژول را بر روی ۴٫۲ ولت ثابت کنید ، همچنین توجه داشته باشید این ماژول در مواقع ارسال اس ام اس و برقراری و در یافت تماس های صوتی نیاز به آمپراز لحظه ای بالا می باشد لذا منبع تغذیه شما باید بتواند آمپر لازم برای راه اندازی و پایدار بودن ماژل در طولانی مدت را فراهم کند ، یکی از بهترین رگولاتور های جریان بالا رگولاتور LM2596 میباشد که شما می توانید ماژول آماده آن را را تهیه کرده و ولتاژ خروجی آن را بر روی ۴٫۲ ولت تنظیم نمایید ماژول LM2596 جریادهی مناسبی تا سه آمپر دارد و برای ماژول SIM800L مناسب خواهد بود عکس ماژول LM2596 را در زیر مشاهده می کنید.

نکته:

برای پایداری بیشتر ماژول می توانید در خروجی این ماژول از دو عدد خازن ظرفیت بالا مثلا ۴۷۰۰ میکرو فاراد ۲۵ ولت استفاده کنید.

در صورتی که تغذیه ماژول SIM800L با تغذیه میکرو کنترلر جدا باشد سعی کنید ولتاژ تغذیه میکروکنترلر را نیز برابر با تغذیه ماژول قرار دهید در غیر این صورت ولتاژ پایه TX میکرو کنترلر که به پایه RX ماژول وصل می شود را با تقسیم مقاومتی کاهش داده و اجازه ندهید در حین تبادل اطلاعات ولتاژ بیشتر از ۴٫۲ ولت شود.

آنچه که برای ارسال و دریافت پیام توسط میکرو کنترلر نیاز است:

برای اینکه بتوانید با استفاده از میکروکنترلر توسط ماژول پیام ارسال و دریافت کنید باید قبل از اینکار ماژول را پیکره بندی کنید

انچه که قبل از پیکره بندی ماژول باید بدانید:

ماژول پیام را می تواند در دو حالت دریافت کند و به شما نمایش دهد

حالت اول حالت کد شده پیام هست که به محض دریافت پیام باید آن را باز کنید و سپس کد گشایی میکنید تا پیام خالص را از آن استخراج کنید در این حالت که به مد PDU معروف است در هنگام ارسال پیام باید مجددا پیام را کد گذاری کرده و سپس اقدام به ارسال آن کنید اگر که قصد فرستادن پیام یا کاراکتر های فارسی را ندارید از این حالت استفاده نکنید در غیر این صورت برای ارسال پیام های فارسی و یا متشکل از حروف فارسی و انگلیسی حتما باید از این حالت یعنی مد PDU استفاده کنید

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

نکته ای که در ارسال و دریافت پیام می تواند برای شما مفید باشد:

اگر پیام فارسی ارسال می کنید حتما باید از حالت یک یعنی مد PDU استفاده کنید و بعد از ارسال کامل پیام می توانید حالت دوم TEXT MODE را فعال کنید تا در صورتی که پیامی دریافت شود بدون کد نویسی اضافی و دیکد کردن پیام سریع بتوانید به محتوای پیام دسترسی داشته باشید و وقت خود را با نوشتن تابع های دیکد پیام از دست ندهید.

نکته:

اگر قصد دارید که بدون میکرو کنترلر با ماژول ارتباط برقرار کنید نیاز به تهیه ماژول TTL به RS232 دارید:

این ماژول را تهیه کرده و پایه TX ماژول RS232 به پایه TX ماژول SIM800L و پایه RX ماژول RS232 را به پایه RX ماژول SIM800L متصل کنید توجه داشته باشید که برای جلوگیری از آسیب رسیدن به پایه RX ماژول حتما از تقسیم مقاومتی برای این پایه بهره بگیرید تصویر زیر بیانگر چگونگی انجام این موضوع است:

ترمینال ادیتور:

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

دستورات مهم بخش پیامک SIM800

 

دستور AT:

این دستور تست آماده به کار بودن ماژول و همینطور تشخیص سرعت یا باود ریت میزبان می باشد

دستور ATE0:

وقتی دستوری تایپ می کنید به محض تایپ ، همان کاراکتر در نرم افزار سریال نمایش داده می شود این بدان معنیست که ماژول کاراکتر را به محض تایپ ، دریافت کرده و یک نسخه از حرف یا کاراکتر دریافت شده را به میزبان برمی گرداند ، برای همین است که ما دستور تایپ شده خودمان را مشاهده می کنیم در صورتی که با میکروکنترلر قصد راه اندازی ماژول را داشته باشید باید این قابلیت را غیر فعال کنید ، دستور ATE0 این قابلیت را غیر فعال می کند بعد از غیر فعال شدن این حالت ، (حالت اکو)  مِن بعد هر چه در پورت سریال تایپ کنید برگشت داده نشده و دستورات تایپ شده را مشاهده نخواهید کرد و تنها جواب است که فرستاده خواهد شد.

دستور ATE1:

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

دستور AT+CNMI:

AT+CNMI=0,0,0,0,0:

این دستور حالت دریافت پیام را غیر فعال می کند بدین صورت که بعد از این دستور هیچ پیامی توسط سیم کارت دریافت نخواهد شد.

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

AT+CNMI=2,1,0,0,0:

این دستور بر خلاف دستور قبلی حالت دریافت پیام را فعال می کند.

دریافت پیام و ارسال محل ذخیره پیام:

AT+CNMI=2,2,0,0,0:

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

دریافت و ذخیره پیام:

AT+CNMI=0,1,0,0,0:

در این دستور پیام دریافت شده و در حافظه سیم کارت ذخیره می شود و در واقع هیچ پیامی از دست نخواهد رفت مگر اینکه حافظه سیم کارت پر شده باشد در این روش در صورت دریافت پیام هیچ گونه پیام اطلاع رسانی از طرف ماژول به میزبان یا میکروکنترلر  ارسال نخواهد شد و شما باید مرتبا با فاصله زمانی معین توسط دستور AT+CMGL پیام های دریافتی را چک کنید این روش بهترین روش برای جلوگیری از دست رفتن اطلاعات است و توصیه می شود که اگر تک تک پیام های دریافتی برایتان مهم هست حتما از این روش برای دریافت پیام استفاده کنید.

دریافت تاییده پیام:

AT+CNMI=2,1,0,1,0:

اندیس چهارم در کد بالا حالت تایید دریافت پیام را مشخص می کند اگر پیامی را ارسال کنید به محض دریافت از طرف گیرنده یک کد تایید دریافت ، به فرستنده برگشت داده می شود:

خط هفدهم و هجدهم دریافت موفقیت آمیز پیام توسط گیرنده را نشان می دهد.

دستور AT+CUSD=0:

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

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

دستور AT+CUSD=1:

اگر حالت کدهای دستوری سیم کارت را فعال کنید به عنوان مثال (برای سیم کارت ایرانسل) می توانید با شماره گیری *۱۴۱*۱# مقدار شارژ یا اعتبار سیم کارت را بخوانید:

دستور AT+CCID:

این دستور شماره سریال سیم کارت را برمی گرداند با استفاده از این دستور می توانیم چک کنیم که سیم کارت به ماژول متصل شده یا خیر اگر سیم کارت به ماژول متصل شود شماره سریال را بر میگرداند و اگر متصل نباشد ERROR بر می گرداند

 :AT+CREG دستور

این دستور وضعیت اتصال به شبکه سیم کارت را نشان می دهد اگر جواب برابر با CREG: 0,1 و یا CREG: 0,5 باشد سیم کارت به شبکه وصل شده و آماده است در غیر این صورت اگر سیم کارت به شبکه متصل نشود حتما مطمئن شوید که پین کد سیم کارت غیر فعال باشد در ادامه آموزش می توانید نحوه ی غیر فعال کردن پین کد را مشاهده کنید.

اما جواب هایی که برای at+creg? ممکن است برگشت داده شود در زیر مشاهده می کنید:

۱:سیم کارت به شبکه متصل نیست و ماژول جستجویی برای پیدا کردن شبکه انجام نمی دهد

۲:سیم کارت به شبکه داخلی وصل شده است

۳:سیم کارت به شبکه متصل نبوده و در حال جستجوی اپراتورهای شبکه است

۴:هیچ شبکه ای یافت نشد

۵:سیم کارت به شبکه متصل شده و رومینگ فعال است

 :AT+CREG=?دستور

با ین دستور مینیمم و ماکزیمم عددی که برای CREG قابل قبول است را بدست می آوریم

بنابراین ما می توانیم CREG را از مقدار صفر تا دو مقدار دهی کنیم

اگر CREG با مقدار ۰ پیکره بندی شود URC کد (unsolicited result code) غیر فعال می شود

با غیر فعال شدن URC کد که در حالت عادی هم غیر فعال است در صورت قطع شبکه مقدار CREG برگردانده نخواهد شد

اگر CREG با مقدار ۱ پیکره بندی شود URC کد فعال شده و در صورت تغییرات شبکه مقدار CREG برگردانده می شود:

با فعال کردن URC اگر تغییراتی در شبکه رخ دهد به عنوان مثال اگر سیم کارت از شبکه قطع شده و در حال جستجوی شبکه باشد تغییر در CREG ایجاد شده و مقدار CREG برگردانده می شود

خط ششم کد ، مقدار ۲ برای CREG  را نشان می دهد

مقدار ۲ در بالا گفته شد که سیم کارت به شبکه متصل نبوده ولی در حال جستجو و تلاش برای برقراری ارتباط با شبکه است

اگر CREG با عدد ۲ مقدار دهی شود علاوه بر وضعیت وصل به شبکه ، کد منطقه و Cell ID را برمیگرداند که می توان با انجام محاسباتی ، مکان تقریبی سیم کارت را بدون وصل شدن به اینترنت بدست آورد.

دستور AT+CPIN:

این دستور فعال یا غیر فعال بودن پین کد سیم کارت را بر می گرداند

اگر پین کد سیم کارت فعال باشد سیم کارت به شبکه متصل نخواهد شد و باید پین کد سیم کارت را غیر فعال کنید

راه اول و آسان غیر فعال کردن پین کد استفاده از یک موبایل هست که پین کد سیم کارت را قبل از قرار دادن در ماژول غیر فعال می کنید راه دوم استفاده از کد های دستوری هست که در برنامه نویسی بعضی ا پروژه های حساس نیاز هست که ابتدا فعال یا غیر فعال بودن پین کد چک شود و اگر فعال بود باید از طریق کد غیر فعال گردد:

در خط هشتم برای اندیس دوم مقدار صفر (AT+CLCK=”SC”,0,”1234″) پین کد را غیر فعال و مقدار یک (AT+CLCK=”SC”,1,”1234″) پین کد را فعال می کند بنابراین در کد بالا از مقدار صفر برای غیر فعال کردن پین کد استفاده شده است.

دستور AT+CSQ:

این دستور قدرت انتن یا کیفیت سیگنال شبکه را نشان می دهد

خط دوم قدرت انتن دهی را برابر با ۱۹ نشان می دهد

قدرت انتن باید عددی بین ۲ تا ۳۰ باشد هر چه این عدد به مقدار ۳۰ نزدیکتر باشد قدرت انتن دهی بیشتر خواهد بود

کیفیت انتن را در زیر مشاهده می کنید (اعداد منفی بر حسب dB):

دستور AT+CMGF:

اگر AT+CMGF را برابر با صفر قرار دهید مد PDU را فعال کردید و اگر AT+CMGF را برابر با یک قرار دهید حالت متنی فعال می گردد (درباره مد PDU و حالت متنی پیام در ابتدا توضیح مختصری داده شده است)

دستور AT+CLIP:

دستور AT+CLIP اگر با مقدار صفر پیکره بندی شود در هنگام تماس دریافتی ، شماره تلفن تماس گیرنده نشان داده نخواهد شد:

و اگر با مقدار یک پیکره بندی شود شماره تلفن تماس گیرنده قابل رویت خواهد بود:

دستور AT+CMGL:

اگر حالت دریافت پیام بر روی حالت متنی باشد(AT+CMGF=1):

این دستور پیام های دریافتی خوانده شده و خوانده نشده و فرستاده شده و پیام های ارسال شده ناموفق و یا تمامی این پیام ها را لیست می کند

اگر حالت دریافت پیام بر روی حالت PDU باشد(AT+CMGF=0):

در این حالت به جای عبارات “REC UNREAD”,”REC READ”,”STO UNSENT”,”STO SENT”,”ALL” اندیس آن فرستاده می شود برای REC UNREAD اندیس ۰ و برای REC READ  اندیس ۱ و برای ALL اندیس ۴ فرستاده می شود برای مثال اگر بخواهید پیام های خوانده شده را در حالت PDU بخوانید باید کد زیر رو بفرستید:

دستور AT+CMGR:

با استفاده از این دستور می توانید پیام های دریافتی را که در حافظه ذخیره شدند بخوانید:

AT+CMGDA:

با استفاده از این دستور می توانید پیام های خوانده شده ، خوانده نشده ، ارسال شده ، ارسال های ناموفق ،جعبه دریافت،و یا تمامی پیام ها را یکجا پاک کنید:

در کد زیر حالت متنی قبلا فعال شده است (AT+CMGF=1)

اگر بخواهیم تمامی پیام های خوانده شده را پاک کنیم به صورت زیر عمل می کنیم:

AT+CSCA:

این دستور شماره مرکز پیام را برمی گرداند:

AT+CSPN:

این دستور نام اپراتور سرویس دهنده را بر می گرداند:

AT+CFUN:

این دستور بخش رادیویی ماژول را قطع و وصل می کند که در نتیجه سیم کارت از شبکه خارج می شود برای وصل مجدد باید مجددا مقدار CFUN را به حالت قبلی برگردانید

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

دستور AT&W:

گاهی مواقع با ریست شدن ماژول یا قطع و وصل شدن شبکه تنظیمات ریست شده و نیاز به تنظیم مجدد دارند که این در هر لحظه امکان پذیر نیست برای رفع این مشکل تنظیماتی که مهم هستند باید ذخیره شوند به طور مثال اگر می خواهید که مازول همیشه در حالت pdu کار کند حتی با ریستارت شدن مقدار خود را از دست ندهد بعد از تنظیم حالت PDU با استفاده از دستور AT&W آن را ذخیره کنید:

دستور AT&F:

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

برای آشنایی بیشتر با دستورات SIMcom  سری SIM800 می توانید به جعبه دانلود مراجعه کرده و فایل حاوی pdf (به زبان انگلیسی) را دانلود کنید.

نحوه ی ارسال پیام در ماژول SIM800L:

۱- قبل از هر کاری سیم کارت را به ماژل وصل کنید

۲- اتصالات RX , TX ماژول را به پایه های TX , RXمیکرو کنترلر مورد نظر وصل کنید

۳- ماژول را در حالت مد pdu قرار دهید

۴- به این صفحه مراجعه کرده و جمله ای که قصد ارسال آن را دارید در کادر بنویسید سپس شماره مرکز پیام و شماره دریافت کننده را وارد کنید

نکته:شماره مرکز پیام برای اپراتور ایرانسل در تاریخ کنونی شماره ۹۸۹۳۵۰۰۰۱۴۰۰+ می باشد که باید این شماره را در قسمت شماره مرکز پیام وارد کنید ، توجه داشته باشید که شماره را با + وارد کنید

۵- سایز کلمه را بر روی ۱۶ قرار داده  و بر روی دکمه تبدیل کلیک کنید و کد دریافتی را کپی کرده و در پروژه خود استفاده کنید

نمونه کد ارسالی به زبان C :

خط اول:

با ارسال دستور AT اقدام به شناساندن باود ریت میکروکنترلر به ماژول سیم کارت کردیم

خط سوم:

حالت اکو غیر فعال شده است

خط پنجم:

حالت کاری ماژول بر روی مد PDU تنظیم شده است

خط هفتم:

طول پیام با دستور AT+CMGS فرستاده شده است

خط هشتم:

حالت کد شده پیام فرستاده شده است

توجه داشته باشید که بعد از ارسال هر دستور برای ثبت دستور باید کد هگز ۰x0D فرستاده شود r\ معادل همان کد هگز ۰x0D می باشد و همینطور برای ثبت و ارسال پیام هم بعد از ارسال متن کد شده باید کد ۰x1A فرستاده شود در کد بالا n\ همان معادل کد ۰x1A می باشد.

تهیه و تنظیم: تیم mculibrary.ir

جعبه دانلود
  • دستورات AT_COMMAND برای سری SIM800
  • زبان: انگلیسی
  • حجم: 3.14 مگا بایت

دیدگاه‌ها (23)

*
*

    بهزاد مهمان آوریل 28, 2021 پاسخ

    سلام و تشکر از سایت خوب و مطلب عالی که تهیه کردین .
    میخواستم بدونم برای تبدیل فرمت PDU به متن هم سایتی سراغ دارین؟. توی ترمینال متنی که با AT+CMGR میخونم غیر قابل خوندنه . ممنون میشم اگر سراغ دارید معرفی کنید

      mast3r مدیر کل آوریل 29, 2021 پاسخ

      سلام و عرض ادب و تشکر از توجه شما
      می توانید به اینجا مراجعه کنید

    امیررضا مهمان جولای 2, 2021 پاسخ

    سلام خیلی ممنون
    خیلی مختصر و مفید و جامع کمک کردین.
    ممنون از شما

      Massive مدیر کل جولای 2, 2021 پاسخ

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

    مهدی قدیری مهمان آگوست 15, 2021 پاسخ

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

      mast3r مدیر کل آگوست 16, 2021 پاسخ

      خواهش می کنم دوست عزیز
      وظیفه هست
      موفق و موید باشید...

    عباس مهمان مارس 4, 2022 پاسخ

    سلام مهندس مرسی بابت راهنمایی کامل ومفیدتون من ماژول SIM800L تهیه کردم تمام دستورات AT رو جواب میده جی پی ار اس مشکلی نداره تست کردم تماس میگیره تماس هم پاسخ میده پیام میگیره اما به هیچ عنوان تو هیچ حالتی PDU,TXTپیام ارسال نمیکنه سیم کارت مختلف تست کردم شارژ هم داره انتن دهی هم خوبه فرمور رو هم آپدیت کردم با آردوینو وESP32 و ترمینال هم تست کردم اما مشکل پا برجاست واقعا کلافم کرده واقعا ممنون میشم کمکم کنید.

      mast3r مدیر کل مارس 5, 2022 پاسخ

      سلام
      دوست عزیز مشکلی که میفرمایید به احتمال زیاد مربوط به تغذیه میکرو میباشد
      اگر تغذیه شما نتواند جریان کافی رو به ماژول برساند چه اتفاقی می افتد؟
      در هنگام ارسال پیام نیاز به جریان لحظه ای تا دو امپر می باشد سعی کنید حتما از اداپتور ۲ امپر و ماژول lm2596 برای تنظیم ولتاژ روی ۴ و اگر نشد بر روی ۴٫۲ اقدام کنید
      حتما دو عدد خازن ۲۲۰۰ میکروفاراد یا ۴۷۰۰ میکروفاراد ۲۵ ولت بین خطوط تغذیه و نزدیک ماژول قرار دهید
      اگر از بردبرد برای تست استفاده می کنید حتما و حتما از انتن غیر بردی استفاده کنید و همینطور طول سیمهای ارتباطی را تا جایی که می توانید کوتاه کنید در بسیاری از موارد با رعایت این نکته ها مشکل مربوطه برطرف می شود...
      شده انتن دهی ماژول در وضعیت مطلوبی قرار میگیرد اما در لحظه ارسال پیام که بیشترین جریان کشی را دارد در هنگام ارسال جریان کافی به ماژول نمی رسد و ماژول ریست می شود این در صورتی هست که اصلا برای مدتی مشخص نمی شود که ماژول ریست شده است...
      شما برای تست می توانید از ترمینال سریال کامپیوتر یا لپتاب هم عملکرد ماژول رو بررسی کنید بدین صورت که پایه tx ماژول به کامپوتر وصل شده و پایه rx ماژول هم به اردوینو وصل می شود هر دستوری که به اردووینو به ماژول ارسال می کند جوابیش رو می توانید در پورت سریال ببینید مثلا اگر شما توسط اردوینو دستور at را ارسال کنید در پورت سریال باید ok دریافت کنید...خوبی این روش این است که وقتی شما در هر مد چه pdu و یا چه مد text پیام ارسال می کنید باید حتما جوابی غیر از error در پورت سریال دریافت کنید
      شما باید بدین صورت عمل کنید
      تغذیه ماژول را وصل کنید و صبر کنید ماژول به شبکه وصل شود (حدودا ۳۰ ثانیه ) بعد از وصل حالت چشمک زن از یک ثانیه به دو ثانیه تغیر حالت می دهد
      بعد از وصل به شبکه
      ابتدا دو بار دستور at را به ماژول بفرستید
      با دستور ate0 حالت اکو ماژول را حتما غیر فعال کنید
      با دستور at&f تنظیمات ماژول را به روز اول برگردانید
      با دستور AT+CNMI=2,1,0,0,0 حالت ارسال و دریافت پیام را فعال کنید
      با دستور at+cmgf=0 مد پیام را بر روی pdu قرار دهید
      بین ارسال هر دستور تاخیر صد میلی ثانیه ایجاد کنید
      به سایت ذکر شده مراجعه و شماره تلفن خود را با +۹۸ وارد کنید
      پیام خود را بنویسید و کد دریافتی را ارسال کنید
      بعد از ارسال کد اگر ارسال موفقیت امیز باشد پیامی غیر از error دریافت خواهید کرد
      اگر ارسال پیام به مشکل بخورد بلافاصله error دریافت خواهید کرد
      در غیر این صورت به احتمال زیاد مشکل مربوط به تغذیه بوده و باید طبق روشی که در بالا گفته شد اقدام کنید...
      اگر نتوانستید مشکل را رفع کنید
      پیام دهید تا قدم به قدم با کد راهنمایی کنیم
      البته باید حتما سریال ترمینال کامپیوتر برای دیباگ داشته باشید...
      موفق و موید باشید

    محمد روحی مهمان مارس 12, 2022 پاسخ

    با سلام و تشکر از مطالب مفیدتان. من در یک برنامه متغیری دارم که مقدار آن بسته به شرایط سنسورها تغییر میکند و لازم است در زمانهای مختلف مقدار این متغیر از طریق پیامک(ماژول sim800l) منتقل شود. کامندی که بتواند مقدار متغیر را دریافت و پیامک کند پیدا نکردم . لطفا در صورت امکان راهنمایی بفرمایید.

      mast3r مدیر کل مارس 13, 2022 پاسخ

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

    محمد مهمان ژوئن 14, 2022 پاسخ

    بسیار عالی و مفید

    امین مهمان آگوست 23, 2022 پاسخ

    سلام . کسی میدونه چرا ماژول به دستورات AT هیچ پاسخی نمیده

      mast3r مدیر کل آگوست 23, 2022 پاسخ

      سلام
      ماژول رو همیشه قبل از متصل کردن به میکروکنترلر با pc تست کنید
      اگر از سالم بودن ماژول مطمئن هستید سیمهای RX و TX رو چک کنید که جابجا نزده باشید
      طول سیم های ارتباطی را هم زیر ده سانت نگه دارید...

    امین مهمان آگوست 24, 2022 پاسخ

    وقتی به ماژول پیام میدم ماٰژول at+cmti و برمیگردونه اما وقتی برای ماژول دستورات at و میفرستم از ماژول واکنشی نمیبینم . اتصالات و هم چک کردم .مثلا وقتی at و به sim800 میفرستم okو دریافت نمیکنم .با خودم گفتم شاید پایه دریافت ماژولم سوخته یه ماژول دیگه خریدم و باز امتحان کردم ولی بازم همون مشکلو دارم

      mast3r مدیر کل آگوست 24, 2022 پاسخ

      دوست عزیز
      ابتدا دستور AT&F رو برای برگرداندن ماژول به تنظیمات کارخانه از طریق سریال مانیتور بفرستید
      در جواب باید OK دریافت کنید
      سپس دستور AT را از طریق سریال مانیتور بفرستید
      در جواب باید OK دریافت کنید
      سپس دستور ?AT+CREG را از طریق سریال مانیتور به ماژول بفرستید
      در جواب باید یه چیزی همانند SREG: 0,1+ دریافت کنید
      اگر هیچ یک از جواب سه دستور فرستاده شده بالا را دریافت نکردید در این صورت سیمی که به پایه RX ماژول وصل شده است یا مشکل ارتباطی از طرف میزبان دارد و یا دچار قطعی است
      شما با پی سی به ماژول متصل شده اید یا میکروکنترلر؟

        امین مهمان آگوست 25, 2022 پاسخ

        ممنون از راهنماییتون. من برای این که بتونم کدی که به میکرو میدم و بتونم راحت تر تست کنم اول اون کد و با pc امتحان میکنم و میکرو در این مرحله تو مدار نیست و فقط pc بهش وصله.در همین مرحله هم هست که به دستورات at جواب نمیده.بعد که دیدم با pc اکی هست با میکرو کدمو تست میکنم.باز هم ممنون.

          امین مهمان آگوست 25, 2022 پاسخ

          چیز هایی رو که گفتین انجام دادم اتصالات و هم باز چک کردم ولی بازم همون مشکل و داره

          mast3r مدیر کل آگوست 25, 2022 پاسخ

          خواهش می کنم…
          بفرمایید مدل ماژول gsm شما چیه؟( مثلا sim900)
          ماژول سریال به ttl که استفاده می کنید از چه نوعی است؟
          ولتاژی که به ماژول gsm اعمال می کنید چند هست؟
          آیا از تقسیم مقاومتی برای پایه ای که گفته شده استفاده می کنید؟

    امین مهمان سپتامبر 10, 2022 پاسخ

    سلام و تشکر از سایت خوبتون .شما میدونید که برای فرستادن پیام با sim800l باید در پایان متن ارسالی کاراکتر ctrl z هم فرستاده بشه . اما در کدویژن با چه کدی این کاراکتر
    ctrl z و باید فرستاد

      امین مهمان سپتامبر 10, 2022 پاسخ

      البته من میخوام در مد text پیام ارسال کنم

      mast3r مدیر کل سپتامبر 12, 2022 پاسخ

      سلام
      در کدویژن در پایان متن برای ارسال پیام از

      \n
      

      استفاده کنید
      اگر دقت کنید در پایان متن ارسالی چه pdu چه متن ساده از n\ استفاده شده است

      puts("079189390500410011000C918921436587090008AA2A0633064406276063706480631002006270633062A061F\n")
      
    rezaei مهمان ژوئن 6, 2023 پاسخ

    سلام
    من در حالت cmgf=1 بعد از ارسال شماره ودریافت کارکتر < متن را نوشته و کنترل-z را هم اضافه میکنم ولی پییام ارسال نشده و ترمینال کماکان کارکتر < را برمیگرداند. بنظرم یکی از تنظیمات دیگه که نمیدونم تاثیر گذاشته. میتونید راهنمایی کنید؟

      mast3r مدیر کل ژوئن 8, 2023 پاسخ

      سلام
      دوست عزیز بعضی از نرم افزار های سریال مستقیما از کلید های ترکیبی پشتیبانی نمی کنند و شما باید char send رو بزنید و کد هگز ۰x1A را برای ارسال پیام بفرستید

question