آموزش AVRپروژه AVR

ارسال و دریافت SMS با میکروکنترلر AVR و ماژول Sim900

سلام. آموزش پروژه ارسال و دریافت اس ام اس SMS با ماژول Sim900 و میکروکنترلر AVR را در کدویژن آماده کردیم. ما در این پروژه متن SMS را روی ال سی دی کاراکتری نمایش میدهیم.

پروژه دریافت و ارسال اس ام اس با ماژول GSM SIM 900

استفاده از ماژول های GSM پروژه هایی که به کنترل از راه دور نیاز دارند بسیار جالب است. این ماژول ها میتوانند کلیه کار هایی را انجام دهند که تلفن های ساده میتوانند. از جمله برقراری تماس ، ارسال و دریافت پیام کوتاه ، اتصال به اینترنت و … . همانطور که گفته شد ماژول های GSM توانایی برقراری تماس را دارند پس ما میتوانیم با اتصال یک میکروفن و بلندگو یک تلفن همراه کامل بسازیم. در این پروژه AVR ما به طور کامل با فرستادن و دریافت اس ام اس SMS توسط میکروکنترلر AVR و ماژول sim900 آشنا میشویم.

پروژه دریافت و ارسال اس ام اس با ماژول GSM SIM 900

قطعات مورد نیاز پروژه

  1. میکروکنترلر AVR Atmega16L
  2. ماژول GSM Sim900
  3. ال سی دی کاراکتری 16*2
  4. دکمه
  5. مقاومت 10 کیلو اهم
  6. پتانسیومتر 10 کیلو اهم
  7. منبع تغذیه 12 ولت

همچنین ما از نرم افزار کدویژن برای نوشتن کد و همچنین از نرم افزار SinaProg برای بارگذاری کد روی میکروکنترلر AVR توسط پروگرامر USBasp استفاده خواهیم کرد.

قبل از شروع به کار با پروژه ما باید با ماژول GSM SIM 900 آشنا شویم.

برای یادگیری کامل آردوینو (برنامه نویسی حرفه ای، ارتباط با اندروید، ساخت ربات) ، روی دوره آموزش آردوینو کلیک کنید.

همچنین اگر میخواهید الکترونیک را با فیلم های آموزشی یاد بگیرید، روی دوره آموزش الکترونیک کلیک کنید.

مطلب پیشنهادی:  پروژه آردوینو خانه هوشمند با اس ام اس (Sim900 SMS)

ماژول GSM سیم 900

ماژول GSM سیم 900 SIM900

ماژول های gsm مثل SIM900 بدون استفاده از میکروکنترلر ها، در حالت فرمان AT قابل استفاده هستند. همانطور که در بالا نشان داده شده است، ماژول GSM دارای آداپتور USART است که میتواند با استفاده از ماژول MAX232 به طور مستقیم به کامپیوتر متصل شود یا میتوان از پین های Tx و Rx برای اتصال آن به میکروکنترلر استفاده کنیم. همچنین میتوان از پین های دیگر آن مانند MIC+و MIC- و SP+ و SP- و … برای اتصال به میکروفن و بلندگو استفاده کرد. همچنین این ماژول توسط میتواند توسط یک آداپتور 12 ولت DC تغذیه شود.

سیم کارت خود را در شکاف ماژول قرار دهید و آن را روشن کنید خواهید دید  که چراغ روشن میشود، حالا 1 دقیقه صبر کنید، چراغ باید هر سه ثانیه یک بار چشمک بزند که یعنی ماژول شما با موفقیت با سیمکارت و شبکه ارتباط برقرار کرده است.

آموزش کامل کار با ماژول SIM900 از طریق دستورات AT

ماژول GSM SIM900 میتواند از طریق ارتباط سریال اربتاط برقرار کند و زبانی که میتواند درک کند AT Command یا فرمان AT است. هرچه که بخواهید از ماژول GSM بدهید یا بگیرید را میتوانید از دستور AT استفاده کنید.

ما مهم ترین دستورات AT که در دیتاشیت ماژول سیم 900 موجود است را در لیست زیر برای شما آماده کرده ایم.

