شیلد-آردوینو-sim-900a

آموزش ارسال و دریافت sms با استفاده از شیلد sim900a  آردوینو

ماژول sim900a یکی از معروف‌ترین ماژول‌های gsm/gprs با هسته پردازشی بسیار قوی AMR926EJ-S می‌باشد. توسط این ماژول میتوان عمیات برقرای تماس،ارسال و دریافت اس‌ام‌اس ، ارسال فکس و هچنین نبادل اطلاعات با اینترنت را انجام داد.از طریق کنترل این ماژول می توانید در هر جای کره زمین که امواج موبایل موجود می باشد دستگاه های خود را کنترل و به تبادل اطلاعات بپردازید.در ادامه این مطلب با مرجع تخصصی آردوینو ،دیجی اسپارک همراه باشید.

شیلد sim900a با تمامی آردوینوهای استانداز سازگار بوده و می‌توان آن راه بر روی آردوینوهای استتاندار قرار داد. این شیلد را می‌توان به وسیله‌ی‌ پروتکل سریال به آردوینو متصل نمود و  توسط دستورات AT Command  کنترل نمود.

شیلد-آردوینو-sim-900a

نمایی از شیلد sim900a

نمایی از شیلد sim900aنمایی از شیلد sim900a

 

 

 

نمایی از شیلد sim900a

نمایی از شیلد sim900a

 

 

ویژگی شیلد sim900a

 

  •          پشتیبانی از دو باند ۹۰۰ و ۱۸۰۰ مگاهرتز
  •          GPRS  کلاس ۸/۱۰
  •          ایستگاه موبایل  GPRS  کلاس B
  •          مطابق با GSM phase 2/2+
  •          دارای جک اسپیکر و میکروفون
  •          کنترل از طریق AT Command
  •          جریان مصرفی بسیار پایین در حدود ۱٫۵ میلی‌آمپر در حالت خواب
  •          کد کننده‌های صدا Half rate (HR) ,Full rate (FR) ,Enhanced Full rate (EFR)
  •          عمل کرد هندس فری AMR ,Half rate (HR),Full rate (FR)
  • ۱۲ عدد  GPIO  به همراه ۲عدد pwm و ۱ عدد

 

 

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

 

 

aaaa

 

 

  • Power select –انتخاب تغذیه ماژول که از ولتاژ آردوینو استفاده کند یا ولتاژ خارجی
  • Power jack – جک تغدیه اتصال به ۴٫۸ الی ۵ ولت
  • Antenna interface – اتصال به آنتن خارجی
  • Serial port select – تنظیم استفاده از پورت سریال نرم‌افزاری یا سخت افزاری
  • Hardware Serial – D0/D1 of Arduino/Seeeduino (منظور همان ارتباط سریال معمولی است که به وسیله پین شماره ۰ و ۱ انجام می‌شود.)
  • Software serial – D7/D8 of Arduino/Seeeduino only (منظور ارتباط سریالی است که به وسیله سایر پین‌های دیجیتال آردوینو انجام می‌شود)
  • Status LED – هنگام روشن بودن بودن ماژول این چراغ روشن می‌شود
  • Net light – هنگامی که ماژول به اینترنت متصل شود این چراغ روشن می‌شود
  • UART of SIM900 – UART پین‌های
  • Microphone – میکروفون
  • Speaker اسپیکر-
  • GPIO,PWM and ADC of SIM900 – GPIO,PWM and ADC pins breakout of SIM900
  • Power key – سوئیچ تغذیه

 

 

 

 

سخت افزار مورد نیاز

آردوینو Uno
شیلد sim900a

پین‌هدر نری

LED

 

 

 

 

آماده‌سازی شیلد sim900a

 

در ابتدا پین‌هدر را بر روی شیلد sim900a آردوینو لحیم کنید و سپس شیلد را بر روی آردوینو Uno قرار دهید.

