اینترنت اشیا IOT خانه هوشمند دسته‌بندی سیم کارت GSM - GPRS میکروکنترلر AVR

پروژه SMS کنترل با Sim800L و میکروکنترلر Atmega8 کنترل با پیامک

sms-control-project-avr-atmega8l-digispark-
نوشته شده توسط علی زاهدی

ماژول‌های GSM در فرایندهای مختلی کاربرد بسیاری دارند. از جمله استفاده در دزدگیرها، مودم‌های سیمکارتی و اینترنت اشیاء به عنوان ارسال کننده اطلاعات می‌توان اشاره کرد. ماژول‌های GSM یا همان  ماژول سیم کارت، عملکردی همانند موبایل دارند. قابلیت ارسال و دریافت پیامک، تماس و حتی موقعیت یابی را دارند. شرکت SIMCOM ماژول بسیار فشرده و قابل اطمینانی به اسم sim800l طراحی کرده است. این ماژول سیم کارت دارای توان مصرفی پایین و ابعاد بسیار کوچک همچنین با قیمت مناسبی در بازار ارائه می‌شود. پیش از این پست‌هایی در خصوص راه اندازی ماژول Sim800L توسط دیگر اسپارکرها منتشر شده است. در ادامه این آموزش با پروژه SMS کنترل با Sim800L و آی سی میکروکنترلر اتمگا با مرجع تخصصی میکروکنترلر AVR به زبان فارسی، دیجی اسپارک همراه باشید.

 


ویژگی‌های ماژول sim800L


  • پشتیبانی از ۴ باند ۱۹۰۰/۱۸۰۰/۹۰۰/۸۵۰ مگاهرتز
  • کنترل از طریق AT command
  • قابلیت اتصال میکروفون و اسپیکر
  • جریان مصرفی حداکثر ۲ آمپر
  • تغذیه ۳٫۸ تا ۴٫۲ ولت
  • اسلات سیمکارت میکرو

sim-800L-Pinout--digispark  

لوازم مورد نیاز

  1. میکروکنترلر ATmega8
  2. ماژول GSM Sim800L
  3. باتری لیتیوم پلیمر
  4. ماژول رله تک کانال ۵ ولت

 


راه اندازی ماژول Sim800L


جهت اجرای پروژه SMS کنترل با Sim800L و کنترل ۴ رله در خروجی، ابتدا سیم کارت را داخل ماژول Sim800L قرار داده و تغذیه ماژول را وصل کنید. نظر به اینکه ولتاژ کاری ماژول بین ۳٫۸ تا ۴٫۲ ولت است؛ پیشنهاد میشود ازباتری لیتیومی استفاده کنید. چنانچه در موقع ارتباط ماژول با شبکه جریان کافی توسط مدار تامین نشود، ارور خواهد داد. برای ارتباط با ماژول باید از درگاه سریال میکروکنترلر (USART) استفاده کرد. پس پایه RX ماژول را به پایه شماره ۳ میکروکنترلر (TXD) و پایه TX ماژول را به پایه شماره ۲ میکروکنترلر (RXD) متصل کنید.

 

کنترل پیامک با ماژول سیم کارت Sim800L GSM Module - دیجی اسپارک

 

 


کد AVR در CodeVision


حال نوبت به بخش نرم افزاری پروژه SMS کنترل با Sim800L می‌رسد. جهت ایجاد پروژه جدید در نرم افزار کدویژن ابتدا نرم افزار را باز کنید. از منو فایل گزینه New را انتخاب کنید. پس از ساخت پروژه جدید کدهای زیر را به آن انتقال دهید. سپس از منوی Project گزینه‌ی compile را انتخاب کنید. اگر error مشاهده نکردید، گزینه OK را انتخاب کنید. از همان منو Project گزینه Build All را انتخاب کنید. حال برنامه به زبان ماشین ترجمه شده و  در پوشه‌‌ای به نام exe در جایی که انتخاب کردید با پسوند hex ذخیره شده است.

 

 


کتابخانه در نرم افزار کدویژن


کتابخانه‌های استفاده شده در پروژه SMS کنترل با Sim800L عبارتند از :

mega8.h : ثابت‌های استفاده شده در برنامه مانند DDRB و PORTB در این کتابخانه موجود می‌باشد.

stdio.h : تابع sprintf در این کتابخانه موجود بوده و برای پیکربندی رشته‌ها مورد استفاده قرار می‌گیرد.

string.h : این کتابخانه دارای توابع مختلفی برای رشته‌ها می‌باشد. تابع strstr یکی از توابع این کتابخانه بوده و با استفاده از آن می‌توان یک رشته را داخل رشته دیگر جستجو کرد.

 