دستور AT پاسخ ماژول
AT+CPIN? چک کردن کیفیت سیگنال
AT+COPS? اطلاع از نام سرویس دهنده مثلا ایرانسل یا غیره
ATD98XXXXXXXX; تماس با یک شماره خاص
AT+CNUM پیدا کردن شماره سیم کارت
ATA پاسخ دادن به تماس ورودی
ATH قطع کردن تماس فعلی
AT+COLP نمایش شماره تماس ورودی
AT+VTS=(number) DTMF ارسال شماره
AT+CMGR AT+CMGR=1 خواندن پیام جایگاه اول
AT+CMGD=1 پاک کردن پیام در جایگاه اول
AT+CMGDA=”DEL ALL” پاک کردن تمامی پیام های سیم کارت
AT+CMGL=”ALL” خواندن تمامی پیام های سیم کارت
AT+CMGF=1 تنظیم حالت اس ام اس در حالت متن
AT+CMGS = “+98 935837XXXX” >متن اس ام اس <Ctrl+z> ارسال اس ام اس به یک شماره خاص پس از < متن دلخواه را وارد کنید و سپس کلید کنترل + زد را بزنید.
AT+CGATT? چک کردن اتصال اینترنت سیم کارت
AT+CIPSHUT قطع ارتباط با اینترنت
AT+CSTT = “APN”,”username”,”Pass” اتصال به اینترنت با استفاده از ای پی ان و پسورد که میتوانید از سرویس دهنده سیم کارت بگیرید.
AT+CIICR چک کردن دیتاپک سیم کارن
AT+CIFSR دریافت آی پی سیم کارت
AT+CIPSTART = “TCP”,”SERVER IP”,”PORT” TCP IP connection تنظیم
AT+CIPSEND ارسال دیتا به سرور

در این پروژه AVR ما از دستور AT + CMGF و AT + CMGS استفاده خواهیم کرد.

استفاده از مانیتور سریال آردوینو برای خواندن SMS

اگر از ماژول GSM با آردوینو استفاده کنید میتوانید از دستور CMT+ برای مشاهده شماره تلفن و پیام متنی در مانیتور سریال استفاده کنید. پیام متنی همانطور که در تصویر نشان داده شده است در خط دوم آماده است.

استفاده از مانیتور سریال آردوینو برای خواندن SMS

همچنین پروژه ساخت موبایل با آردوینو را ببینید.

ایجاد پروژه ارسال و دریافت اس ام اس با AVR

در کدویژن در قسمت میکروکنترلر Atmega16L را انتخاب کنید.  در قسمت USART گزینه Receiver و Transmitter را تیک بزنید. پروژه را Build کنید.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

برای این پروژه ما از نرم افزار SinaProg  استفاده میکنیم.

اتصالت کابل FRC با پروگرامر

اتصالات پروگرامر با میکروکنترلر Atmega16 را مطابق زیر انجام دهید.

  1. پین 1 از FRC مادگی کانکتور  -> پین 6 MOSI از Atmega16
  2. پین 2  متصل میشود به Vcc از atmega16  پین 10
  3. پین 5 متصل میشود به Reset از atmega16  پین 9
  4. پین 7 متصل میشود به SCK از atmega16 پین 8
  5. پین 9 متصل میشود به MISO از atmega16  پین 7
  6. پین 8 متصل میشود به GND از atmega16 پین 11

در قسمت HEX File، فایل هگز را انختاب کنید و سپس میکروکنترلر Atmega16 را انتخاب کنید سپس روی Program بزنید.

آپلود کد در Atmega16 با sinaprog

نحوه کار پروژه ارسال و دریافت پیامک با AVR و SIM900

ما در این پروژه از دو دکمه استفاده میکنیم که با فشردن یکی پیام تعیین شده به شماره تعیین شده ارسال میشود و با دکمه دیگر پیام دریافتی در ال سی دی کاراکتری نمایش داده میشود. فیلم زیر شمارا با نحوه ارسال و دریافت پیامک آشنا میکند.

موارد موجود در فایل : فایل سورس کامل ، شماتیک کامل

دانلود فایل های پروژه

میخواهید آردوینو را به صورت فیلم، و پروژه محور یاد بگیرید؟

دوره آموزش آردوینو

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

دوره آموزش الکترونیک
برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید
محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