نمایی از شیلد sim900a قرار گرفته بر روی آردوینو Uno

نمایی از شیلد sim900a قرار گرفته بر روی آردوینو Uno

 

 

در هنگامی که شما  shield sim900a را خریداری می‌کنید ، جامپر مربوط به  تنظیم سریال سخت افزاری یا نرم‌افزاری همانند حالت زیر می‌باشد:

آموزش ماژول sim900a آردوینو

وضعیت جامپر در هنگام خرید

 

 

اکنون میابست جامپر را جدا کرده و در وضعیت زیر قرار دهید:

آموزش ماژول sim900a آردوینو

وضعیت جامپر بعد از تغییرات

 

هم اکنون کتابخانه‌ی شیلد sim900a  را از لینک زیر دانلود کنید.این کتابخانه توسط تیم تخصصی دیجی اسپارک اصلاح شده است و  فقط برای این شیلد تست شده است .این کتابخانه از دو پین شماره ۷ و ۸  به منظور ارتباط سریال نرم‌افزاری با آردوینو استفاده می‌کند.

دانلود کتابخانه shiled GSM sim900a arduino

 

 

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

 

برای اینکه‌ بتوانید پیام‌ها را در این ماژول دریافت کنید باید حافظه اس‌ام‌اس سیم‌ کارت خود را خالی کنید‌ ، زیرا سیم‌کارت شما قابلیت ذخیره ۲۰ اس‌ام‌اس را دارد ، پس باید حافظه سیم‌کارت خود را خالی کنید.برای دیلیت اس‌ام‌اس ها باید از تابع فوق استفاده کنید. position شماره‌‌ی خانه‌ی حافظه سیم کارت می‌باشد که عددی بین ۱ الی ۲۰ می‌باشد.این تابع در صورتی که با موفقیت اس‌ام‌اس مورد نظر را حذف کند مقدار ۱ و در غیر این صورت مقدار ۰ را بر می‌گرداند.

مثال: در این مثال تمام حافظه  ‌اس‌ام‌اس‌های سیم کارت را پاک می‌کند.

 

 

 

 

 

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

مثال:در این مثال  به شماره +۹۸۹۱۳۶۹۸۷۱۲۱ یک پیام حاوی متن hi this is a test from gsm shield  ارسال می‌شود.

 

 

 

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

 

 

 

 

 

به جای آرگمان sim_phonebook_position موقعیت شماره موردنظر موجود د حافظه سیم‌کارت قرار می‌گیرد.( این عدد بین ۱ الی ۲۰ می‌باشد). همچنین به‌جای آرگمان دوم متن پیام قرار می‌گیرد.

مثال: در این مثال به شماره‌ای که در خانه‌ی شماره ۱ سیم‌کارت ذخیره شده ، پیامی حاوی متن hi this is a test from gsm shield ارسال می‌کنیم.

 

 

 

به وسیله‌ی این تابع متوجه می‌شویم که ‌اس‌ام‌اسی با وضعیت مورد نظر ما وجود دارد یا نه. required_statusمی‌تواند دارای مقادیر زیر باشد:

SMS_UNREAD – اس‌ام‌اس خوانده نشده

SMS_READ – اس‌ام‌‌اس خوانده شده

SMS_ALL – تمام اس‌ام‌اس‌های خوانده شده

این تابع در صورتی که اس‌ام‌اسی با وضعیت مورد نظر نا وجود نداشته باشد مقدار ۰ را  برمی‌گرداند.همچنین در صورتی که ‌اس‌ام‌اسی با وضعیت مورد نظر ما وجود داشته باشد مقداری بین ۱ الی ۲۰ ( این مقدار مشخص کننده موقعیت ‌اس‌ام‌اس در سیم‌کارت می‌باشد) بر می‌گرداند. اگر قبل از رسیدن به این تابع پیامکی دریافت شود ، پیام در وضعیت SMS_UNREAD قرار می‌گیرد ولی به محض این‌که این تابع  فراخوانی شود پیامک دریافت شده در وضعیت خوانده شده قرار می‌گیرد.

