راه اندازی ماژول A9 GSM GPRS
آموزش راه اندازی ماژول A9 GSM GPRS که یک ماژول کاربردی است در حوضه هوشمند سازی ، آموزش کار با دستورات AT و کار با این ماژول A9
دسته بندی : میکروکنترلر
راه اندازی sim800 و sim800l با آردوینو با کتابخانه و توضیحات کامل ، موقعیت مکانی ، حالت خواب ، دریافت و ارسال پیامک و تماس
مطالبی که قرار است بیاموزید
مطالبی که قرار است بیاموزید
ماژول sim800l یک ماژول GPRS و GSM است که شما با استفاده از آن میتوانید کار های زیادی را انجام دهید که چند مورد از آن را در پایین ذکر کرده ایم
از جمله کارهایی با SIM800L میتوان انجام داد :
شما باید ماژول SIM۸۰۰ را با دقت ۴.۲ volts تامین کنید . من از LM۲۵۹۶ مرحله پایین استفاده کردهام . شما باید ولتاژ خروجی را تا ۴.۲ volts از پتانسیومتر تنظیم کنید . فراموش نکنید که GND آردوینو را با خروجی LM۲۵۹۶ ( – ) ترکیب کنید .
دوستان عزیز توجه کنید میتوانید با استفاده از باطری لیتیومی ماژول را راه اندازی کنید
نکاتی برای حل مشکلات تغذیه :
ابتدا باید کتابخانه ی SIM800L را دانلود کنید
برای اینکار میتوانید از دو لینک زیر استفاده کنید
برای نصب کتابخانه در آردوینو باید وارد منوی sketch > include library > add zip library شوید و فایل zip را که دانلود کرده اید را انتخاب کنید تا کتابخانه مورد نظر شما نصب شود
در این بخش میخوایم کتابخانه SIM800L را کامل بررسی کنیم اما قبل از آن دستورات مختلف این کتابخانه را بررسی کنیم
دستور | مقدار بازگشتی | توضیحات | مثال |
begin() | ندارد | برای راه اندازی کتابخانه | نمایش |
begin(number) | ندارد | برای راه اندازی کتابخانه با سرعت تبادل ( باود ریت ) دلخواه | نمایش |
reset() | ندارد | ریست کردن ماژول | نمایش |
setSleepMode(bool) | bool | خاموش/روشن کردن حالت خواب ( sleep mode ) | نمایش |
getSleepMode() | bool | خواندن حالت خاموش/روشن بودن حالت خواب | نمایش |
setFunctionalityMode(number) | bool | تنظیم حالت عملکرد | نمایش |
getFunctionalityMode() | bool | خواندن حالت عملکرد | نمایش |
setPIN(String) | bool | وارد کردن پین کد | نمایش |
getProductInfo() | String | خواندن مشخصات اوپراتور | |
getOperatorsList() | String | خواندن لیست اوپراتور ها | |
getOperator() | String | خواندن اوپراتوری که به آن متصل شده | |
calculateLocation() | bool | خواندن موقعیت مکانی | |
getLocationCode() | String | خواندن کد موقعیت مکانی | |
getLongitude() | String | خواندن عرض جغرافیایی | |
getLatitude() | String | خواندن طول جغرافیایی | |
sendSms(number,text) | bool | ارسال پیامک متنی | نمایش |
readSms(index) | String | خواندن پیامک متنی طبق موقعیت در حافظه | نمایش |
getNumberSms(index) | String | خواندن شماره ارسال کننده پیامک | |
delAllSms() | bool | پاک کردن تمامی پیام ها | |
signalQuality() | String | بازگرداندن وضعیت سیگنال | |
answerCall() | bool | پاسخ دادن به تماس | |
callNumber(number) | ندارد | تماس گرفتن | |
hangoffCall() | bool | رد تماس کردن | |
getCallStatus() | uint8_t | خواندن وضعیت تماس ۰=آماده – ۲=نامشخص – ۳=درحال تماس – ۴=تماس برقرار است | |
dateNet() | String | بازگرداندن زمان بر اساس دیتای GSM | |
updateRtc(utc) | bool | بروزرسانی زمان بر اساس utc مکان وارد شده |
با این دستور شما sim800 مورد نظر خود را راه اندازی میکنید
کار با این دستور بسیار ساده است ، شما پس از آن که یک آبجکت از کلاس Sim800L ساختید میتوانید با دستور begin آن را راه اندازی کنید
این دستور نیز مثل دستور قبل عمل میکند با این تفاوت که شما در اینجا میتوانید سرعت تبادل دیتا را خودتان مشخص کنید
GSM.begin(9600);
با اجرای این دستور میتوانید ماژول sim800 خود را ریست کنید
نمونه کد برای reset کردن ماژول sim800 :
GSM.reset();
شما با این دستور میتوانید ماژول خود را به حالت sleepmode یا حالت خواب ببرید . در این حالت ماژول sim800 شما مصرف جریانی بسیار پایینی خواهد داشت
این دستور یک ورودی از نوع bool دریافت میکند که اگر آن ورودی true باشد ماژول شما به حالت خواب میرود و اگر false باشد از حالت خواب خارج خواهد شد
نمونه کد برای فعال سازی حالت sleep mode :
GSM.setSleepMode(true);
نمونه کد برای غیرفعال سازی حالت sleep mode :
GSM.setSleepMode(false);
با این دستور میتوانید وضعیت sleep monde یا حالت خواب ماژول خود را بخوانید ، کار با این دستور بسیار ساده است و یک خروجی از نوع bool دارد که اگر برابر با true بود یعنی ماژول شما در حالت خواب قرار دارد و اگر برابر با false بود یعنی ماژول شما در حالت خواب قرار ندارد .
نمونه کد برای خواندن وضعیت sleep mode :
bool hamyar = GSM.getSleepMode();
با استفاده از این دستور میتوانید حالت عملکرد دستگاه را تنظیم و محدود کنید
نمونه کد برای تنظیم حالت عملکرد :
GSM.setFunctionalityMode(4);
این دستور برای خواندن حالت عملکرد استفاده میشود کار با این دستور نیز ساده است و یک مقدار بر میگرداند که مشخص میکند که دستگاه شما در چه حالت عملکردیی قرار دارد
نمونه کد :
Serial.println(GSM.getFunctionalityMode());
این کد برای وارد کردن پین کد سیمکارت استفاده میشود و یک ورودی از نوع string دریافت میکند
نمونه کد :
GSM.setPIN(1234);
با استفاده از این کد میتوانید پیامک دلخواه خود را ارسال کنید
نمونه کد :
GSM.sendSms(“09123456789″,”HI HAMYAR”);
با استفاده از این کد میتوانید پیامک دریافتی را بخوانید
ابتدا با استفاده از دستور prepareForSmsReceive باید ماژول خود را آماده برای دریافت پیامک کنیم
GSM.prepareForSmsReceive();
سپس باید هر بار چک کنیم که اگر پیام جدیدی دریافت شده موقعیت حافظه آن را بخوانیم
byte index = GSM.checkForSMS();
حالا اگر مقدار داشت یعنی پیامک جدیدی داریم و آن را میخوانیم
نمونه کد :
آموزش راه اندازی ماژول A9 GSM GPRS که یک ماژول کاربردی است در حوضه هوشمند سازی ، آموزش کار با دستورات AT و کار با این ماژول A9
تغذیه ماژول sim800 - دوره آموزشی sim800l - راه اندازی - راه اندازی sim800 با lm317 - راه اندازی sim800 با باطری لیتیوم پلیمری - راه اندازی sim800 با lm2596
سلام خسته نباشید.من هرکاری میکنم نمیتونم ماژولsim800رو به پورت سریال وصل کنم.از هر روشی که به ذهنم رسیده امتحان کردم.با مبدل یو اس بی به سریال امتحان کردم جواب نداده.با خود اردینو هم امتحان کردم ولی هیچ دستوری رو ارسال و دریافت نمیکنه.دستوراتatرو دریاف نمیکنه.ماژول سیمکارت مشکلی از لحاظ انتن دهی نداره چون وقتی بهش زنگ میزنم بوق میخوره ولی موندم چرا دستورات رو اجرا نمیکنه.پایه های rx و txروهم جابجا کردم.منفی sim800رو با منفی مبدل سریال و حتی اردینو هم یکی کردم ولی باز جواب نداده.هر نوع برنامه ای که به ذهنم رسیده امتحان کردم.ممنون میشم راهنمایی بفرمائید.
سلام
ماژول sim800 شما از وقتی خریداری کردید این مشکل رو داشت؟
روی pcb نصب شده یا روی برد آزمایشگاهی تست میکنید؟
در صورت امکان تصاویر اتصالاتتون رو توی واتساپ برای ما ارسال کنید تا شما رو راهنمایی کنیم
سلام به همه دوستانی که مثل بنده به این مشکل(عدم نمایش خروجی توی سریال مانیتور) برخوردن و مدت ها دنبال راه حل گشتن.
جواب خیلی ساده س!
شما می بایست پایه GND آردوینو رو به منبع تغذیه و ماژول سیم کارتت وصل کنی(یعنی پایه GND همه شون باید مشترک باشه)
که البته توی شماتیکی که دوستان عزیز سایت همیار الکترونیک کاملا مشخصه و جز چیزایی که بنده هیچ وقت بهش توجه نکردم.
ممنون از سایت خوب همیار الکترونیک.
تشکر از به اشتراک گذاری تجربیاتتون
سلام ببخشید اگه بخواییم از این ماژول در مدت طولانی به صورت دایم ازش استفاده بشه مشکلی نداره
سلام ، خیر مشکلی پیش نمیاد ، فقط یه مقاومت برای پورت دیتا برای طولانی مدت بزارید بهتره
سلام تشککر از مطلب خوبتان
بنده بورد آردینو رو پروگرام کردم اما با نرم افزاری که زحمت کشیدید معرفی کردید نمیتونم بهش متصل بشم
و نرم افزار هنگ میکنه یا کار نمیکنه
ممنون میشم آموزشی تصویری قرار بدید
احتمالا به زودی قرار خواهد گرفت
تشکر از نظر پر ارزشتون
موفق باشید
ممنون از شما . واقعا همونی بود که می خواستم،کامل و بدون نقص
ممنون از نظر های خوب شما
تو این زمینه بهترین هستین
لذت بردم
سایتتون هم خیلی زیباست
باعث افتخارمون هست که کاربرانمون راضی هستند
در ادامه مطلب باید بگم که خیلی از دوستان با ولتاژ و جریان این ماژول مشکل دارند
بهترین کار برای تست اولیه استفاده از باطری های لیتیوم پلیمری هست
من چند وقت پیش این ماژول رو با استفاده از باطری گوشی راه اندازی کردم و باید بگم این باطری ها جریان مناسبی رو میدند و ولتاژ کاری اون ها ۳.۷ ولت هست که برای این ماژول ولتاژ استانداری هست و میتونه به راحتی کار شما رو راه بندازه
اما برای زدن pcb مناسب نیست
سلام.
سوالی که دارم اینکه که ابزار AT command رو روی کامپیوتر نصب میکنید ؟
کد رو که توی آردوینو میریزیم.
اونوقت چطور ابزار به پورت سریال آردوینو یا ماژول SIM800 وصل میشه ؟
ممنون میشم راهنمایی بفرمایید.
با تشکر
وقت بخیر دوست عزیز
نرم افزار AT Command Tester Tool برای کامپیوتر هست که میتونید از اینجا دانلود کنید
پورت سریال هم باید بگم که کتابخانه SoftwareSerial پین های سریال آردوینو رو از ۰و۱ به پین های دلخواه انتقال میده با استفاده از کابل usb دیتا رو انتقال میده و قابل نمایش هست
سوال دیگه ای داشتید در خدمتم
سلام
ببخشید جریان مورد نیاز مازول sim800l تا ۲ آمپر هم میرسه اما جریان پایه های اردوینو ۴۰ تا ۵۰ میلی آمپر هست با استفاده از lm2596 ولتاژ مورد نیاز ماژول sim800 رو تامین میکنیم اما جریان مورد نیاز ماژول هم آیا تامین میشه با همین رگولاتورlm2596 ؟؟
وقتتون بخیر
پیشنهاد میکنم ورودی مبدل dc به dc رو به ورودی ولتاژ بدید
آداپتور رو که به آردوینو متصل میکنید پایه Vin هم ولتاژ آداپتور رو میگیره ورودی + مبدل رو به این پایه متصل کنید مشکلتون حل میشه