21 نظر

    1. سلام جناب. مدار پروژه ساده هست اگر کمی با پروتئوس آشنایی داشته باشید میتونید طراحی کنید.

      1. سلام
        هیچی بلد نیستم
        ترم آخرم مهندسی IT این آزمایش هفته دیگه باید ارایه کنم برای نمره و با پروتیوس شبه سازی کنم
        لطفا اگر مقدور کمکم کنید . اگر براتون زحمتی نداره واگرا براتون ساده هست فایل شبیه ساز شد رو هم ارایه بفرمایید
        با تشکر

      2. سلام مجدد
        ماژول gsm sim 900 رو پیدا کردم
        ال سی دی رو هم پیدا کردم
        مقاومت و پتانسیومتر 10 کیلو اهم رو سرچ کردم ولی کلی ماژول در نتیجه سرچ بود با جزئیات خیلی زیاد نمی دونم کدوم رو برای شبه سازی انتخاب کنم
        و در نهایت اینها رو به هم دیگه وصل کنم تا نتیجه شبه سازی در شما تیک کار کنه
        لطفا کمکم کنید

        1. سلام جناب. تصویر شماتیک مدار در فایل دانلودی قرار داده شده. با توجه به شماتیک قطعات نوشته شده رو خریداری کنید و متصل کنید.

  1. اینا رو گفتین پیدا نکردم
    میشه کمک کنید
    در کدویژن در قسمت میکروکنترلر Atmega16L را انتخاب کنید. در قسمت USART گزینه Receiver و Transmitter را تیک بزنید. پروژه را Build کنید.

  2. سلام وقت بخیر
    توی در قسمت ارسال دستورات ارسال ‘r/’ از طریق یوزارت طبق دستور
    (‘UDR=(‘/r برای چی هست ؟

      1. ممنون . برای دریافت sms شرط میزاریم اگر خروجی تابع received_value () برابر کارکتر C یا M بود توی متغییر b بریزم . c وm و … چی هستن ؟
        و چرا شرط حلقه while اول اینه که خروجی تابع received_value مخالف + بودن هست ؟
        یا حلقه ی اخر مخالف 0x0a

        1. دستور CMT برای نشان دادن اس ام اس مثلا روی سریال مانیتور استفاده میشه.
          while (b!='+') بررسی میکنه که دستور CMT حضور داره یا نه. اگر حاضر باشه حلقه دوم شروع میشه و میره به خط بعدی.
          0x0a هم برای منتظر ماندن برای خط بعدی هست و اگر بی معنی باشه لوپ به صورت بی انتها اجرا میشه.

        2. پس این دستورات برای اردینو هست .
          اگر از اردینو استفاده نکنم میتونم این دستورات رو حذف کنم ؟
          اینجا
          }(++for(b=0;b<3;b
          ;()c= received_value
          msg[b]=c
          چرا فقط سه مقدار دریافت می کنیم و درون ارایه میزاریم ؟

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

  3. خواهش میکنم
    پیغام ریسو اس ام اس نمایش داده میشه .
    قسمت های دیگه درست کار میکنه عین همین فیلمی که بارگذاری کردید هست پیام کال می هم ارسال میکنه
    ولی پیام ارسالی از موبایل نمایش نمیده
    من کد هگز با پروگرمر eca بار گذاری میکنم

    1. من کمی متن آموزش پروژه رو بروزرسانی کردم قسمت UASRT رو انجام بدید. من دلیل این مشکل رو متوجه نمیشم پیام هایی که ارسال میکنید به زبان انگلیسی هستند؟ و چ اعداد چ حروف نمایش داده نمیشن؟

  4. سلام وقت بخیر
    اس ام اس که از گوشی ارسال میکنم نمایش نمیده ممنون میشم راهنمایی کنید

      1. بله
        اس ام اس ارسال میکنه ولی دریافت نمیکنه
        یا این که دریافت میکنه نمایش نمیده

        1. در سریال مانیتور مشاهده میشه؟

        2. من از sim 800 c
          استفاده میکنم
          سریال مانتیتور بلد نیستم
          جور دیگه امکانش هست راهنمایی بفرمایید

        3. ببخشید من فکر کردم پروژه با آردوینوئه که گفتم سریال مانیتور. در ال سی دی هیچ چیزی نشون داده نمیشه یا فقط پیام دریافت شده ؟ پیام رو با چه زبانی ارسال میکنید و چطور کد را در میکروکنترلر بارگذاری کردید ؟

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

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