به وسیله‌ی این تابع می‌توان ‌اس‌ام‌اسی را در حافظه‌ی مشخص سیم‌کارت بخوانیم.

position:شماره خانه‌ی حافظه‌ی سیم کارت (عددی بین ۱ الی ۲۰)

phone_number: اشاره گری است که شماره فردی که اس‌ام‌اس ارسال کرده است در آن ریخته می‌شود.

SMS_text :اشاره‌گری است که متن پیام در آن ریخته می‌شود.

max_SMS_len :حداکثر تعدادی کاراکتری از اس‌ام ‌اس است که درون SMS_text ریخته می‌شود.

 

مثال:

در این مثال می‌خواهیم اس‌ام‌اس دریافت شده را بخوانیم. پس ابتدا باید موقعیت این پیام را در حافظه سیم‌کارت توسط تابع IsSMSPresent بیابیم و سپس توسط تابع GetSMS ، آن را بخوانیم:

 

 

 


 

پروژه

در این پروزه با استفاده از یک کلید یک اس‌ام‌اس را برای شماره مورد نظر ارسال می‌کنیم ، همچنین مداوم چک می‌کنیم که اگر پیامی اس‌ام‌اسی برای ماژول ارسال شود ، آن را دریافت کند و بر روی سریال مانیتور نرم‌افزار نمایش دهد.

 

اتصالات:

شیلد gsm مستقیم بر روی برد آردوینو uno قرار می‌گیرد

یک عدد  تاج سوییچ به صورت پول‌آپ داخلی به پین شماره ۲ آردوینو  متصل می‌شود.

 

تذکر: در این پروژه برای تشخیص فشرده شدن کلید از کتابخانه دیبانسینگ (Deboouncing) استفاده  شده است که می‌توانید آموزش آن را در لینک زیر مشاهده کنید:

آموزش دیبانسنگ کلید در آردوینو

 

 

کدهای پروژه

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

 

 

 

آموزش ماژول sim900a آردوینو

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

 

 

پس ازفشرده شدن کلید باید LED بر روی شیلد روشن شود.

آموزش ماژول sim900a آردوینو

مکان LED

 

پس از عملیات فوق حدود یک دقیقه زمان می‌برد که شیلد sim900 فعال شود  .در صورتی که مراحل را به درستی انجام داده باشید ، بر روی سریال مانیتور عبارت زیر را مشاهده می‌کنید:

آموزش ماژول sim900a آردوینو

 

 

 

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

16 دیدگاه ها

  1. moslem می‌گه:

    عالیه 🙂 لطفا درباره راههای بی سیم ارتباط بازم مطلب بزارید 🙂

  2. مهدی می‌گه:

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

  3. مهدی می‌گه:

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

  4. محمد می‌گه:

    با سلام آیا میشه این رو به رزبری پای وصل کرد؟لطفا زود جواب بدید که لازمش دارم

  5. وحید می‌گه:

    با سلام و سپاس از آموزش بسیار خوبی که ارائه کردید فقط یه سئوالی داشتم ،
    برای بستن تابع ، مثل قطع ارتباط یا ارسال ۱ بار sms از چه دستوری باید استفاده کنیم؟
    در کلاس اصلی که در آردوئینو مطرح شده از تابع end استفاده شده.
    ممنونم از شما

  6. امین می‌گه:

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

  7. علی می‌گه:

    سلام
    من از آردینو مگا استفاده می کنم.
    می خواستم بدونم که اگر من در این شیلد، پین ۲ رو به پین ۱۰ وصل کنم. و شاخه پین ۲ رو کج کنم که به آردینو وصل نشه، میتونم این شیلد رو وصل کنم و ازش استفاده کنم؟

  8. ف می‌گه:

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

  9. عماد می‌گه:

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

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *