آردوینو آردوینو Arduino Uno سیم کارت GSM - GPRS

آموزش راه اندازی ماژول Sim800L بخش سوم کنترل وسایل برقی با SMS

sim800l-sms-control-with-arduino-digispark
نوشته شده توسط اروند طباطبایی

بازهم ماژول سیم کارت یا همان ماژول‌های سری GSM و سوالات بسیار کاربران برای بنده، همیشه نقطه نظری برای انتشار محتوای جدید در این حوزه می‌باشد. ادامه مجموعه آموزش‌های ماژول Sim800L با پروژه بسیار جذاب SMS Control یا همان کنترل وسایل برقی از طریق اس ام اس می‌باشد. در بخش های اول و دوم این ماژول راه اندازی کلی شامل اتصال به شبکه و برقراری تماس صوتی را آموزش داده ام. کاربران زیادی هم سوالات مرتبطی را مطرح کردند. در این بخش که سوال بسیاری از کاربران بوده است، پروژه SMS Control را با برد آردوینو آموزش خواهم داد. در ادامه این آموزش با وب سایت تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


ماژول GSM در طرح رجیستری


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

 


تغذیه ماژول GSM Sim800L


این ماژول GSM یکی از کوچکترین و مقرون به صرفه‌ترین ماژول‌های GSM تا به این لحظه است. نکته بسیار مهم در استفاده از این ماژول، تغذیه ورودی است. اکثر کاربران این موضوع را نادیده می‌گیرند و در راه اندازی دچار مشکل می‌شوند. تغذیه این برد حتما حتما باید در محدوده ۴ تا ۴٫۲ ولت باشد. ولتاژ‌های خارج از این محدوده باعث اختلال در عملکرد آن می‌شوند. اختلال‌هایی از جمله در دسترس نبودن سیم کارت، یا پیغام خاموش بودن سیم کارت و حتی عدم شناخته شدن توسط شبکه را شامل می‌شوند. از این رو اکیدا توصیه می‌کنم که از باتری لیتیوم پلیمر Li-po و یا یک ماژول کاهنده مانند LM2596 ولتاژ ورودی بهماژول Sim800L را دقیقا روی مقدار ذکر شده تنظیم کنید.

 


وضعیت LED روی ماژول Sim800L


ماژول سیم کارت Sim800L با یک ال ای دی روی برد وضعیت اتصال به شبکه را اطلاع رسانی می‌کند. این ال ای دی در ماژول‌‌های مختلف به رنگ مختلف می‌باشد. از ماژول من ال ای دی به رنگ قرمز می‌باشد. اگر هر یک ثانیه یکبار چشمک بزند، ماژول به صورت سالم راه اندازی شده است ولی هنوز اتصال با شبکه برقرار نشده است. اگر هر ۲ ثانیه یکبار چشمک بزند، ارتباط دیتا GPRS برقرار شده است. اگر ال ای دی هر ۳ ثانیه یکبار چشمک بزند، ماژول به شبکه مخابراتی GSM متصل شده است و امکان برقرار ارتباط از طریق SMS را داراست.

 

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

برد آردوینو Arduino

ماژول GSM Sim800L

باتری لیتیوم پلیمر

 

sim-800L-Pinout--digispark

 


ویژگی‌های ماژول سیم کارت sim800L


پشتیبانی از چهار باند ۸۵۰/۹۰۰/۱۸۰۰/۱۹۰۰ مگاهرتز

کنترل از طریق AT Command و لایبرری

پروتکل ارتباطی سریال (UART)

قابلیت اتصال میکروفن و اسپیکر

جربان مصرفی حداکثر ۲ آمپر

تغذیه ۳٫۸ تا ۴٫۲ ولت DC

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

 


کتابخانه Sim800L SMS Control


در این آموزش از هیچ کتابخانه خاصی استفاده نکرده‌ام. فقط از کتابخانه SoftwareSerial جهت ارتباط سریالی با برد آردوینو استفاده شده است. این کتابخانه برای ایجاد پورت سریال نرم افزاری استفاده می‌شود. الباقی موارد به صورت دستورات AT به ماژول ارسال می‌شود. کلیه AT Command ها در کدها قرار گرفته‌اند و بدون استفاده از هیچ کتابخانه خاصی مرتبط با Sim800L فقط دستورات AT به ترتیبی که در کدها شرط بندی شده است، فراخوانی می‌شوند. چنانچه روش نصب کتابخانه در آردوینو را نمی‌دانید. به پست آموزش نصب کتابخانه در نرم افزار آردوینو Arduino IDE مراجعه کنید.

 


کدهای آردوینو پروژه SMS Control


 

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

 

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

 

 

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

 


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


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

 

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

 

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

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

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

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

