در دو پست قبلی sim800c به آموزش توابع دریافت sms و همچنین اسکن شبکه پرداختیم .در این پست میخواهیم به آموزش توابع و کلاسهای مربوط به ارسال sms بپردازیم پس در ادامهی آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.
شیلد sim800c آردوینو
شیلد Sim800c یک شیلد GSM/GPRS با قابلیت پشتیبانی از ۴ کانال ۸۵۰/۹۰۰/۱۸۰۰/۱۹۰۰ MHz برای ارسال دیتا ، SMS,MMS و برقرای تماس صوتی میباشد. این ماژول مخابراتی را میتوان به عنوان یک تلفن همراه هوشمند در نظر گرفت که کاربران به وسیلهی آن میتوانند دیتا را به درستی ارسال و دریافت کنند. این ماژول قابلیت پشتیبانی از تمام اپراتورهای مخابراتی را دارا میباشد.ارتباط سریال در سطح TTL قابلیت راهاندازی این ماژول را با آردوینو و سایر سیستمهای ۵ , ۳٫۳ , ۲٫۸۵ ولت DC را امکانپذیر میکند. به وسیله تغییر وضعیت جامپر (D1 D0) میتوان ماژول را در وضعیت ارتباط سریال سخت افزاری و یا با تغییر جامپر (D8 D7) میتوان ماژول را در وضعیت ارتباط سریال نرمافزاری قرار داد. این شیلد قابلیت بروز شدن فریم ور را توسط پورت USB و پورت سریال دارا میباشد.از ویژگیهای این شیلد میتوان به موراد زیر اشاره نمود:
- پشتیبانی از چهار باند ۸۵۰/۹۰۰/۱۸۰۰/۱۹۰۰ مگاهرتز
- پروتکل ارتباطی سریال (UART)
- کنترل از طریق AT Command و لایبرری
- دارای جک هدست
- اسلات سیمکارت میکرو
- تغذیه ۵ ولت DC
- جربان مصرفی حداکثر ۲ آمپر
- دمای کاری منفی ۴۰ الی ۸۵ درجه سانتیگراد
دانلود کتابخانه Sim800C
قبل از شروع به کار باید شیلد Sim800C را برای کار با برد آردوینو Arduino Uno آماده کنید که در پست قبلی آموزش آن داده شده است. کتابخانهای که توسط تیم فنی دانشجوکیت آماده شده است را از لینک زیر دانلود کنید و توسط آموزش زیر آن را به نرمافزار آردوینو خود اضافه کنید. *توجه داشته باشید در صورتی کتابخانه دیگیری به نام GSM درون پوشهی libraries نرمافزار آردینو وجود داشت حتما آن را حذف کنید و بعد از آن اقدام به نصب این کتابخانه کنید.
دانلود کتابخانه شیلد Sim800c برای آردوینو
آموزش نصب کتابخانه در نرمافزار آردوینو
این کتابخانه از پین ۷ و ۸ آردوینو به منظور برقراری ارتباط سریال نرمافزار با آردوینو استفاده میکند. همچنین از پین ۶ آردوینو به منظور ریست شیلد استفاده میشود . که میتوانید با اتصال پین ۶ به یک کلید و GND ، امکان ریست کردن را به شیلد sim800c خود اضافه کنید.
معرفی توابع ارسال اس ام اس SMS
در ابتدای کار قبل از هر کاری میبایست کتابخانه GSM را به برنامه خود فراخوانی کنیم:
#include <GSM.h>
این کتابخانه پایه و در برگیرندهی تمامی کلاسها و توابعی میباشد که برای راهاندازی یک ماژول یا شیلد GSM مورد نیاز است.شیلد sim800c دارای یک عدد مودم داخلی میباشد که به وسیلهی پورت سریال و AT command ها میتوان آن را به سامانهی جهانی ارتباطات همراه متصل نمود. این کتابخانه دستورات و کدنویسیهای سطح پایین بین سیم کارت و مودم داخلی sim800 را از بین میبرد و کدنویسی پیشرفته و سطح بالا را در اختیار شما قرار میدهد.کتابخانه GSM از ارتباط سریال نرمافزاری با پینهای شماره ۷ و ۸ آردوینو به منظور برقرای ارتباط بین شیلد (مودم ) و آردوینو استفاده میکند. ممکن است سیمکارت شما دارای پین باشد (pin number) برای این منظور یک Preprocessor به نام PINNUMBER معرفی میکنیم و اگر سیمکارت دارای پین بود ، شماره پین آن را داخل کوتیشن مینویسم و اگر هم دارای شماره پین نبود داخل کوتیشن چیزی نمینویسیم و داخل آن را خالی میزاریم:
#define PINNUMBER ""
برای دسترسی به توابع راهانداز شیلد sim800c و ارسال sms باید از دو کلاس GSM و GSM_SMS دو آبجکت با نامهای دلخواه بسازیم( ما از gsmAccess برای کلاس مربوط به راهاندازی شیلد و از نام sms برای کلاس مربوط به GSM_SMS استفاده میکنیم).
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
با صدا کردن sms.beginSMS() و دادن remoteNumber به عنوا آرگمان ورودی به آن ، شیلد را برای ارسال sms آماده میکنیم و با صدا کردن تابع sms.print() و دادن متن پیام به عنوان آرگمان ورودی به آن ، پیام را ارسال میکنیم و با استفاده از تابع sms.endSMS() به عملیات ارسال خاتمه میبخشیم.
Serial.println("SENDING"); Serial.println(); Serial.println("Message:"); Serial.println(txtMsg); sms.beginSMS(remoteNumber); sms.print(txtMsg); sms.endSMS(); Serial.println("nCOMPLETE!n"); }
آموزش توابع مربوط به دریافت sms به پایان رسید.اکنون کدهای قرار گرفته در پایان این صفحه را بر روی آردوینو خود آپلود کنید و سپس تمام عملیات زیر را به ترتیب انجام دهید.بعد از آپلود کدها بر روی آردینو ، کلید نمایش داده شده در تصویر زیر را به مدت ۵ ثانیه نگه دارید.
بعد از فشردن کلید نشان داده در تصویر فوق ، باید LED نشان داده در تصویر زیر روشن شود.
اکنون سریال مانیتور نرم افزار را باز کنید و آن را بر روی Newline تنظیم کنید. سپس منتظر بمانید نا بر روی سریال مانیتور عبارت Enter a mobile number نمایش داده شود.شماره را وراد کنید و enter را بزنید. بعد از آن پیام Now, enter SMS content نمایش داده میشود که شما باید متن پیام را وارد کنید و enter را بزنید. که ما عبارت hi !this is a test را وارد میکنیم. اکنون پیام شما ارسال شده است و بر روی گوشی شخص مقابل به نمایش در میآید.
کدهای برنامه شیلد GSM Sim800C
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
تجهیزات مورد نیاز
شیلد sim800c (خرید از فروشگاه)
سیمکارت میکرو
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
واقعا جا داره از شما تشکر و قدر دانی بشه که بدون هیچ چشم داشتی اموزش جز به جز مطالب رو خیلی ساده و قابل فهم منتشر میکنید خیلی ممنونم از مطالب اموزنده تون انشالله که پاینده و موفق باشید
باسلام
ممنون بابت آموزشهایی که در سایتتون قرارمیدید.
لطفا اگر امکانش هست، آموزش کامل کار با ماژول جی پی اس NEO-6M را هم در سایت قرار بدید. با تشکر
سلام.
سپاس به خاطر وقتی که میزاری و این مطالب آموزنده رو قرار میدی.
کارمونو راه میندازی خدا کارتو راه بندازه.
if (inChar == ‘n’)
{
result[i] = ‘�’;
Serial.flush();
return 0;
}
این قسمت از کد برا من خطا میده. میگه result[i] خالیه…
ممنون میشم راهنمایی کنی.
سلام برای حل مشکلتون چیکار کردین؟
سلام امکانش هست این اموزش رو برای رزبری پای ۳ قرار بدین
چون تو یک فروشگاه اینترنتی این کیت رو برای رزبری پای قرار داده بود
سلام ممنون از سایتتون.من می خام داخل پروژم ارسال sms داشته باشه ارزون ترین شیلد واسه sms نامش چیه و قیمتش چنده؟ ممنون از شما
با سلام دوستان عزیز . من یک سوالی داشتم که ذهنم رو درگیر کرده و از دوستان اهل فن درخواست پاسخ دارم و آن اینکه آیا با در دست داشتن فقط و فقط سریال نامبر دستگاه گیرنده اس ام اس اعم از تلفن همراه ساعت هوشمند انگشتر هوشمند و .. میتوان از فوروارد دوباره همان اس ام اس از دستگاه دریافت کننده باخبر شد یا خیر . شدیدا نیاز به یاری و کمک اساتید اهل فن هستم ممنون
با سلام
این موضوع با توجه به قوانین حریم خصوصی امکان پذیر نمیباشد.
باتشکر از پاسختانایا کتابخانه آماده برای حالت سریال سخت افزاری برای راه اندازی شیلد sim800 وجود دارد ؟تا چه حد می توان به حالت نرم افزاری اعتماد کرد؟و ایا به صورت اینتراپت می شود استفاده نمود؟ چون من در محیط صنعتی قصد استفاده از این شیلد را دارم.
با سلام
ضمن تشکر از توجه شما، در این زمینه پیشنهاد میشود که از دایرکتوری آردوینو برای کتابخانهها استفاده کنید. همچنین وضعیت اعتماد بستگی به کدهایی که برای راه اندازی نوشتهاید دارد.
باسلام لطفا پاسخگوی سوال دوستمون در مورد ارور که گفتند راجب result باشید من هم به همین مشکل خوردم ممنون
با سلام
ضمن تشکر از توجه شما، بررسی خواهم کرد.
سلام.خسته نباشید.من ماژول sim800cرو دارم.با مبدل dcبهdc ولتاژ۴٫۳ولت بهش میدم اما ماژول رجیستر نمیشه.مشکل چیه؟ممنون میشم راهنمایی کنید.در ضمن سیم کارتم ایرانسل هستش.
با سلام و تشکر از شما
کاربر گرامی این آموزش برای شیلد Sim800C میباشد. همانطور که میدانید ماژولهای GSm هر کدام فرآیند خاصی برای راه اندازی دارند، از این رو در خصوص این ماژول اطلاعاتی در حال حاضر در دسترس نیست.
با عرض سلام
جناب مهندس مرسی بابت توصیف پروژه تون یک سوال از خدمتتون داشتم میخواستم بدونم این کتابخونه و فانکشن ها را اگر برای sim800aاستفاده کنیم مشکلی پیش میاد؟
با سلام و تشکر از شما
دستورات AT یکسان میباشند.
سلام .خسته نباشید.
چرا بنده این کد را اپلود میکنم جواب نمیگیرم.ق سمت result برنامه ارور میده.باید چه کاری بکنم؟؟
با سلام
لطفا ارور دریافتی را کاملا کپی کرده و از همین طریق ارسال کنید.
مرسی از سایت و اطلاعات خوبی که در اختیار همه قرار می دهید و راهنمایی ها به موقع که نشان از دانش و اطلاع خوبی هست که دارید ..سایت تون فوق العاده است
با سلام
از توجه شما سپاسگزاریم.
سلام
پیام ارسالی من روی گوشی نامفهوم هست مینویسه CONTENT NOT SUPPORTED
با سلام
لطفا اطلاعات کاملتری در این خصوص ارایه دهید.
سلام
من برای ارسال SMSاز مثالهای موجود در کتابخانه GSMSim استفاده کردم، از ماژول توسعه دهنده ESP8266 و SIM800C استفاده کردم. در پورت سریال چنین خروجیهایی نوشته میشود:
۰
is Module Registered to Network?… 0
Signal Quality… 99
Operator Name… NOT CONNECTED
Init SMS… 0
List Unread SMS… NO_SMS
SMS to any number… 1
Begin to listen incoming messages…
لطفا راهنمایی کنید.
سلام
ابتدا توجه نمایید که سیم کارت پین کد نداشته باشد.
سپس دقت کنید که تغذیه شیلد ماژول، حتما حداقل ۲ آمپر باشد.
در نهایت حتما دقت کنید که اتصالات rx و tx و کدهای مربوطه، به درستی ست شده باشد.
سلام ببخشید یه سوال آیا میشه با استفاده از پیامک آردوینو رو برنامه نویسی کرد ؟
با سلام
سوالتان ناقص است و بنده متوجه منظورتان نشدم.
سلام ببخشید یه سوال ایا میشه با استفاده از پیامک آردوینو رو برنامه نویسی کرد ممنون
با سلام
اگر منظورتان این است که توسط ارسال پیامک، دستوراتی را روی برد آردوینو اجرا کنید. خیر امکان پذیر نیست.