روشهای خطایابی و رفع مشکلات کار با ماژولهای GSM SIM800
ماژولهای SIMCOM یکی از پرکاربردترین ماژولهای GSM موجود در بازار هستند. متأسفانه بسیاری از کاربران در هنگام کار با این ماژولها دچار مشکل شده و نمیتوانند با ماژول ارتباط برقرار کنند.
باوجوداینکه این ماژولها بهگونهای طراحیشدهاند که با کمترین قطعات جانبی شروع به کار کنند، اما رعایت نکردن چند نکته ساده میتواند باعث شود راهاندازی ماژول با مشکل مواجه گردد.
در صورت رعایت کردن تمامی نکات ذکرشده در اسناد ارائهشده توسط شرکت سازنده، این ماژول میتواند به یکی از دقیقترین و بهترین ماژولهای GSM تبدیل شود.
در این مقاله سعی داریم تا انواع روشهای تست و خطایابی نرمافزاری و سختافزاری ماژول را آموزش دهیم. تقریباً بیشتر اطلاعات ارائهشده در این نوشتار در اسناد منتشرشده توسط شرکت سازنده موجود بوده و تنها چند نکته خاص که بهصورت تجربی بهدستآمده است به آن افزودهشده است. همیشه بهترین منبع برای راهاندازی و کار با هر نوع وسیلهای، اسناد منتشرشده توسط شرکت سازنده آن بوده و بهتر است قبل از هر کاری اسناد مربوط به ماژول را مطالعه کنید. لازم به ذکر است در این مطلب از ماژول SIM800C استفادهشده است.
تقریباً تمامی مشکلات به وجود آمده با این ماژولها، به سه دسته تقسیم میشوند:
الف) تأمین تغذیه ماژول
ب) نحوه ارتباط بین ماژول و پردازنده
ج) اتصال به شبکه
الف) تأمین تغذیه ماژول
درصورتیکه شما نتوانید ولتاژ و جریان موردنیاز ماژول را تأمین کنید، کارکرد ماژول با مشکل مواجه خواهد شد. بسیاری از کاربران در هنگام کار با دستگاههای الکترونیکی تنها به فکر تنظیم ولتاژ برای ماژول خود هستند و هیچگاه نسبت به تأمین جریان موردنیاز اقدامی نمیکنند. در مورد ماژولهای SIM شما علاوه بر تأمین ولتاژ دقیق نیاز به تأمین جریان موردنیاز ماژول را نیز خواهید داشت. ماژول در حالت عادی جهت روشن شدن نیاز به جریان پایینی دارد، ولی در هنگان اتصال به شبکه جریان موردنیاز ماژول تا 2.5 آمپر افزایش مییابد. درنتیجه اگر منبع تغذیه شما قادر به تأمین این جریان نباشد، ماژول کارکرد صحیحی نخواهد داشت.
در حالت اولیه نشانگر NET ماژول بهصورت مستمر چشمک میزند و بعد از یافتن شبکه، سرعت چشمک زدن ماژول تغییر میکند. همانگونه که ذکر شد، ماژولهای SIMCOM در هنگام اتصال به شبکه و یا ارسال SMS تا 2.5 آمپر بهصورت لحظهای جریان میکشند. درصورتیکه منبع تغذیه شما قادر به تأمین جریان نباشد، ماژول ریست شده و بهصورت مداوم چشمک میزند.
استفاده از منابع تغذیه جریان آزمایشگاهی به علت محدود کردن جریان، رگلاتورهای جریان پایین مثل 7805 و یا باتریهای ضعیف همگی باعث عدم اتصال ماژول به شبکه میشوند. چون ولتاژ کاری ماژول غیر استاندارد میباشد، جهت تأمین آن میبایست از رگلاتورهای پیشنهاد شده در دیتاشیت ماژول استفاده کنید طی تستهای انجامشده، بهترین راندمان کاری ماژول SIM800 در ولتاژی بین 4.1 الی 4.4 ولت میباشد. در تصویر زیر مدار پیشنهاد شده برای استفاده در قسمت تغذیه ماژول را مشاهده میکنید.
قطعه LM2596 یک کاهنده ولتاژ با قابلیت تعیین ولتاژ خروجی بوده که مهمترین مزیت آن به رگلاتورهای دیگر، قابلیت تأمین جریان تا 3 آمپر میباشد. البته لازم به ذکر است که شما فقط ملزم به استفاده از این قطعه نیستید، ولی باید به این نکته توجه داشته باشید که مبدل شما میبایست ولتاژی بین 4.1 الی 4.4 ولت را با قابلیت تأمین جریان 2.5 آمپر داشته باشد.
نزدیکترین مدار به این ماژول، کاهنده معروف LM2596 موجود در فروشگاه ECA میباشد.در بعضی مواقع به علت محدودیتهای موجود، نمیتوان جریان موردنیاز 2 آمپری ماژول را تأمین کرد، در اینگونه موارد با قرار دادن چند خازن ظرفیت بالا بهصورت موازی در مسیر ولتاژ ماژول، میتوان تا حد زیادی کمبود جریان در هنگام پیک جریان ماژول را تأمین کرد.
همچنین از طریق ارسال دستور AT+CBC نیز میتوان مقدار ولتاژ اعمالی به ماژول را مشاهده نمود.
مثال:
AT+CBC [Enter] +CBC: 0,100,4263 OK
قسمت سوم (عدد 4263 در این مثال) همان ولتاژ دوسر ماژول بر اساس میلی ولت میباشد، یعنی 4.263 ولت (این ولتاژ در هنگام تست برای شما شاید متفاوت باشد)
ب) نحوه ارتباط بین ماژول و پردازنده
رایجترین مشکل بعدی مربوط به کابل سریال میباشد. علیالخصوص در مواقعی که از مبدلهای کابل سریال به USB استفاده میشود، این مشکل بیشتر نمایان میشود.
در ابتدا از یک نرمافزار مناسب برای مشاهده ترمینال سریال استفاده کنید. نرمافزار Termite بهعنوان یک نرمافزار رایگان و کاربری ساده پیشنهاد میشود.
برای تست پورت سریال، پورت RX و TX را به هم متصل کنید. درصورتیکه درایور پورت سریال شما درست نصبشده باشد و اتصالات بهدرستی برقرارشده باشند، با تایپ هر کاراکتر، باید در ترمینال برگشت داده شود.
ماژول CP2102 یکی از بهترین ماژولها برای مبدل سریال به USB میباشد بعد از تست سریال، به سراغ ماژول میرویم. پس از اتصال تغذیه و چشمک زدن ماژول، در صورت درست بودن اتصال سریال، میتوانید دستورات را به ماژول ارسال کنید. معمولاً تنظیمات سریال ماژول AUTO BAUD RATE بوده و نیازی به انجام تنظیم خاصی نیست؛ ولی بهتر است برای راحتی کار تنظیمات سریال در نرمافزار سریال خود را روی 9600 تنظیم کنید.
در هنگام اتصال به میکروکنترلر، یا باید بیت ریت ماژول را بر روی عدد خاصی فیکس کنید و یا اینکه با ارسال چندینباره کاراکتر A بیت ریت را تنظیم کنید. پیشنهاد من فیکس کردن عدد بیت ریت بر روی عددی خاص است. برای این کار یکبار ماژول را باید به رایانه متصل کرده و سپس با ارسال یکی از دستورات زیر عدد را ثابت کنید.
AT+IPR=0 // Enable auto bauding, this is enabled by default AT+IPR=1200 // Set baud rate to 1200 bps AT+IPR=2400 // Set baud rate to 2400 bps AT+IPR=9600 // Set baud rate to 9600 bps AT+IPR=19200 // Set baud rate to 19200 bps AT+IPR=38400 // Set baud rate to 38400 bps AT+IPR=57600 // Set baud rate to 57600 bps AT+IPR=115200 // Set baud rate to 115200 bps
لازم به ذکر است که بعد از تغییر، این عدد در حافظه ماژول ذخیرهشده و فقط در همین فرکانس امکان اتصال به ماژول میسر میباشد. در صورت تایپ اشتباه یا فراموش کردن، ماژول غیرقابل استفاده میشود!
درصورتیکه در ترمینال، بعد از ارسال کاراکترها، اطلاعات برگشتی نامفهوم بود، یعنی اینکه اطلاعات بیت ریت شما درست تنظیم نشده است.
بهترین کار در هنگام اتصال ماژول به پردازنده، هماهنگسازی ولتاژ بین ماژول و میکروکنترلر میباشد. بااینحال که در هنگام تست، اتصال پورت سریال 5 ولت به ماژول باعث بروز مشکل نمیشود، ولی بهتر است مقاومتهای محدودکننده جریان (حدود 100 اهم) در مسیر میکروکنترلر به ماژول قرار گیرد.
بعضاً مشاهدهشده است در هنگام تبادل دستورات بین ماژول و پردازنده، به علت بالا بودن سرعت بالای پاسخ پردازنده، ماژول دستورات را بهدرستی دریافت نکرده و با خطا مواجه میشود. بهشخصه در هنگام کار با Labview یا میکروکنترلر، بارها با این مشکل مواجه شدهام. تنها راه رفع این مشکل، قرار دادن یک تأخیر بسیار کوتاه (در حد 5 میلیثانیه) بین دریافت و ارسال دستور به ماژول میباشد.
ج) اتصال به شبکه
مورد بعدی پین کد سیمکارت میباشد. اگر پین کد سیمکارت فعال باشد، ماژول به شبکه متصل نمیشود. برای این کار میتوانید توسط یک گوشی موبایل پین کد را غیرفعال کنید و یا اینکه توسط دستورات زیر کد را غیرفعال کنید.
AT+CPIN? >>> +CPIN: SIM PIN // pin codes need to be entered >>> OK AT+CPIN="9546" >>>; OK AT+CLCK="SC",0,"9546" // disable pin code >>> OK AT+CPIN? >>> +CPIN: READY
شماره پایههای سیمکارت
درصورتیکه تمامی موارد را تست کردید ولی باز هم نتوانستید به شبکه متصل شوید، میبایست اتصالات مربوط به آنتن و سیمکارت را چک کنید. روش سریع برای یافتن ایراد استفاده از دستور خطایابی ماژول میباشد. با ارسال دستور زیر در صورت بروز مشکل خطای مربوطه گزارش داده میشود.
AT+CMEE=1
با ارسال این دستور، عبارت ok مبنی بر فعال شدن گزارش خطا برای شما ارسال میشود. در صورت وجود خطا، اعلام بهصورت کد برگشتی گزارش داده میشود، در لیست زیر میتوانید خطای مربوط به کد خود را مشاهده کنید.
CME ERROR: 0 Phone failure CME ERROR: 1 No connection to phone CME ERROR: 2 Phone adapter link reserved CME ERROR: 3 Operation not allowed CME ERROR: 4 Operation not supported CME ERROR: 5 PH_SIM PIN required CME ERROR: 6 PH_FSIM PIN required CME ERROR: 7 PH_FSIM PUK required CME ERROR: 10 SIM not inserted CME ERROR: 11 SIM PIN required CME ERROR: 12 SIM PUK required CME ERROR: 13 SIM failure CME ERROR: 14 SIM busy CME ERROR: 15 SIM wrong CME ERROR: 16 Incorrect password CME ERROR: 17 SIM PIN2 required CME ERROR: 18 SIM PUK2 required CME ERROR: 20 Memory full CME ERROR: 21 Invalid index CME ERROR: 22 Not found CME ERROR: 23 Memory failure CME ERROR: 24 Text string too long CME ERROR: 25 Invalid characters in text string CME ERROR: 26 Dial string too long CME ERROR: 27 Invalid characters in dial string CME ERROR: 30 No network service CME ERROR: 31 Network timeout CME ERROR: 32 Network not allowed, emergency calls only CME ERROR: 40 Network personalization PIN required CME ERROR: 41 Network personalization PUK required CME ERROR: 42 Network subset personalization PIN required CME ERROR: 43 Network subset personalization PUK required CME ERROR: 44 Service provider personalization PIN required CME ERROR: 45 Service provider personalization PUK required CME ERROR: 46 Corporate personalization PIN required CME ERROR: 47 Corporate personalization PUK required CME ERROR: 48 PH-SIM PUK required CME ERROR: 100 Unknown error CME ERROR: 103 Illegal MS CME ERROR: 106 Illegal ME CME ERROR: 107 GPRS services not allowed CME ERROR: 111 PLMN not allowed CME ERROR: 112 Location area not allowed CME ERROR: 113 Roaming not allowed in this location area CME ERROR: 126 Operation temporary not allowed CME ERROR: 132 Service operation not supported CME ERROR: 133 Requested service option not subscribed CME ERROR: 134 Service option temporary out of order CME ERROR: 148 Unspecified GPRS error CME ERROR: 149 PDP authentication failure CME ERROR: 150 Invalid mobile class CME ERROR: 256 Operation temporarily not allowed CME ERROR: 257 Call barred CME ERROR: 258 Phone is busy CME ERROR: 259 User abort CME ERROR: 260 Invalid dial string CME ERROR: 261 SS not executed CME ERROR: 262 SIM Blocked CME ERROR: 263 Invalid block CME ERROR: 772 SIM powered down
بعد از تست ولتاژ و پین کد، تعدادی تست دیگر نیز موجود میباشد که در ادامه آنها را انجام خواهیم داد. در ابتدا اتصال سیمکارت به ماژول را با ارسال دستور AT+CPIN? تست میکنیم در صورت سالم بودن:
AT+CPIN? +CPIN: READY OK
درصورتیکه سیمکارت به هر دلیلی به ماژول وصل نباشد:
AT+CPIN? +CME ERROR: 10
در این تست، سیمکارت به ماژول متصل نبوده و خطایابی ماژول از طریق دستور AT+CMEE=1 فعالشده است. در صورت جستجو در لیست خطاهای ماژول، مشاهده خواهید کرد که خطای شماره 10 مربوط به متصل نبودن سیمکارت به ماژول میباشد.
دستور بعدی، تست میزان قدرت سیگنال میباشد. با ارسال دستور AT+CSQ شما میتوانید از درست بودن مدار مربوط به آنتن، کیفیت آنتن و میزان سیگنال مخابرات در محل ماژول مطلع شوید.
مثال:
AT+CSQ+CSQ: 16,0OK
در پاسخ دستور CSQ در صورت درست بودن اتصالات آنتن، 2 عدد به شما بازگردانده میشود، عدد سمت چپ قدرت سیگنال دریافتی ماژول میباشد که میبایست عددی مابین 2 و 30 را نمایش دهد. بدیهی است هرچه میزان این عدد پایین باشد، قدرت سیگنال پایین و درنتیجه احتمال کارکرد درست و سرعت تبادل اطلاعات ماژول پایینتر خواهد بود.
جهت دسترسی بهتمامی دستورات، شما میتوانید به اسناد مربوط به AT Command ماژول مراجعه کنید. دستورات بسیار زیادی هستند که شما میتوانید از طریق آنها تمامی قسمتهای ماژول را تست کنید.
یکی از ماژولهای بسیار کوچک SIM800
و در آخر، نهایت دقت را در هنگام کار با این ماژولها داشته باشید، ولتاژ بسیار بالا، اتصال کوتاه بین پایههای مختلف و … باعث سوختن ماژول میشوند. مواردی همچون داغ شدن بیشازحد ماژول، اتصال کوتاه بین پایههای تغذیه، خاموش نشدن چراغهای ماژول از علائم سوختن ماژول هستند.
در این مطلب، انواع روشهای رایج خطایابی ماژولهای Sim800 آموزش داده شد، شما میتوانید از همین دستورات برای ماژول sim808 نیز استفاده کنید. درصورتیکه میخواهید مداری برای این ماژول طراحی کنید، سعی کنید برای طراحی برد از شماتیک پیشنهادی موجود در اسناد مخصوص ماژول استفاده کنید.
این مطلب در شماره 15 مجله نویز منتشر شده است.
باسلام خسته نباشيد اطلاعيه درخصوص مشكل ماژول پيام ميخوام چطور انجام شده
با سلام و خسته نباشید
من ماژولو تو نرم افزار rstermplus ، تست میکنم ولی ماژول به هیچ یک از atcommand هایی که میفرستم پاسخ نمیده ، پایه های rx,tx ماژول سوخته نباشه ؟
خیلی ممنون میشم راهنمایی کنین .
سلام من هم همین مشکل و دارم. اگر مشکل و حل کردین به منم بگین . با یک ماژول نو هم تست کردم ولی کامندی دریافت نمیکنه و پاسخی به کامند ها نمیده
سلام
من اخیرا این ماژول رو از فروشگاه شما تهیه کردم ، تو شبکه ثبت میشه و LED هر سه ثانیه یک بار چشمک میزنه ولی نمیتونم با آردوینو ارتباط سریال برقرار کنم
مشکل رو تو انجمن ECA هم مطرح کردم ولی هنوز مشکل حل نشده ، تمام راه کار هایی که هم تو یوتیوب هم انجمن های خارجی هم ECA مطرح شده بود رو تست کردم که از این قراره
1 – استفاده از مبدل دی سی به دی سی
2 – استفاده از باتری بعنوان پاور ماژول
3 – استفاده از جامپر های با طول کم ( جامپر های بلند رو کوتاه کردم در حد 5 سانتی متر )
4 – استفاده از سورس کد های مختلف روی آردوینو که تست شده بودن و جواب دادن
5 – استفاده از تقسیم مقاومتی روی پین RX ماژول و TX آردوینو
6 – استفاده از رگولاتور IRFZ44N بجای تقسیم مقاومتی و کاهش ولتاژ 5 ولت TX آردوینو به 2.8 ( سطح ولتاژ منطقی ماژول ) ولت و اعمال آن به پین RX ماژول
چند تا راهکار دیگه هم تست کردم که الان حضور ذهن ندارم
چیکار کنم که مطمئن بشم مشکل از خود ماژول نیست ؟؟؟؟
سلام
من دقیقا طبق این مقاله ماژول رو راه اندازی کردم ماژول به شبکه وصل میشه اما دقیقا مشکلی ک شماهم اشاره کردین برام پیش اومده
درصورتیکه در ترمینال، بعد از ارسال کاراکترها، اطلاعات برگشتی نامفهوم بود، یعنی اینکه اطلاعات بیت ریت شما درست تنظیم نشده است.
یعنی الان باید ماژول رو بندازم یره ؟ هیچ راه حلی نداره حتی آپدیت فریم ویر هم جواب نمیده ؟
البته وقتی تغذیه رو از ماژول مبدل USB میگیرم (3.3) ریسپانس رو درست میده به شبکه وصل نمیشه اما وقتی از ماژول LM میگیرم به شبکه وصل میشه پاسخ نامفهوم میده
خازن هم 2 تا 3300 و یدونه 4700 الکترولیتی (شیمیایی) در نزدیکترین جای ممکن به GSM استفاده کردم
با سلام.ببخشید من نمیدون دستور های ات کامند رو باید کجا بنویسم?
با عرض سلام. من یه پروژه کار کردم که با یک مشکل روبرو شدم با دریافت دیتا ماژول GSM SIM800l من به گوشی من زنگ نمی زند در همان لحظه ای اول که دیتا را دریافت میکند و بصورت خودکار و متواتر برام زنگ می زند. لطفا راهنماییام کنید.
سلام وقت بخیر
شخصی که تونسته ماژول رو تست و راه اندازی کنه و همه مراحل بالارو اجرا کنه لطفا جهت تبادل اطلاعات و آموزش با حق الزحمه ،از تلگرامtaha3258 پیام بده .متشکرم
سلام . منم هر کار میکنم باز ماژول ریست میشه و به شبکه وصل نمیشه . منبع ۸ ولت ۳ امپر دادم به رگولاتور ۲۵۹۶ و به ماژول ولتاژ دقیق ۴.۲ دادم . البته ماژول من نسخه بلک ادیتیشن هست و به قول سایت ها ورودی ۵ ولت میگیره و خود بردش تبدیل میکنه به ۴.۲ . ظاهرا هم درسته چون من با رگدلاتور ۵ ولت دقیق دادم بهش ولی وقتی کد شارژ باتری رو میزنم ۴.۲ نشون میده . البته ماژول تا زمانی سیم کارت روش نیست خیلی پایداره ولی زمانی سیمکارت میزارم(همراه اول) یه لحظه ماژول به شبکه وصل میشه و بعد ریست میشه . ممنون میشم راهنمایی بیشتری بکنین . خازن ۲۲۰۰ هم مستقیم زدم به پایه های تغذیه ماژول