۴۹ دیدگاه

  • سلام خسته نباشید من همه کارهارو انجام دادم وقتی برد به pc وصله همه چی درست کار میکنه وقتی , برق ورودیش هم جداگانه گذاشتم ,وقتی از pc جداش میکنم باز هم کار مینکه ولی وقتی دوباره برد رو روشن خاموش میکنم کار نمیکنه دوباره باید برنامه ریزیش کنم که کار کنه

  • سلام مهندس برد وقتی به لبتاب وصله درست کار میکنه همین که از لبتاب جداش میکنم باز درست کار میکنه چون براش برق جدا گذاشتم ولی وقتی برق برد رو قطع و وصل میکنم برد کار نمیکنه تا وقتی که به لبتاب وصلش کنم و قسمت serial monitor رو بازش کنم درست میشه؟

      • سلام خسته نباشید کدهای بالا یه ایراد داره که اینطوری رفتار میکنه که با یک delay حل شد.

          • برد رو وقتی برنامه ریزی میکنید درست کار میکنه ولی وقتی که بعد از برنامه ریزی میخوای ازش استفاده کنی برد اصلا درست جواب نمیده اونم به خاطر اینه که ماژول sim800 حدود ۱۳ الی ۱۵ ثانیه طول میکشه تا سیمکارتو بشناسه ولی برنامه همون ثانیه اول بدون این که دستگاه سیمکارتو بشناسه شروع به کار میکنه ودیگه دستورات رو اجرا نمیکنه که با گذاشتن یه وقفه ۲۰ ثانیه ای بین خط ۱۱ و ۱۲ مشکل کاملا حل شد.

  • سلام. خسته نباشید
    ماژول رو وقتی تغذیش رو وصل میکنم داغ میکنه. چراغ چشمک زنش هر ثانیه دوبار چشمک میزنه. اتصال کوتاهی تو مدار وجود نداره. جواب دستورات AT رو میده اما سیم کارتارو نمیشناسه
    یه ارور هم بعد دستور خطایاب میده
    اینه ارورش
    CME ERROR 604
    لطفا راهنمایی کنید
    ولتاژ هم روی ۴.۲ تنظیمه

    • با سلام
      در وضعیتی که هر یک ثانیه یکبار چشمک بزند، ماژول به صورت سالم راه اندازی شده است. لطفا تمامی اتصلات روی ماژول را به صورت کامل شرح دهید. همچنین منبع تغذیه مورد استفاده را هم بفرمایید.

  • سلام
    من یه ماژول SIM800L و یه ماژول SIM800L Development Kit دارم .روی هر دوی آنها وقتی سیم کارت میذارم رجیستر میشه و هر سه ثانیه یکبار چراغش چشمک میزنه که نشون میده آماده ارسال و دریافت پیامک است. اما با ارسال SMS به شماره نه پورت مربوطه فعال میشه و نه هنگامی که AT کامند رو میزنم خروجی AT Command رو به من نشون میده . تنظیمات رو هم همونطورکه گفته شده انجام دادم .
    فکر میکنم پارامتری هست که باید بزنم تا خروجی AT Command نشون داده بشه البته ATE1 رو هم زدم
    ممکنه بفرمایید مشکل از کجاست ؟

      • دقیقا به همین شک کردم . برای همین این برد رو به رزبری وصل کردم و روی رزبری سریال رو فعال کردم . وقتی برنامه minicom رو میزنم و پورت سریال رو فراخوانی میکنم اگه برد وصل نباشه اصلا AT رو تایپ میکنم چیزی تایپ نمیشه . اما وقتی ماژول SIM رو به سریال میزنم و AT رو تایپ میکنم تایپ میشه یعنی نشون میده سریال منو میبینه . اما اینکه دقیقا کجا گیر داره نمیتونم متوجه بشم.
        مشکل بعدی اینکه همین برد رو به سریال کامپوتر ( پورت ۲ و ۳ سریال ۹ پینی PC ) وصل میکنم باز هم همینطوریه . یعنی انگار یه تنظیمی یا پارامتری روی برد گیر کرده کامند ها رو نمیفرسته یا میفرسته اما جوابش رو نشون نمیده مثل Echo Off

        • سلام مجدد
          در این صورت مشخصا ماژول GSM سالم است. در بردهای آردوینو بایستی رابط RX و TX را درست انتخاب کنید. اگر از کتابخانه سریال استفاده میکنید، امکان تعریف رابط سریالی وجود دارد. و بسته به برد مورد استفاده این مورد کمی با چالش روبرو خواهد بود. لطفا بررسی و نتیجه را از همین طریق اعلام بفرمایید.

  • سلام
    من از یه مبدل lm2596 استفاده کردم و ولتاژ رو روی ۴ ولت تنظیم کردم
    ماژول روشن میشه و هر ثانیه یه بار چشمک میزنه
    ولی وقتی سیم کارت رو وارد میکنم بازم همونجوری هر ثانیه یه بار چشمک میزنه
    اینو هم بگم که مقدار ولتاژ رو از ۳٫۷ تا ۴٫۱ تغییر دادم ولی بازم همونجوریه
    چیکار باید کنم؟

      • برق ورودی رو از یه پاور بانک گرفتم
        به این صورت که مثبت پاور رو به مثبت مبدل
        منفی پاور رو به منفی مبدل
        از اونور هم مثبت خروجی رو به VCC و منفی رو هم به GND
        پاور بانک هم خروجیش ۵ آمپر ۲ ولته

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

  • سلام
    آیا در قسمتی از سایت نحوه استفاده از کد های at command gsm موجودهست؟ من مبتدی هستم و تا حالا با دستورات at command کار نکردم و از این دستورات می خواهم برا تهیه ی پروژه ی دانشگاهیم استفاده کنم ممنون میشم کمک کنید.

    • با سلام
      دستورات AT را باید از طریق دیتاشیت ماژول بخوانید و سپس در کدها قرار بدهید. در اکثر آموزش‌های GSM اگر از کتابخانه سریال استفاده شده باشد، در ادامه از AT Command هم استفاده می‌شود.

  • سلام
    دنبال سورس یک برنامه کنترل هوشمند وسایل برقی بوسیله رله و با ماژول GSM به همراه چند تایمر خودکار هفتگی هستم که روی برد های arduino و یا STM32 قابلیت اجرا داشته باشه
    یک مورد تو سایت wle پیدا کردم زیر ۱۰۰ تومن تقریبا به چیزی که میخواهم نزدیکه .
    عضو این سایت هنوز نشدم در این جا چیزی که دنبالش هستم بهش میرسم؟
    یا علی مد

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

  • سلام . من موفق به اتصال نشدم . ماژولم ۶تا چشمک میزنه چن لحظه مکث میکنه دوباره ۷تا میزنه مکث میکنه و بازم ۶ تا و مکث.
    ممنون میشم کمک کنید .

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

  • سلام
    من اشتراک خریداری کردم ولی بازم کد ها رو نمیبینم
    جایی هم گزینه ورود به حساب نمیبینم

  • سلام
    من تازه کار هستم
    IncomingByte رو متوجه شدم که دیتا ورودی رو ذخیره میکنه
    ولی InputString چه کاری انجام میده؟
    کلن خط ۳۶ برام گنگه

    اگر بخواییم برنامه بعد از دریافت یک پیام با شماره خاصی تماس بگیره باید سیم کارت رو ببریم رو حالت تماس؟ کد تغییر به تماس رو کجای برنامه باید قرار داد؟

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

        • با سلام مجدد
          به طور کلی روش عملکرد این دستور به این صورت است که با وارد کردن عدد ۱ در سریال مانیتور، خروجی received: 1 خواهد بود. برای دریافت دیتا در سریال مانیتور از دستور serial.available. استفاده می‌کنیم.

  • سلام خسته نباشید
    من یه مشکلی با ماژول sim800l دارم ازهمون لحظه اول که وصلش میکنم فقط عدد نشون میده
    baud درسته تغذیه درسته یه pdf پیداکردم یه کددادم درست شد ولی بازم ریست شد ومنم فراموش کردم
    کدوم یکی از کدهاست
    اگه راهنمایی بفرمایید لطف میکنید
    AT
    AT+CMGF=1
    این کدها همشون چک شدن و جواب نمیده
    ممنون

    • با عرض سلام و تبریک سال نو
      لطفا دستور زیر را امتحان نموده و نتیجه را نیز، اعلام نمایید:
      AT+CSMP=17,167,0,0

      • سلام تبریک سال نو به همگی
        کد رو امتحان کردم جواب نداد بهرحال ممنون لطف کردید
        درضمن من دوتا ماژول دارم هردوتا این مشکلو دارن
        منظورم اینه که فکر نکنید ماژول خراب شده

        ممنون

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

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

    • با سلام
      دقت داشته باشید که سیم کارت Pin نداشته باشد. همچنین اتصالات تغذیه علاوه بر ولتاژ مورد نیاز، جریان کافی هم برای راه اندازی نیاز دارد. لطفا بفرمایید منبع تغذیه مورد استفاده دقیقا چیست.

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

    • با سلام
      بله به عنوان دستگاهی که دائما مکالمه داشته باشد، نمیتوانید استفاده کنید. ولی اگر صرفا تماس برای پخش شدن فایل چند ثانیه‌ای باشد، تا به حال مشکلی در مورد رجیستری نداشته‌ایم.

  • با سلام و تشکر از مطالب مفیدتان. من در یک برنامه متغیری دارم که مقدار آن بسته به شرایط سنسورها تغییر میکند و لازم است در زمانهای مختلف مقدار این متغیر از طریق پیامک(ماژول sim800l) منتقل شود. کامندی که بتواند مقدار متغیر را دریافت و پیامک کند پیدا نکردم . لطفا در صورت امکان راهنمایی بفرمایید.