آردوینو آموزش آردوینو سیم کارت GSM - GPRS پروژه های آردوینو

آموزش ارسال sms با شیلد سیم کارت sim800c آردوینو Arduino

آموزش ارسال sms با شیلد sim800c آردوینو Arduino
نوشته شده توسط علیرضا قربانی

در دو پست قبلی 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 را به برنامه خود فراخوانی کنیم:

این کتابخانه پایه و در برگیرنده‌ی تمامی کلاس‌ها و توابعی می‌باشد که برای راه‌اندازی یک ماژول یا شیلد 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 به پایان رسید.اکنون کد‌های  قرار گرفته در پایان این صفحه  را بر روی آردوینو خود آپلود کنید و سپس تمام عملیات زیر را به ترتیب انجام دهید.بعد از آپلود کدها بر روی آردینو ، کلید نمایش داده شده در تصویر زیر را به مدت ۵ ثانیه نگه دارید.

 

sim800c آردوینو

کلید فعال سازی شیلد Sim800C آردوینو

بعد از فشردن کلید نشان داده در تصویر فوق ،  باید LED نشان داده در تصویر زیر روشن شود.

شیلد sim800c آردوینو

اکنون سریال مانیتور نرم افزار را باز کنید و آن را بر روی Newline تنظیم کنید. سپس منتظر بمانید نا بر روی سریال مانیتور عبارت Enter a mobile number نمایش داده شود.شماره را وراد کنید و enter را بزنید. بعد از آن پیام Now, enter SMS content نمایش داده می‌شود که شما باید متن پیام را وارد کنید و enter را بزنید. که ما عبارت hi !this is a test را وارد می‌کنیم. اکنون پیام شما ارسال شده است و  بر روی گوشی شخص مقابل به نمایش در می‌آید.


کدهای برنامه شیلد GSM Sim800C


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

 

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


تجهیزات مورد نیاز


آردوینو UNO

شیلد sim800c (خرید از فروشگاه)

منبع تغذیه یا آداپتور ۵ولت

سیم‌کارت میکرو

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

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

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

علیرضا قربانی

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

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۸ دیدگاه

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

  • باسلام
    ممنون بابت آموزشهایی که در سایتتون قرارمیدید.
    لطفا اگر امکانش هست، آموزش کامل کار با ماژول جی پی اس NEO-6M را هم در سایت قرار بدید. با تشکر

  • سلام.
    سپاس به خاطر وقتی که میزاری و این مطالب آموزنده رو قرار میدی.
    کارمونو راه میندازی خدا کارتو راه بندازه.
    if (inChar == ‘n’)
    {
    result[i] = ‘�’;
    Serial.flush();
    return 0;
    }
    این قسمت از کد برا من خطا میده. میگه result[i] خالیه…
    ممنون میشم راهنمایی کنی.

  • سلام امکانش هست این اموزش رو برای رزبری پای ۳ قرار بدین
    چون تو یک فروشگاه اینترنتی این کیت رو برای رزبری پای قرار داده بود

  • سلام ممنون از سایتتون.من می خام داخل پروژم ارسال sms داشته باشه ارزون ترین شیلد واسه sms نامش چیه و قیمتش چنده؟ ممنون از شما

  • با سلام دوستان عزیز . من یک سوالی داشتم که ذهنم رو درگیر کرده و از دوستان اهل فن درخواست پاسخ دارم و آن اینکه آیا با در دست داشتن فقط و فقط سریال نامبر دستگاه گیرنده اس ام اس اعم از تلفن همراه ساعت هوشمند انگشتر هوشمند و .. میتوان از فوروارد دوباره همان اس ام اس از دستگاه دریافت کننده باخبر شد یا خیر . شدیدا نیاز به یاری و کمک اساتید اهل فن هستم ممنون

  • باتشکر از پاسختانایا کتابخانه آماده برای حالت سریال سخت افزاری برای راه اندازی شیلد sim800 وجود دارد ؟تا چه حد می توان به حالت نرم افزاری اعتماد کرد؟و ایا به صورت اینتراپت می شود استفاده نمود؟ چون من در محیط صنعتی قصد استفاده از این شیلد را دارم.

    • با سلام
      ضمن تشکر از توجه شما، در این زمینه پیشنهاد میشود که از دایرکتوری آردوینو برای کتابخانه‌ها استفاده کنید. همچنین وضعیت اعتماد بستگی به کدهایی که برای راه اندازی نوشته‌اید دارد.

  • سلام.خسته نباشید.من ماژول sim800cرو دارم.با مبدل dcبهdc ولتاژ۴٫۳ولت بهش میدم اما ماژول رجیستر نمیشه.مشکل چیه؟ممنون میشم راهنمایی کنید.در ضمن سیم کارتم ایرانسل هستش.

    • با سلام و تشکر از شما
      کاربر گرامی این آموزش برای شیلد Sim800C میباشد. همانطور که می‌دانید ماژول‌های GSm هر کدام فرآیند خاصی برای راه اندازی دارند، از این رو در خصوص این ماژول اطلاعاتی در حال حاضر در دسترس نیست.

  • با عرض سلام
    جناب مهندس مرسی بابت توصیف پروژه تون یک سوال از خدمتتون داشتم میخواستم بدونم این کتابخونه و فانکشن ها را اگر برای sim800aاستفاده کنیم مشکلی پیش میاد؟

  • سلام .خسته نباشید.
    چرا بنده این کد را اپلود میکنم جواب نمیگیرم.ق سمت result برنامه ارور میده.باید چه کاری بکنم؟؟

  • سلام
    من برای ارسال 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 و کدهای مربوطه، به درستی ست شده باشد.

  • سلام ببخشید یه سوال آیا میشه با استفاده از پیامک آردوینو رو برنامه نویسی کرد ؟

  • سلام ببخشید یه سوال ایا میشه با استفاده از پیامک آردوینو رو برنامه نویسی کرد ممنون