هنگام پروگرام کردن برنامه توجه داشته باشید که فیوز بیت‌ها روی ۸ مگاهرتز تنظیم شود. در مرحله‌ی آخر با موبایل کلمه “port” را نوشته و شماره خروجی مورد نظر را جلوی آن بنویسید. سپس ارسال کنید. برای مثال، تغیر وضعیت خروجی اول باید کلمه “port1” را ارسال نمایید. سپس مشاهده می‌کنید که خروجی تغییر وضعیت می‌دهد.

 

 

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

 

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک و دانشجوکیت  و digispark  و  daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

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

 

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

علی زاهدی

دانشجو ی رشته الکترونیک،
عاشق یادگیری و به اشتراک گذاشتن اطلاعاتم هستم.

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

۴۵ دیدگاه

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

    • سلام،
      استفاده از پاور کامپیوتر برای تغذیه این مدار کار اشتباهی است ، لطفا از سالم بودن قطعات خود اطمینان حاصل فرمایید و سپس از یک تغذیه ۵ ولت مناسب برای این مدار استفاده فرمایید.

    • داخل main ابتدا پیام های قبلی که در ماژول ذخیره شده رو پاک میکنم، موقعی که پیام میاد ماژول کلمه ی خاصی رو ارسال میکنه ما داخل شرط این کلمه رو داخل تابع receive جستوجو می کنیم.
      اگر شرط برقرار بود اجرا میشه و کلمه port رو سرچ میکنه و خروجی رو فعال میکنه و سپس پیام رو پاک میکنه.

  • سلام
    من مدار رو ساختم الان ارسال “port1″مدار جواب نمیده به ماژول زنگ میزنم بوق میخوره فقط خروجی b آیسی هیچ تغیری نمیکنه خواهشا راهنماییم کنین

    • سلام این مشکل رو بنده رو هم با میکرو ها داشتم شما بجای باتری از یک تغذیه ۵ ولت مناسب استفاده کنید مشکلتون حل میشه.

  • سلام
    یک ماژول سیم ۸۰۸ و باتری و چراغ ال ای دی.
    ماژول سیم ۸۰۸ با برد میگرو بهم وصله فکر کنم فقط اتصال ماژول به باتری (بدون آردینو )برای من نامعلومه که اگر به درستی متصل بشه که اس ام اس و یا دیتا بده چون استاد به من گفت فقط با باتری یعنی بدون آردینو ارتباط برقرار بشه

    • سلام، با تشکر از توجه شما.
      اگر امکان دارد توضیحات بیشتری از مدارتون بفرمایید. برای دریافت و ارسال پیامک با این ماژول نیاز به یک میکروکنترلر می باشد،اردوینو یا AVR فرقی نمی کند.

      • ببخشید منظورتون برد میکرو همون که سیم کارت خور است ؟
        اخه استاد من یک پروژه به من داد که در مورد ماژول سیم ۸۰۰ فقط با باتری(بدون آردینو) اس ام اس و هم دیتا بده حالا من توی اتصال ماژول سیم ۸۰۰ با برد میکرو و اتصال برد میکرو به باتری من موندم که باتری روی کدام قسمت از برد میکرو متصل کنم که درست باشد و همچنین ماژول سیم ۸۰۰ به یرد میکرو که جواب بده با تشکر

        • از کدام میکروکنترلر استفاده می کنید؟اگر از خانواده AVR مدل Atmega8 استفاده می کنید که طبق نقشه ای که در همین پست است می توانید ماژول، میکروکنترلر و باتری را متصل کنید. اما اگر از Atmega32 یا Atmega16 استفاده می کنید، قطب های مثبت و منفی باتری به ترتیب پایه های ۱۰ و ۱۱ میکروکنترلر متصل کنید، همچنین TX و RX ماژول به ترتیب به پایه های ۱۴ و ۱۵ میکروکنترلر متصل کنید.

  • سلام. خسته نباشید. من پارسال ۳ تا از این ماژول های SIM800L خریدم اما نتونستم هیچ کدوم رو راه اندازی کنم. روش های مختلفی هم تست کردم.با باتری پلیمری، با ماژول LM2596 و به روش های مختلف از سایت های مختلف. باتری رو عوض کردم ، حتی فکر کردم شاید جریان کافی نمیرسونه ۲ تا باتری پلیمری موازی کردم. با ولتاژهای ۳٫۸ تا ۴٫۴ هم تست کردم. کلا نمیدونم چرا این ماژول انقدر مقاومت میکنه در مقابل راه اندازی. یه احتمال دادم که شاید قضیه رجیستری گوشی ها باعث شده باشه که این ماژول ها به عنوان دستگاه رجیستر نشده نتونن تو مخابرات ایران فعال بشن اما به سایت های خارجی که سر زدم و کامنت های دیگران رو خوندم دیدم خیلی از اونا هم با راه اندازی این ماژول مشکل دارن و مشکل از طرح رجیستری نیست. فکر کنم از هر ۱۰ نفر ۲ نفر موفق میشن این ماژول رو راه بندازن.امیدوارم یکی پیدا شه و ایراد کار رو پیدا کنه.

    • سلام، با تشکر از توجه شما
      بله متاسفانه این ماژول یکم سخت راه اندازی میشه ولی بنده شاید بیش از ۲۰ عدد از این ماژول رو با ماژول تغذیه lm2596 راه اندازی کردم و با به مشکلی بر نخوردم، این که طرح رجیستری بر روی این ماژول ها اعمال نشده است.

      • مشکل رو پیدا کردم D:
        سیم کارت رو برعکس جا میزدم D: آخه چرا کسی به این موضوع اشاره ای نکرده بود؟؟ بیشتر گوشی ها و دستگاه هایی که سیم کارت میخورن معمولا سیم کارت از اون قسمتش که یه گوشه پَخ داره جا میره اما تو این ماژول قضیه برعکسه و نکته گمراه کنندش اینجاس که سیم کارت رو حتی وقتی اشتباه هم جا میزنی سر جای خودش قفل میشه در حالی که اگه تو دستگاه های دیگه اشتباه جا بزنی قفل نمیشه. مطمئنم خیلی های دیگه این اشتباه رو دارن. اگه چراغ ماژولتون دائم در حال چشمک زدنه یعنی یا سیم کارت خرابه یا برعکس جا زده شده (خلاصه به یه دلیلی سیم کارت رو نمیشناسه) اما گه بعد از چند بار چشمک زدن یک ثانیه خاموش میشه و دوباره چند بار چشمک میزنه یعنی ایراد از منبع تغذیه هست یا سیم ها جریان مناسب رو عبور نمیدن. مثلا من یه باتری پلیمری ۴۰۰ میلی آمپر رو با یه جفت کابل فلت به ماژول وصل میکردم چراغش ۵ بار چشمک میزد. اما کابل ها رو که حذف میکنم و باتری رو مستقیم به ماژول وصل میکنم درست کار میکنه.

    • سلام، بله
      پس از ارسال هر دستور از طرف ماژول، این کاراکتر ارسال میشه و داخل برنامه برای صفر شدن کانتر استفاده شده است.

  • سلام خیلی ممنون از آموزش های خوب ات دوست عزیز؛
    ۱- توی قسمت کد ویزارد و قسمت یوزارت باید اینتراپت رسیور یوزارت فعال بشه و باود ریت ۹۶۰۰ ست بشه؟
    ۲- توی کد ویزارد فرکانس میکرو رو ۸ مگ تنظیم میکنید؟
    ۳- من تست کردم مدار و سورس رو منتها نتیجه نمیگیرم( به شبکه متصله ماژول، سیم کشی ها درست اند، تغذیه هم اوکیه کاملا) چکار کنم؟
    ۴- تغذیه میکرو و ماژول به خروجی مبدل کاهنده متصل بشه ؟ یا جدا باشند ؟ (قطعا باید GND ها یکی باشند)
    ممنون میشم به ترتیب و با ذکر شماره سوال، جواب هر کدوم رو زحمت بکشید بفرمایید.

    • سلام، از توجه شما سپاس گزارم.
      ۱٫بله توجه داشته باشین که هم فرستنده و هم گیرنده تنظیم شود،و فقط تیک اینتراپت گیرنده را فعال کنید.
      ۲٫بله کلا پیشفرض روی ۸ مگا هرتز هست.
      ۳٫سورس مشکلی نداره بنده تست کردم احتمالا یا مشکل از اتصالاته یا ولتاژ میکروکنترلر تامین نمیشه.
      ۴٫بهتره که یک ولتاژ ۵ ولت برای میکروکنترلر و یکی ولتاژ ۴٫۲ که خروجی کاهنده هست برای ماژول استفاده نمایید.

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

    • سلام، با تشکر از توجه شما
      برای دریافت راهنمایی میبایست اطلاعات کاملتری از کد و اتصالات بفرمایید.
      مشکل میتونه هم از اتصالات شما باشه و هم از کد برنامه.

  • سلام وقت بخیر
    من یه ترموستات صنعتی برای کوره دارم که زمانی دما پایین.میاد بهم امکان دادن الارم داره
    از این.ماژول برای ارسال SMS میتونم استفاده کنم که الارم خروجی ترموستات رو بهم مسج بده

    • با سلام
      بله میتوانید استفاده کنید. در اکثر محصول هایی که پیامک ارسال می کنند از این ماژول استفاده می شود.